
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

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

{
  bfd_vma *pbVar1;
  void *__dest;
  asymbol **ppaVar2;
  asymbol **ppaVar3;
  int *piVar4;
  bfd_byte bVar5;
  byte bVar6;
  char cVar7;
  bfd_endian bVar8;
  bfd_endian bVar9;
  pe_tdata *ppVar10;
  reloc_cache_entry *prVar11;
  reloc_cache_entry *prVar12;
  bfd_target *pbVar13;
  bfd_section *pbVar14;
  _func_void_bfd_vma_void_ptr *p_Var15;
  bfd_flavour bVar16;
  section_add *psVar17;
  section_rename *psVar18;
  undefined1 uVar19;
  undefined1 uVar20;
  asection *paVar21;
  int iVar22;
  bfd_architecture bVar23;
  ulong uVar24;
  bfd_boolean bVar25;
  char *pcVar26;
  char *pcVar27;
  long lVar28;
  section_list *psVar29;
  asection *paVar30;
  FILE *__s;
  char *pcVar31;
  undefined4 uVar32;
  undefined4 uVar33;
  asymbol **ppaVar34;
  bfd_section *pbVar35;
  asymbol *paVar36;
  size_t sVar37;
  size_t sVar38;
  bfd_byte *pbVar39;
  asymbol *paVar40;
  undefined4 *puVar41;
  reloc_cache_entry *prVar42;
  int iVar43;
  int *piVar44;
  char *pcVar45;
  bfd *pbVar46;
  char *pcVar47;
  uint uVar48;
  void *pvVar49;
  asection *sec_1;
  bfd_section *pbVar50;
  undefined4 extraout_ECX;
  asection *sec_1_00;
  undefined4 extraout_ECX_00;
  char *extraout_ECX_01;
  char *extraout_ECX_02;
  asection *paVar51;
  int iVar52;
  asection *paVar53;
  void *pvVar54;
  uint uVar55;
  addsym_node *ptr;
  bfd_byte *pbVar56;
  section_add *psVar57;
  byte *pbVar58;
  uint *puVar59;
  uint uVar60;
  reloc_cache_entry *prVar61;
  reloc_cache_entry *prVar62;
  uint uVar63;
  uint uVar64;
  byte *pbVar65;
  internal_extra_pe_aouthdr *piVar66;
  uint uVar67;
  asection *paVar68;
  bool bVar69;
  bool bVar70;
  byte bVar71;
  bfd_vma bVar72;
  bfd_uint64_t bVar73;
  bfd_uint64_t bVar74;
  void *pvVar75;
  bfd_section *in_stack_ffffff24;
  asection *in_stack_ffffff28;
  char *local_cc;
  char *local_c4;
  void *local_c0;
  uint local_bc;
  asection *local_b8;
  void *local_b4;
  asection *local_a8;
  int local_a4;
  int local_8c;
  asymbol **local_84;
  char *local_7c;
  asection *local_78;
  asection *local_74;
  bfd_section *local_6c;
  int local_68;
  int *local_64;
  bfd_byte *syms;
  bfd_byte *strings;
  char file_alignment [20];
  bfd_byte *contents;
  undefined4 local_30;
  undefined4 uStack_14;
  
  bVar71 = 0;
  uStack_14 = 0x1892b;
  bVar8 = ibfd->xvec->byteorder;
  bVar9 = obfd->xvec->byteorder;
  if ((bVar8 != bVar9 && bVar8 != BFD_ENDIAN_UNKNOWN) && (bVar9 != BFD_ENDIAN_UNKNOWN)) {
    pcVar27 = (char *)dcgettext(0,"Unable to change endianness of input file(s)",5);
    non_fatal(pcVar27);
    return 0;
  }
  iVar22 = bfd_set_format(obfd,ibfd->field_0x28 & 7);
  if (iVar22 == 0) {
    bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,(char *)0x0);
    return 0;
  }
  if (ibfd->sections == (bfd_section *)0x0) {
    pcVar26 = bfd_get_archive_filename(ibfd);
    pcVar27 = "error: the input file \'%s\' has no sections";
    goto LAB_00018f38;
  }
  if (ibfd->xvec->flavour != bfd_target_elf_flavour) {
    if ((do_debug_sections != _sch_isblank) && ((do_debug_sections & _sch_isblank) != nothing)) {
      pcVar26 = bfd_get_archive_filename(ibfd);
      pcVar27 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";
LAB_00018f38:
      pcVar27 = (char *)dcgettext(0,pcVar27,5);
      non_fatal(pcVar27,pcVar26);
      return 0;
    }
    if (do_elf_stt_common != unchanged) {
      pcVar26 = bfd_get_archive_filename(ibfd);
      pcVar27 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";
      goto LAB_00018f38;
    }
  }
  if (verbose != 0) {
    pcVar27 = ibfd->xvec->name;
    pcVar26 = obfd->xvec->name;
    pcVar45 = obfd->filename;
    pcVar47 = bfd_get_archive_filename(ibfd);
    pcVar31 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);
    printf(pcVar31,pcVar47,pcVar27,pcVar45,pcVar26);
  }
  iVar22 = 0;
  iVar52 = 0;
  if (extract_symbol == 0) {
    uVar63 = (uint)set_start;
    iVar52 = set_start._4_4_;
    if (set_start_set == 0) {
      uVar63 = (uint)ibfd->start_address;
      iVar52 = *(int *)((int)&ibfd->start_address + 4);
    }
    iVar22 = uVar63 + (uint)change_start;
    iVar52 = iVar52 + change_start._4_4_ + (uint)CARRY4(uVar63,(uint)change_start);
  }
  if ((obfd->field_0x28 & 7) != 3) {
    uVar63 = ~bfd_flags_to_clear & obfd->xvec->object_flags &
             (*(uint *)&ibfd->field_0x28 >> 5 & 0xfffff | bfd_flags_to_set);
    if (strip_symbols == STRIP_ALL) {
      uVar63 = uVar63 & 0xfffffffe;
    }
    iVar22 = bfd_set_start_address(obfd,iVar22,iVar52);
    if ((iVar22 == 0) || (iVar22 = bfd_set_file_flags(obfd,uVar63), iVar22 == 0)) goto LAB_00018b70;
  }
  bVar23 = bfd_get_arch(ibfd);
  uVar24 = bfd_get_mach(ibfd);
  if (input_arch != (bfd_arch_info_type *)0x0) {
    iVar22 = bfd_get_arch_info(ibfd);
    if ((iVar22 == 0) || (iVar22 = bfd_get_arch_info(ibfd), *(int *)(iVar22 + 0xc) == 0)) {
      bVar23 = input_arch->arch;
      uVar24 = input_arch->mach;
    }
    else {
      pcVar27 = bfd_get_archive_filename(ibfd);
      pcVar26 = (char *)dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);
      non_fatal(pcVar26,pcVar27);
    }
  }
  bVar25 = (*obfd->xvec->_bfd_set_arch_mach)(obfd,bVar23,uVar24);
  if (bVar25 == 0) {
    if ((ibfd->field_0x2b & 4) != 0) {
LAB_00018b20:
      iVar22 = bfd_get_arch(ibfd);
      if (iVar22 == 0) {
        pcVar26 = bfd_get_archive_filename(ibfd);
        pcVar27 = "Unable to recognise the format of the input file `%s\'";
      }
      else {
        uVar32 = bfd_get_mach(ibfd);
        uVar33 = bfd_get_arch(ibfd);
        pcVar26 = (char *)bfd_printable_arch_mach(uVar33,uVar32);
        pcVar27 = "Output file cannot represent architecture `%s\'";
      }
      pcVar27 = (char *)dcgettext(0,pcVar27,5);
      non_fatal(pcVar27,pcVar26);
      return 0;
    }
    iVar22 = bfd_get_arch(ibfd);
    iVar52 = bfd_get_arch(obfd);
    if (iVar22 != iVar52) goto LAB_00018b20;
  }
  iVar22 = bfd_set_format(obfd,ibfd->field_0x28 & 7);
  if (iVar22 == 0) {
LAB_00018b70:
    bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,(char *)0x0);
    return 0;
  }
  bVar16 = obfd->xvec->flavour;
  bVar69 = bVar16 < bfd_target_coff_flavour;
  bVar70 = bVar16 == bfd_target_coff_flavour;
  if (bVar70) {
    iVar22 = 4;
    pbVar58 = (byte *)obfd->xvec->name;
    pbVar65 = &DAT_0002f16a;
    do {
      if (iVar22 == 0) break;
      iVar22 = iVar22 + -1;
      bVar69 = *pbVar58 < *pbVar65;
      bVar70 = *pbVar58 == *pbVar65;
      pbVar58 = pbVar58 + (uint)bVar71 * -2 + 1;
      pbVar65 = pbVar65 + (uint)bVar71 * -2 + 1;
    } while (bVar70);
    if ((!bVar69 && !bVar70) == bVar69) {
      ppVar10 = (obfd->tdata).pe_obj_data;
      bVar16 = ibfd->xvec->flavour;
      bVar69 = bVar16 < bfd_target_coff_flavour;
      bVar70 = bVar16 == bfd_target_coff_flavour;
      if (bVar70) {
        iVar22 = 4;
        pbVar58 = (byte *)ibfd->xvec->name;
        pbVar65 = &DAT_0002f16a;
        do {
          if (iVar22 == 0) break;
          iVar22 = iVar22 + -1;
          bVar69 = *pbVar58 < *pbVar65;
          bVar70 = *pbVar58 == *pbVar65;
          pbVar58 = pbVar58 + (uint)bVar71 * -2 + 1;
          pbVar65 = pbVar65 + (uint)bVar71 * -2 + 1;
        } while (bVar70);
        if ((!bVar69 && !bVar70) == bVar69) {
          puVar59 = &(((ibfd->tdata).elf_obj_data)->symtab_hdr).sh_link;
          piVar66 = &ppVar10->pe_opthdr;
          for (iVar22 = 0x52; iVar22 != 0; iVar22 = iVar22 + -1) {
            uVar19 = *(undefined1 *)((int)puVar59 + 2);
            uVar20 = *(undefined1 *)((int)puVar59 + 3);
            piVar66->Magic = *(undefined2 *)puVar59;
            piVar66->MajorLinkerVersion = uVar19;
            piVar66->MinorLinkerVersion = uVar20;
            puVar59 = puVar59 + (uint)bVar71 * -2 + 1;
            piVar66 = (internal_extra_pe_aouthdr *)((int)piVar66 + (uint)bVar71 * -8 + 4);
          }
        }
      }
      uVar63 = pe_file_alignment._4_4_;
      if ((pe_file_alignment._4_4_ & (uint)pe_file_alignment) == 0xffffffff) {
        pe_file_alignment._0_4_ = 0x200;
        pe_file_alignment._4_4_ = 0;
      }
      else {
        *(uint *)&(ppVar10->pe_opthdr).FileAlignment = (uint)pe_file_alignment;
        *(uint *)((int)&(ppVar10->pe_opthdr).FileAlignment + 4) = uVar63;
      }
      uVar63 = pe_heap_commit._4_4_;
      if ((pe_heap_commit._4_4_ & (uint)pe_heap_commit) != 0xffffffff) {
        *(uint *)&(ppVar10->pe_opthdr).SizeOfHeapCommit = (uint)pe_heap_commit;
        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4) = uVar63;
      }
      uVar63 = pe_heap_reserve._4_4_;
      if ((pe_heap_reserve._4_4_ & (uint)pe_heap_reserve) != 0xffffffff) {
        *(uint *)&(ppVar10->pe_opthdr).SizeOfHeapCommit = (uint)pe_heap_reserve;
        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4) = uVar63;
      }
      uVar63 = pe_image_base._4_4_;
      if ((pe_image_base._4_4_ & (uint)pe_image_base) != 0xffffffff) {
        *(uint *)&(ppVar10->pe_opthdr).ImageBase = (uint)pe_image_base;
        *(uint *)((int)&(ppVar10->pe_opthdr).ImageBase + 4) = uVar63;
      }
      uVar63 = pe_section_alignment._4_4_;
      local_64 = (int *)(uint)pe_section_alignment;
      if (((uint)pe_section_alignment & pe_section_alignment._4_4_) == 0xffffffff) {
        pe_section_alignment._0_4_ = 0x1000;
        uVar63 = 0;
        pe_section_alignment._4_4_ = 0;
        local_64 = (int *)0x1000;
      }
      else {
        *(uint *)&(ppVar10->pe_opthdr).SectionAlignment = (uint)pe_section_alignment;
        *(uint *)((int)&(ppVar10->pe_opthdr).SectionAlignment + 4) = uVar63;
      }
      uVar48 = pe_stack_commit._4_4_;
      if ((pe_stack_commit._4_4_ & (uint)pe_stack_commit) != 0xffffffff) {
        *(uint *)&(ppVar10->pe_opthdr).SizeOfStackCommit = (uint)pe_stack_commit;
        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4) = uVar48;
      }
      uVar48 = pe_stack_reserve._4_4_;
      if ((pe_stack_reserve._4_4_ & (uint)pe_stack_reserve) != 0xffffffff) {
        *(uint *)&(ppVar10->pe_opthdr).SizeOfStackCommit = (uint)pe_stack_reserve;
        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4) = uVar48;
      }
      if (pe_subsystem != -1) {
        (ppVar10->pe_opthdr).Subsystem = pe_subsystem;
      }
      if (pe_major_subsystem_version != -1) {
        (ppVar10->pe_opthdr).MajorSubsystemVersion = pe_major_subsystem_version;
      }
      if (pe_minor_subsystem_version != -1) {
        (ppVar10->pe_opthdr).MinorSubsystemVersion = pe_minor_subsystem_version;
      }
      if (uVar63 < pe_file_alignment._4_4_ ||
          uVar63 - pe_file_alignment._4_4_ < (uint)(local_64 < (uint)pe_file_alignment)) {
        sprintf(file_alignment,"%016llx",(uint)pe_file_alignment,pe_file_alignment._4_4_);
        sprintf((char *)&contents,"%016llx",(uint)pe_section_alignment,pe_section_alignment._4_4_);
        pcVar27 = (char *)dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5)
        ;
        non_fatal(pcVar27,file_alignment,&contents);
      }
    }
  }
  ppaVar34 = isympp;
  if (isympp != (asymbol **)0x0) {
    free(isympp);
  }
  if (ppaVar34 != osympp) {
    free(osympp);
  }
  isympp = (asymbol **)0x0;
  osympp = (asymbol **)0x0;
  lVar28 = (*ibfd->xvec->_bfd_get_symtab_upper_bound)(ibfd);
  if (lVar28 < 0) goto LAB_00018b70;
  osympp = (asymbol **)xmalloc(lVar28);
  isympp = osympp;
  local_8c = (*ibfd->xvec->_bfd_canonicalize_symtab)(ibfd,osympp);
  if (local_8c < 0) goto LAB_00018b70;
  if (local_8c == 0) {
    free(isympp);
    isympp = (asymbol **)0x0;
    osympp = (asymbol **)0x0;
  }
  bfd_map_over_sections(ibfd,setup_section,obfd);
  psVar57 = add_sections;
  if ((extract_symbol == 0) &&
     (bVar25 = (*obfd->xvec->_bfd_copy_private_header_data)(ibfd,obfd), psVar57 = add_sections,
     bVar25 == 0)) {
    status = 1;
    pcVar27 = (char *)dcgettext(0,"error in private header data",5);
    bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar27);
    psVar57 = add_sections;
  }
  for (; psVar17 = update_sections, psVar57 != (section_add *)0x0; psVar57 = psVar57->next) {
    uVar63 = 0x128;
    psVar29 = find_section_list(psVar57->name,0,0x40);
    if (psVar29 != (section_list *)0x0) {
      uVar63 = psVar29->flags | 0x100;
    }
    iVar22 = bfd_get_section_by_name(obfd,psVar57->name);
    if (iVar22 != 0) {
      pcVar26 = psVar57->name;
      pcVar27 = "can\'t add section \'%s\'";
LAB_00019591:
      pcVar27 = (char *)dcgettext(0,pcVar27,5);
      bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27,pcVar26);
      return 0;
    }
    paVar30 = (asection *)bfd_make_section_with_flags(obfd,psVar57->name,uVar63 | 0x100000);
    psVar57->section = paVar30;
    if (paVar30 == (asection *)0x0) {
      pcVar26 = psVar57->name;
      pcVar27 = "can\'t create section `%s\'";
      goto LAB_00019591;
    }
    iVar22 = bfd_set_section_size(obfd,paVar30,psVar57->size,0);
    if (iVar22 == 0) goto LAB_00019d5e;
    psVar29 = find_section_list(psVar57->name,0,0xc);
    if (psVar29 != (section_list *)0x0) {
      paVar30 = psVar57->section;
      uVar32 = *(undefined4 *)((int)&psVar29->vma_val + 4);
      uVar33 = (undefined4)psVar29->vma_val;
      paVar30->field_0x18 = paVar30->field_0x18 | 1;
      *(undefined4 *)&paVar30->lma = uVar33;
      *(undefined4 *)((int)&paVar30->lma + 4) = uVar32;
      *(undefined4 *)&paVar30->vma = uVar33;
      *(undefined4 *)((int)&paVar30->vma + 4) = uVar32;
    }
    psVar29 = find_section_list(psVar57->name,0,0x30);
    if (psVar29 != (section_list *)0x0) {
      paVar30 = psVar57->section;
      bVar72 = psVar29->lma_val;
      *(undefined4 *)((int)&paVar30->lma + 4) = *(undefined4 *)((int)&psVar29->lma_val + 4);
      *(int *)&paVar30->lma = (int)bVar72;
    }
  }
  for (; local_6c = (bfd_section *)obfd, psVar17 != (section_add *)0x0; psVar17 = psVar17->next) {
    paVar30 = (asection *)bfd_get_section_by_name(ibfd,psVar17->name);
    psVar17->section = paVar30;
    if (paVar30 == (asection *)0x0) {
      pcVar26 = psVar17->name;
      pcVar27 = "error: %s not found, can\'t be updated";
      goto LAB_00018f38;
    }
    pbVar35 = paVar30->output_section;
    bVar25 = bfd_set_section_size(obfd,pbVar35,psVar17->size,0);
    if (bVar25 == 0) goto LAB_00019fa0;
  }
  if ((((merge_notes != 0) &&
       (paVar30 = (asection *)bfd_get_section_by_name(ibfd,".gnu.build.attributes"),
       paVar30 != (asection *)0x0)) && (merge_notes != 0)) &&
     ((ibfd->xvec->flavour == bfd_target_elf_flavour &&
      (bVar25 = is_merged_note_section((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1),
      bVar25 != 0)))) {
    paVar53 = *(asection **)((int)&paVar30->size + 4);
    pcVar27 = *(char **)&paVar30->size;
    if (paVar53 == (asection *)0x0 && pcVar27 == (char *)0x0) {
      pcVar27 = (char *)dcgettext(0,"warning: note section is empty",5,pcVar27);
      bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);
      merge_notes = 0;
    }
    else {
      iVar22 = bfd_get_full_section_contents(ibfd,paVar30,&merged_notes,pcVar27);
      pbVar39 = merged_notes;
      if (iVar22 == 0) {
        pcVar27 = (char *)dcgettext(0,"warning: could not load note section",5,0);
        bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);
        free(merged_notes);
        merged_notes = (bfd_byte *)0x0;
        merge_notes = 0;
      }
      else {
        iVar22 = bfd_get_reloc_upper_bound(ibfd,paVar30,paVar30,paVar30);
        pcVar26 = extraout_ECX_01;
        pbVar46 = ibfd;
        if (0 < iVar22) {
          pbVar46 = (bfd *)xmalloc(iVar22);
          iVar22 = bfd_canonicalize_reloc(ibfd,paVar30,pbVar46,isympp);
          free(pbVar46);
          pcVar26 = extraout_ECX_02;
          if (iVar22 == 0) goto LAB_0001ab09;
          local_74 = (asection *)0x0;
          goto LAB_0001ae41;
        }
LAB_0001ab09:
        pvVar75 = (void *)0x30;
        pcVar45 = pcVar26;
        uVar32 = __udivdi3(pcVar27,paVar53,0xc,0,pbVar46,0x30,pcVar26,pcVar26);
        local_74 = (asection *)xcalloc(uVar32);
        local_bc = 0;
        local_c4 = (char *)0x0;
        local_b8 = (asection *)0x0;
        local_c0 = (void *)0x0;
        local_84 = (asymbol **)0x0;
        local_a8 = (asection *)0x0;
        local_a4 = 0;
        pbVar56 = pbVar39;
        paVar68 = local_74;
        local_7c = pcVar27;
        local_78 = paVar53;
        while (local_78 != (asection *)0x0 || (uint)-(int)local_78 < (uint)((char *)0xb < local_7c))
        {
          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56);
          pcVar47 = (char *)((int)bVar72 + 3U & 0xfffffffc);
          paVar68->name = pcVar47;
          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56 + 4);
          uVar63 = (int)bVar72 + 3U & 0xfffffffc;
          paVar68->id = uVar63;
          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56 + 8);
          uVar48 = (uint)bVar72;
          paVar68->index = uVar48;
          if (1 < uVar48 - 0x100) {
            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,
                                        (int)(bVar72 >> 0x20));
            goto LAB_0001ae12;
          }
          pcVar31 = pcVar47 + uVar63 + 0xc;
          iVar22 = (int)local_78 - (int)(uint)(local_7c < pcVar31);
          if (local_78 < (asection *)(uint)(local_7c < pcVar31)) {
            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar22)
            ;
            goto LAB_0001ae12;
          }
          if (pcVar47 < (char *)0x2) {
            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: name too small",5,
                                        iVar22);
            goto LAB_0001ae12;
          }
          paVar68->next = (bfd_section *)(pbVar56 + 0xc);
          pbVar35 = (bfd_section *)(pbVar56 + (int)(pcVar47 + 0xc));
          bVar69 = local_7c < pcVar31;
          local_7c = local_7c + -(int)pcVar31;
          local_78 = (asection *)((int)local_78 - (uint)bVar69);
          paVar68->prev = pbVar35;
          bVar6 = pbVar56[0xc];
          uVar60 = (uint)bVar6;
          if (bVar6 == 0x24) {
            if ((pbVar56[0xd] == '\x01') && (pbVar56[0xe] == '1')) {
              local_a4 = local_a4 + 1;
            }
          }
          else if (((((char *)0x4 < pcVar47) && (bVar6 == 0x47)) && (pbVar56[0xd] == 'A')) &&
                  ((pbVar56[0xe] == '$' && (pbVar56[0xf] == '\x01')))) {
            bVar6 = pbVar56[0x10];
            uVar60 = (uint)bVar6;
            if (bVar6 == 0x32) {
              local_a8 = (asection *)((int)local_a8 + 1);
            }
            else {
              if (bVar6 != 0x33) {
                pcVar27 = (char *)dcgettext(0,
                                            "corrupt GNU build attribute note: unsupported version",
                                            5,uVar60);
                goto LAB_0001ae12;
              }
              local_84 = (asymbol **)((int)local_84 + 1);
            }
          }
          if (uVar63 == 4) {
            bVar73 = (*ibfd->xvec->bfd_getx32)(pbVar35);
LAB_0001ade8:
            bVar74 = 0xffffffffffffffff;
          }
          else if (uVar63 < 5) {
            if (uVar63 != 0) {
LAB_0001ae8d:
              pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: bad description size"
                                          ,5,uVar60);
              goto LAB_0001ae12;
            }
            bVar74 = 0;
            bVar73 = 0;
          }
          else if (uVar63 == 8) {
            pbVar13 = ibfd->xvec;
            if ((pbVar13->flavour == bfd_target_elf_flavour) &&
               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {
              bVar73 = (*pbVar13->bfd_getx64)(pbVar35);
              goto LAB_0001ade8;
            }
            bVar73 = (*pbVar13->bfd_getx32)(pbVar35);
            bVar74 = (*ibfd->xvec->bfd_getx32)(&pbVar35->id);
          }
          else {
            uVar60 = uVar63;
            if (uVar63 != 0x10) goto LAB_0001ae8d;
            bVar73 = (*ibfd->xvec->bfd_getx64)(pbVar35);
            bVar74 = (*ibfd->xvec->bfd_getx64)(&pbVar35->index);
          }
          if (uVar48 == 0x100) {
            paVar51 = (asection *)(int)bVar73;
            if (bVar73 == 0) {
              paVar51 = local_b8;
            }
            uVar63 = (int)bVar74;
            if (bVar74 == 0) {
              uVar63 = local_bc;
            }
            *(undefined4 *)((int)&paVar68->vma + 4) = 0;
            *(asection **)&paVar68->vma = paVar51;
            *(uint *)&paVar68->lma = uVar63;
            *(undefined4 *)((int)&paVar68->lma + 4) = 0;
            local_bc = uVar63;
            local_b8 = paVar51;
          }
          else {
            pvVar49 = (void *)(int)bVar73;
            if (bVar73 == 0) {
              pvVar49 = local_c0;
            }
            pcVar47 = (char *)(int)bVar74;
            if (bVar74 == 0) {
              pcVar47 = local_c4;
            }
            *(undefined4 *)((int)&paVar68->vma + 4) = 0;
            *(void **)&paVar68->vma = pvVar49;
            *(char **)&paVar68->lma = pcVar47;
            *(undefined4 *)((int)&paVar68->lma + 4) = 0;
            local_c4 = pcVar47;
            local_c0 = pvVar49;
          }
          if (*(char *)((int)&paVar68->next->name + (int)(paVar68->name + -1)) != '\0') {
            pcVar27 = (char *)dcgettext(0,
                                        "corrupt GNU build attribute note: name not NUL terminated",
                                        5,paVar68->name);
            goto LAB_0001ae12;
          }
          paVar68 = (asection *)((int)&paVar68->size + 4);
          pbVar56 = pbVar56 + (int)pcVar31;
        }
        if (local_78 == (asection *)0x0 && local_7c == (char *)0x0) {
          if (local_a4 == 0 && (local_a8 == (asection *)0x0 && local_84 == (asymbol **)0x0)) {
            pcVar27 = (char *)dcgettext(0,
                                        "bad GNU build attribute notes: no known versions detected",
                                        5,-(int)local_78 - (uint)((char *)0xb < local_7c));
            goto LAB_0001ae12;
          }
          if (((local_a4 != 0) && (local_a8 != (asection *)0x0 || local_84 != (asymbol **)0x0)) ||
             ((local_a8 != (asection *)0x0 && (local_84 != (asymbol **)0x0)))) {
            pcVar27 = (char *)dcgettext(0,
                                        "bad GNU build attribute notes: multiple different versions"
                                        ,5,paVar68);
            goto LAB_0001ae12;
          }
          if ((local_a4 == 1 || local_a8 == (asection *)0x1) || (local_84 == (asymbol **)0x1))
          goto LAB_0001ae41;
          uVar63 = -(uint)(local_a4 == 0) & 2;
          iVar22 = uVar63 + 1;
          if (*(char *)((int)&local_74->next->name + iVar22) != '\x01') {
            pcVar27 = (char *)dcgettext(0,
                                        "bad GNU build attribute notes: first note not version note"
                                        ,5,iVar22);
            goto LAB_0001ae12;
          }
          bVar69 = false;
          iVar52 = uVar63 + 2;
          pbVar35 = local_74;
LAB_0001afd1:
          paVar51 = pbVar35;
          local_6c = (bfd_section *)((int)&paVar51->size + 4);
          pbVar35 = local_6c;
          if (local_6c < paVar68) {
            if (*(int *)((int)&paVar51->rawsize + 4) == 0x100) {
              local_a8 = (asection *)0x0;
              pvVar49 = *(void **)&paVar51->compressed_size;
              local_6c = paVar51;
              while (pbVar50 = local_6c, local_74 <= local_6c) {
                pbVar14 = local_6c->next;
                cVar7 = *(char *)((int)&pbVar14->name + iVar22);
                paVar21 = local_a8;
                if ((((local_a8 != (asection *)0x0) || (local_6c->id == 0)) ||
                    (paVar21 = local_6c, local_6c->index != 0x101)) &&
                   ((local_a8 = paVar21, *(char *)((int)pvVar49 + iVar22) == cVar7 &&
                    (local_6c->index == 0x100)))) {
                  pcVar47 = pbVar35->name;
                  if (cVar7 != '\x04') {
                    pcVar31 = local_6c->name;
                    if ((pcVar31 == pcVar47) &&
                       (iVar43 = memcmp(pbVar14,pvVar49,(size_t)pcVar31), pvVar75 = pvVar49,
                       pcVar26 = pcVar31, pcVar45 = pcVar47, iVar43 == 0)) {
                      uVar63 = *(uint *)((int)&local_6c->lma + 4);
                      pbVar50 = *(bfd_section **)&local_6c->lma;
                      if (uVar63 != 0 || pbVar50 != (bfd_section *)0x0) {
                        pbVar14 = paVar51->output_section;
                        uVar48 = paVar51->alignment_power;
                        if ((uVar48 != 0 || pbVar14 != (bfd_section *)0x0) &&
                           ((-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||
                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),
                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),
                            *puVar59 <= uVar60 &&
                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <
                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)))) {
                          *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;
                          if (uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)) {
                            *(bfd_section **)&local_6c->lma = pbVar14;
                            *(uint *)((int)&local_6c->lma + 4) = uVar48;
                          }
                          bVar69 = true;
                          if (local_84 != (asymbol **)0x0) {
                            *(undefined4 *)&local_6c->size = 1;
                          }
                          break;
                        }
                      }
                    }
                    if (local_84 == (asymbol **)0x0) {
                      if ((((int)paVar51->rawsize == 0) && (local_a8 != (asection *)0x0)) &&
                         (local_a8->index == 0)) {
                        local_a8->index = 0x100;
                      }
                    }
                    else {
                      paVar51->relocation = (reloc_cache_entry *)0x1;
                      *(undefined4 *)((int)&paVar51->rawsize + 4) = 0x101;
                      *(undefined4 *)&local_6c->size = 1;
                      local_6c->index = 0x101;
                    }
                    break;
                  }
                  uVar63 = 0;
                  for (iVar43 = 0; (int)pcVar47 - iVar52 != iVar43; iVar43 = iVar43 + 1) {
                    uVar63 = uVar63 | (uint)*(byte *)((int)pvVar49 + iVar43 + iVar52) <<
                                      ((char)iVar43 * '\b' & 0x1fU);
                  }
                  local_6c = (bfd_section *)0x0;
                  pcVar47 = pbVar50->name;
                  pcVar31 = (char *)((int)&pbVar14->name + iVar52);
                  for (uVar48 = 0; (int)pcVar47 - iVar52 != uVar48; uVar48 = uVar48 + 1) {
                    local_6c = (bfd_section *)
                               ((uint)local_6c |
                               (uint)(byte)pcVar31[uVar48] << ((char)uVar48 * '\b' & 0x1fU));
                  }
                  uVar67 = 0;
                  uVar63 = (int)local_6c + uVar63;
                  for (uVar60 = uVar63; uVar60 != 0; uVar60 = uVar60 >> 8) {
                    uVar67 = uVar67 + 1;
                  }
                  in_stack_ffffff28 = pbVar50;
                  if (uVar67 < uVar48) {
                    goto LAB_0001b1a6;
                  }
                }
                local_6c = (bfd_section *)&pbVar50[-1].entsize;
              }
            }
            goto LAB_0001afd1;
          }
          if (!bVar69) goto LAB_0001ae41;
          pvVar49 = (void *)xmalloc(pcVar27,pvVar75,pcVar26,pcVar45);
          local_cc = local_7c;
          pvVar75 = pvVar49;
          in_stack_ffffff28 = local_78;
          local_a8 = (asection *)pbVar39;
          for (paVar51 = local_74; paVar51 < paVar68;
              paVar51 = (asection *)((int)&paVar51->size + 4)) {
            pcVar45 = paVar51->name;
            uVar63 = paVar51->index;
            pcVar26 = pcVar45 + paVar51->id + 0xc;
            pvVar54 = pvVar75;
            if (uVar63 != 0) {
              if ((int)paVar51->size == 0) {
                memcpy(pvVar75,local_a8,(size_t)pcVar26);
                pvVar54 = (void *)((int)pvVar75 + (int)pcVar26);
              }
              else {
                pbVar1 = &paVar51->vma;
                bVar72 = *pbVar1;
                bVar73 = *pbVar1;
                p_Var15 = ibfd->xvec->bfd_putx32;
                __dest = (void *)((int)pvVar75 + 0xc);
                pvVar54 = (void *)((int)__dest + (int)pcVar45);
                if (((*(asection **)((int)&paVar51->vma + 4) == local_78) &&
                    (*(char **)pbVar1 == local_7c)) &&
                   ((*(asection **)((int)&paVar51->lma + 4) == in_stack_ffffff28 &&
                    (*(char **)&paVar51->lma == local_cc)))) {
                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);
                  (*ibfd->xvec->bfd_putx32)(0,(void *)((int)pvVar75 + 4));
                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));
                  memcpy(__dest,paVar51->next,(size_t)pcVar45);
                }
                else {
                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);
                  uVar48 = 8;
                  if ((ibfd->xvec->flavour == bfd_target_elf_flavour) &&
                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {
                    uVar48 = 0x10;
                  }
                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar48,(void *)((int)pvVar75 + 4));
                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));
                  memcpy(__dest,paVar51->next,(size_t)pcVar45);
                  pbVar13 = ibfd->xvec;
                  if ((pbVar13->flavour == bfd_target_elf_flavour) &&
                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {
                    (*pbVar13->bfd_putx64)(bVar73,pvVar54);
                    (*ibfd->xvec->bfd_putx64)(paVar51->lma,(void *)((int)pvVar54 + 8));
                    pvVar54 = (void *)((int)pvVar54 + 0x10);
                  }
                  else {
                    (*pbVar13->bfd_putx32)(bVar72,pvVar54);
                    (*ibfd->xvec->bfd_putx32)(paVar51->lma,(void *)((int)pvVar54 + 4));
                    pvVar54 = (void *)((int)pvVar54 + 8);
                  }
                }
              }
              local_7c = *(char **)&paVar51->vma;
              local_78 = *(asection **)((int)&paVar51->vma + 4);
              local_cc = *(char **)&paVar51->lma;
              in_stack_ffffff28 = *(asection **)((int)&paVar51->lma + 4);
            }
            local_a8 = (asection *)((int)local_a8 + (int)pcVar26);
            pvVar75 = pvVar54;
          }
          pcVar26 = (char *)((int)pvVar75 - (int)pvVar49);
          paVar68 = (asection *)((int)pcVar26 >> 0x1f);
          in_stack_ffffff24 = (bfd_section *)obfd;
          memcpy(pbVar39,pvVar49,(size_t)pcVar26);
          free(pvVar49);
          free(local_74);
          local_6c = (bfd_section *)obfd;
          merged_size._0_4_ = pcVar26;
          merged_size._4_4_ = paVar68;
          if ((paVar53 != paVar68) || (pcVar27 != pcVar26)) {
            pbVar35 = paVar30->output_section;
            if ((pbVar35 != (bfd_section *)0x0) &&
               (pbVar35 = (bfd_section *)bfd_set_section_size(obfd,pbVar35,pcVar26,paVar68),
               pbVar35 != (bfd_section *)0x0)) goto LAB_00018e0e;
            pcVar27 = (char *)dcgettext(0,"warning: failed to set merged notes size",5,pbVar35);
            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);
          }
        }
        else {
          pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,
                                      local_7c);
LAB_0001ae12:
          if (pcVar27 != (char *)0x0) {
            bfd_set_error(0x11);
            bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);
            status = 1;
          }
LAB_0001ae41:
          free(local_74);
          local_6c = (bfd_section *)obfd;
        }
        free(merged_notes);
        merged_notes = (bfd_byte *)0x0;
        merge_notes = 0;
        merged_size._0_4_ = (char *)0x0;
        merged_size._4_4_ = (asection *)0x0;
      }
    }
  }
LAB_00018e0e:
  obfd = (bfd *)local_6c;
  local_c4 = gnu_debuglink_filename;
  for (psVar57 = dump_sections; gnu_debuglink_filename = local_c4, psVar57 != (section_add *)0x0;
      psVar57 = psVar57->next) {
    paVar30 = (asection *)bfd_get_section_by_name(ibfd,*(char **)((int)psVar57 + 4));
    if (paVar30 == (asection *)0x0) {
      pcVar27 = *(char **)((int)psVar57 + 4);
      pcVar26 = (char *)dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);
      bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar26,pcVar27);
    }
    else {
      if ((paVar30->flags & 0x100) == 0) {
        pcVar27 = "can\'t dump section - it has no contents";
      }
      else {
        sVar37 = (size_t)paVar30->size;
        iVar22 = *(int *)((int)&paVar30->size + 4);
        if (iVar22 != 0 || sVar37 != 0) {
          __s = fopen64(*(char **)((int)psVar57 + 8),"w");
          if (__s == (FILE *)0x0) {
            pcVar27 = (char *)dcgettext(0,"could not open section dump file",5);
            bfd_nonfatal_message(*(char **)((int)psVar57 + 8),(bfd *)0x0,(asection *)0x0,pcVar27);
          }
          else {
            iVar52 = bfd_malloc_and_get_section(ibfd,paVar30,&contents);
            if (iVar52 == 0) {
              pcVar27 = (char *)dcgettext(0,"could not retrieve section contents",5);
              bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);
            }
            else {
              sVar38 = fwrite(contents,1,sVar37,__s);
              if (iVar22 != 0 || sVar37 != sVar38) {
                piVar44 = __errno_location();
                pcVar26 = strerror(*piVar44);
                pcVar27 = *(char **)((int)psVar57 + 8);
                pcVar45 = (char *)dcgettext(0,"error writing section contents to %s (error: %s)",5);
                non_fatal(pcVar45,pcVar27,pcVar26);
                free(contents);
                return 0;
              }
            }
            fclose(__s);
            free(contents);
          }
          goto LAB_00018eb1;
        }
        pcVar27 = "can\'t dump section - it is empty";
      }
      pcVar27 = (char *)dcgettext(0,pcVar27,5);
      bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);
    }
LAB_00018eb1:
    local_c4 = gnu_debuglink_filename;
  }
  if (local_c4 != (char *)0x0) {
    iVar22 = bfd_get_section_by_name(local_6c,".gnu_debuglink");
    if (iVar22 == 0) {
      local_c4 = (char *)bfd_create_gnu_debuglink_section(local_6c,gnu_debuglink_filename);
      pcVar27 = gnu_debuglink_filename;
      if (local_c4 == (char *)0x0) {
        pcVar26 = (char *)dcgettext(0,"cannot create debug link section `%s\'",5,0);
        bfd_nonfatal_message((char *)0x0,(bfd *)local_6c,(asection *)0x0,pcVar26,pcVar27);
        return 0;
      }
      if (*(int *)(local_6c->id + 4) == 2) {
        prVar42 = (reloc_cache_entry *)local_6c->orelocation;
        prVar62 = (reloc_cache_entry *)0x0;
        if (prVar42 == (reloc_cache_entry *)0x0) {
LAB_0001aa69:
          uVar63 = 0x1000;
          iVar22 = 0;
        }
        else {
          do {
            prVar12 = *(reloc_cache_entry **)((int)&prVar42[1].address + 4);
            prVar61 = prVar62;
            if (((prVar12 != (reloc_cache_entry *)0x0 ||
                  *(reloc_cache_entry **)&prVar42[1].address != (reloc_cache_entry *)0x0) &&
                (prVar61 = prVar42, prVar62 != (reloc_cache_entry *)0x0)) &&
               (prVar11 = *(reloc_cache_entry **)((int)&prVar62[1].address + 4), prVar61 = prVar62,
               prVar11 < prVar12 ||
               (uint)((int)prVar11 - (int)prVar12) <
               (uint)(*(reloc_cache_entry **)&prVar62[1].address <
                     *(reloc_cache_entry **)&prVar42[1].address))) {
              prVar61 = prVar42;
            }
            prVar42 = *(reloc_cache_entry **)&prVar42->addend;
            prVar62 = prVar61;
          } while (prVar42 != (reloc_cache_entry *)0x0);
          if (prVar61 == (reloc_cache_entry *)0x0) goto LAB_0001aa69;
          uVar63 = (int)&(prVar61[1].howto)->type + (int)*(reloc_cache_entry **)&prVar61[1].address;
          iVar22 = (int)&((reloc_cache_entry *)prVar61[2].sym_ptr_ptr)->sym_ptr_ptr +
                   (int)&(*(reloc_cache_entry **)((int)&prVar61[1].address + 4))->sym_ptr_ptr +
                   (uint)CARRY4((uint)prVar61[1].howto,
                                (uint)*(reloc_cache_entry **)&prVar61[1].address);
          if (-iVar22 - 1U < (uint)(0xfffff000 < uVar63)) {
            uVar63 = 0xffffffff;
            iVar22 = -1;
          }
          else {
            iVar22 = iVar22 + (uint)(0xfffff000 < uVar63);
            uVar63 = uVar63 + 0xfff & 0xfffff000;
          }
        }
        *(uint *)(local_c4 + 0x24) = uVar63;
        *(int *)(local_c4 + 0x28) = iVar22;
        *(uint *)(local_c4 + 0x1c) = uVar63;
        *(int *)(local_c4 + 0x20) = iVar22;
        local_c4[0x18] = local_c4[0x18] | 1;
      }
    }
    else {
      pcVar27 = local_6c->name;
      pcVar26 = (char *)dcgettext(0,"%s: debuglink section already exists",5);
      non_fatal(pcVar26,pcVar27);
      gnu_debuglink_filename = (char *)0x0;
      local_c4 = (char *)0x0;
    }
  }
  sVar37 = (size_t)local_6c->filepos;
  if ((sVar37 == 0) || (gap_fill_set == 0 && pad_to_set == 0)) {
    local_b8 = (asection *)0x0;
    local_bc = 0;
    local_b4 = (void *)0x0;
    local_a8 = (asection *)0x0;
    uVar63 = local_bc;
    paVar30 = local_b8;
  }
  else {
    local_a8 = (asection *)xmalloc(sVar37 * 4);
    contents = (bfd_byte *)local_a8;
    bfd_map_over_sections(local_6c,get_sections,&contents);
    qsort(local_a8,sVar37,4,compare_section_lma);
    sVar38 = sVar37 * 8;
    local_b4 = (void *)xmalloc(sVar38);
    memset(local_b4,0,sVar38);
    if ((gap_fill_set == 0) || (sVar37 == 1)) {
      local_b8 = (asection *)0x0;
      local_bc = 0;
    }
    else {
      local_b8 = (asection *)0x0;
      local_bc = 0;
      local_6c = (bfd_section *)0x0;
      local_64 = (int *)local_a8;
      do {
        local_6c = (bfd_section *)((int)local_6c + 1);
        iVar22 = *local_64;
        uVar63 = local_bc;
        paVar30 = local_b8;
        if ((*(uint *)(iVar22 + 0x14) & 0x102) == 0x102) {
          uVar48 = *(uint *)(iVar22 + 0x2c);
          uVar60 = *(uint *)(local_64[1] + 0x28);
          uVar67 = *(uint *)(local_64[1] + 0x24);
          uVar55 = uVar48 + *(uint *)(iVar22 + 0x24);
          uVar64 = *(int *)(iVar22 + 0x30) + *(int *)(iVar22 + 0x28) +
                   (uint)CARRY4(uVar48,*(uint *)(iVar22 + 0x24));
          if (uVar64 < uVar60 || uVar64 - uVar60 < (uint)(uVar55 < uVar67)) {
            paVar30 = (asection *)(uVar67 - uVar55);
            uVar63 = (uVar60 - uVar64) - (uint)(uVar67 < uVar55);
            iVar22 = bfd_set_section_size
                               (obfd,iVar22,(int)&paVar30->name + uVar48,
                                *(int *)(iVar22 + 0x30) + uVar63 +
                                (uint)CARRY4(uVar48,(uint)paVar30));
            if (iVar22 == 0) {
              pcVar27 = (char *)dcgettext(0,"Can\'t fill gap after section",5,0);
              bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_64,pcVar27);
              status = 1;
              break;
            }
            *(asection **)((int)local_b4 + (int)local_6c * 8 + -8) = paVar30;
            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar63;
            if (uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63) {
              uVar63 = local_bc;
              paVar30 = local_b8;
            }
          }
        }
        local_b8 = paVar30;
        local_bc = uVar63;
        local_64 = local_64 + 1;
      } while ((bfd_section *)(sVar37 - 1) != local_6c);
    }
    uVar63 = local_bc;
    paVar30 = local_b8;
    if (pad_to_set != 0) {
      iVar22 = *(int *)((int)local_a8 + (sVar37 - 1) * 4);
      uVar48 = *(uint *)(iVar22 + 0x24);
      uVar60 = uVar48 + *(uint *)(iVar22 + 0x2c);
      uVar67 = *(int *)(iVar22 + 0x28) + *(int *)(iVar22 + 0x30) +
               (uint)CARRY4(uVar48,*(uint *)(iVar22 + 0x2c));
      if (uVar67 < pad_to._4_4_ || uVar67 - pad_to._4_4_ < (uint)(uVar60 < (uint)pad_to)) {
        iVar22 = bfd_set_section_size
                           (obfd,iVar22,(uint)pad_to - uVar48,
                            (pad_to._4_4_ - *(int *)(iVar22 + 0x28)) - (uint)((uint)pad_to < uVar48)
                           );
        if (iVar22 == 0) {
          pcVar27 = (char *)dcgettext(0,"can\'t add padding",5,uVar60);
          bfd_nonfatal_message
                    ((char *)0x0,obfd,*(asection **)((int)local_a8 + (sVar37 - 1) * 4),pcVar27);
          status = 1;
        }
        else {
          paVar30 = (asection *)((uint)pad_to - uVar60);
          uVar63 = (pad_to._4_4_ - uVar67) - (uint)((uint)pad_to < uVar60);
          *(asection **)((int)local_b4 + (sVar38 - 8)) = paVar30;
          *(uint *)((int)local_b4 + (sVar38 - 4)) = uVar63;
          if (uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63) {
            uVar63 = local_bc;
            paVar30 = local_b8;
          }
        }
      }
    }
  }
  local_b8 = paVar30;
  local_bc = uVar63;
  local_c0 = (void *)0x0;
  if (convert_debugging != 0) {
    local_c0 = read_debugging_info(ibfd,isympp,local_8c,0);
  }
  if (strip_symbols - STRIP_DEBUG < 6) {
LAB_0001962a:
    if (strip_symbols != STRIP_ALL) goto LAB_0001962f;
  }
  else {
    if (localize_hidden == 0 && discard_locals == LOCALS_UNDEF) {
      iVar22 = htab_elements(strip_specific_htab);
      if ((((((iVar22 == 0) && (iVar22 = htab_elements(keep_specific_htab), iVar22 == 0)) &&
            (iVar22 = htab_elements(localize_specific_htab), iVar22 == 0)) &&
           ((iVar22 = htab_elements(globalize_specific_htab), iVar22 == 0 &&
            (iVar22 = htab_elements(keepglobal_specific_htab), iVar22 == 0)))) &&
          (iVar22 = htab_elements(weaken_specific_htab), iVar22 == 0)) &&
         (((iVar22 = htab_elements(redefine_specific_htab), 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) && iVar22 == 0)))) goto LAB_00019e4d;
      goto LAB_0001962a;
    }
LAB_0001962f:
    bfd_set_error(0);
    bfd_map_over_sections(ibfd,mark_symbols_used_in_relocations,isympp);
    iVar22 = bfd_get_error();
    if (iVar22 != 0) {
      status = 1;
      return 0;
    }
  }
  ppaVar34 = (asymbol **)xmalloc((add_symbols + local_8c) * 4 + 4);
  local_84 = isympp;
  uVar63 = *(uint *)&ibfd->field_0x28;
  osympp = ppaVar34;
  if (local_8c != 0) {
    ppaVar2 = isympp + local_8c;
    local_8c = 0;
    pbVar35 = (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0);
    do {
      iVar22 = add_symbols;
      paVar40 = *local_84;
      uVar48 = paVar40->flags;
      pbVar39 = (bfd_byte *)paVar40->name;
      pbVar50 = paVar40->section;
      if (((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&
         (pcVar27 = add_sym_list->othersym, pcVar27 != (char *)0x0)) {
        local_6c = (bfd_section *)0x0;
        ptr = add_sym_list;
        while (iVar52 = strcmp(pcVar27,(char *)pbVar39), iVar52 != 0) {
          local_6c = (bfd_section *)((int)local_6c + 1);
          ptr = ptr->next;
          if ((local_6c == (bfd_section *)iVar22) ||
             (pcVar27 = ptr->othersym, pcVar27 == (char *)0x0)) goto LAB_000197a8;
        }
        free(pcVar27);
        ptr->othersym = "";
        ppaVar3 = ppaVar34 + local_8c;
        local_8c = local_8c + 1;
        paVar36 = create_new_symbol(ptr,obfd);
        *ppaVar3 = paVar36;
      }
LAB_000197a8:
      iVar22 = htab_elements(redefine_specific_htab);
      pbVar56 = pbVar39;
      if ((iVar22 != 0) || (section_rename_list != (section_rename *)0x0)) {
        local_30 = 0;
        contents = pbVar39;
        iVar22 = htab_find(redefine_specific_htab,&contents);
        if (((iVar22 == 0) || (pbVar56 = *(bfd_byte **)(iVar22 + 4), pbVar39 == pbVar56)) &&
           (psVar18 = section_rename_list, (uVar48 & 0x100) != 0)) {
          for (; pbVar56 = pbVar39, psVar18 != (section_rename *)0x0; psVar18 = psVar18->next) {
            iVar22 = strcmp(psVar18->old_name,(char *)pbVar39);
            if (iVar22 == 0) {
              pbVar56 = (bfd_byte *)psVar18->new_name;
              break;
            }
          }
        }
        paVar40->name = (char *)pbVar56;
      }
      pcVar27 = prefix_symbols_string;
      bVar5 = ibfd->xvec->symbol_leading_char;
      if (*pbVar56 == bVar5) {
        if (change_leading_char == 0) {
          if ((remove_leading_char != 0) &&
             ((((uVar48 & 0x82) != 0 || (pbVar50 == pbVar35)) ||
              ((paVar40->section->flags & 0x1000) != 0)))) {
            pbVar56 = pbVar56 + 1;
            paVar40->name = (char *)pbVar56;
          }
LAB_0001982b:
          if (pcVar27 != (char *)0x0) {
            sVar37 = strlen(pcVar27);
            sVar38 = strlen((char *)pbVar56);
            pbVar39 = (bfd_byte *)xmalloc(sVar37 + 2 + sVar38);
            local_6c = (bfd_section *)pbVar39;
            goto LAB_00019858;
          }
        }
        else {
          bVar5 = *(bfd_byte *)(((bfd_section *)obfd)->id + 0x18);
          if (bVar5 == '\0') {
            pbVar56 = pbVar56 + 1;
            paVar40->name = (char *)pbVar56;
            goto LAB_0001982b;
          }
          if (prefix_symbols_string != (char *)0x0) {
            pbVar56 = pbVar56 + 1;
            paVar40->name = (char *)pbVar56;
            goto LAB_00019ab1;
          }
          *pbVar56 = bVar5;
          paVar40->name = (char *)pbVar56;
        }
      }
      else {
        if (((change_leading_char == 0) || (*(char *)(((bfd_section *)obfd)->id + 0x18) == '\0')) ||
           (bVar5 != '\0')) goto LAB_0001982b;
LAB_00019ab1:
        sVar37 = strlen(pcVar27);
        sVar38 = strlen((char *)pbVar56);
        pbVar39 = (bfd_byte *)xmalloc(sVar37 + 2 + sVar38);
        local_6c = (bfd_section *)(pbVar39 + 1);
        *pbVar39 = *(bfd_byte *)(((bfd_section *)obfd)->id + 0x18);
LAB_00019858:
        pcVar27 = prefix_symbols_string;
        if (prefix_symbols_string != (char *)0x0) {
          strcpy((char *)local_6c,prefix_symbols_string);
          sVar37 = strlen(pcVar27);
          local_6c = (bfd_section *)((int)local_6c + sVar37);
        }
        strcpy((char *)local_6c,(char *)pbVar56);
        paVar40->name = (char *)pbVar39;
        pbVar56 = pbVar39;
      }
      if (strip_symbols == STRIP_ALL) goto LAB_00019928;
      if ((uVar48 & 0x20) == 0) {
        if (((uVar48 & 0x100) == 0) || (((*paVar40->section->symbol_ptr_ptr)->flags & 0x20) == 0)) {
          if ((((uVar63 >> 5 & 0x42) == 0) &&
              (((uVar48 & 0x82) != 0 || ((paVar40->section->flags & 0x1000) != 0)))) ||
             (iVar22 = bfd_decode_symclass(paVar40), iVar22 == 0x49)) {
LAB_00019b80:
            bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);
            if (bVar25 == 0) goto LAB_00019910;
          }
          else if ((((uVar48 & 0x82) == 0) &&
                   (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0))) &&
                  ((paVar40->section->flags & 0x1000) == 0)) {
            if ((uVar48 & 4) == 0) {
              if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||
                  (pvVar75 = paVar40->section->used_by_bfd, pvVar75 == (void *)0x0)) ||
                 (*(int *)((int)pvVar75 + 0x2c) == 0)) {
                if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))
                goto LAB_00019928;
                if (discard_locals == LOCALS_START_L) {
                  iVar22 = bfd_is_local_label(ibfd,paVar40,0,0);
                  goto joined_r0x0001a753;
                }
              }
              goto LAB_00019b80;
            }
            iVar22 = convert_debugging;
            if (1 < strip_symbols - STRIP_DEBUG) {
joined_r0x0001a753:
              if (iVar22 == 0) goto LAB_00019b80;
            }
          }
          else if (strip_symbols != STRIP_UNNEEDED) goto LAB_00019b80;
        }
        else {
          bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);
          if (bVar25 != 0) {
            pcVar27 = (char *)dcgettext(0,
                                        "not stripping symbol `%s\' because it is named in a relocation"
                                        ,5,bVar25);
            non_fatal(pcVar27,pbVar56);
            status = 1;
          }
LAB_00019910:
          bVar25 = is_specified_symbol((char *)pbVar56,strip_unneeded_htab);
          if (bVar25 == 0) goto LAB_0001994f;
        }
LAB_00019928:
        if (((keep_file_symbols != 0) && ((uVar48 & 0x4000) != 0)) ||
           (bVar25 = is_specified_symbol((char *)pbVar56,keep_specific_htab), bVar25 != 0))
        goto LAB_0001994f;
      }
      else {
        bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);
        if (bVar25 != 0) {
          pcVar27 = (char *)dcgettext(0,
                                      "not stripping symbol `%s\' because it is named in a relocation"
                                      ,5);
          non_fatal(pcVar27,pbVar56);
          status = 1;
        }
LAB_0001994f:
        bVar25 = is_strip_section((bfd *)in_stack_ffffff24,in_stack_ffffff28);
        if (bVar25 == 0) {
          if (((uVar48 & 2) != 0) &&
             ((weaken != 0 ||
              (bVar25 = is_specified_symbol((char *)pbVar56,weaken_specific_htab), bVar25 != 0)))) {
            paVar40->flags = paVar40->flags & 0xfffffffd | 0x80;
          }
          if (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0)) {
            if (((uVar48 & 0x82) != 0) &&
               (((bVar25 = is_specified_symbol((char *)pbVar56,localize_specific_htab), bVar25 != 0
                 || ((iVar22 = htab_elements(keepglobal_specific_htab), iVar22 != 0 &&
                     (bVar25 = is_specified_symbol((char *)pbVar56,keepglobal_specific_htab),
                     bVar25 == 0)))) ||
                ((localize_hidden != 0 &&
                 ((((pbVar46 = paVar40->the_bfd, pbVar46 != (bfd *)0x0 &&
                    (pbVar46->xvec->flavour == bfd_target_elf_flavour)) &&
                   ((pbVar46->tdata).aout_data != (aout_data_struct *)0x0)) &&
                  ((*(byte *)((int)&paVar40[1].section + 1) & 3) - 1 < 2)))))))) {
              paVar40->flags = paVar40->flags & 0xffffff7d | 1;
            }
            if (((uVar48 & 1) != 0) &&
               (bVar25 = is_specified_symbol((char *)pbVar56,globalize_specific_htab), bVar25 != 0))
            {
              paVar40->flags = paVar40->flags & 0xfffffffe | 2;
            }
          }
          ppaVar34[local_8c] = paVar40;
          local_8c = local_8c + 1;
        }
      }
      local_84 = local_84 + 1;
    } while (ppaVar2 != local_84);
  }
  local_6c = (bfd_section *)add_sym_list;
  if ((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) {
    iVar22 = 0;
    do {
      pcVar27 = (char *)local_6c->flags;
      if (pcVar27 == (char *)0x0) {
        paVar40 = create_new_symbol((addsym_node *)local_6c,obfd);
        ppaVar34[local_8c] = paVar40;
        local_8c = local_8c + 1;
      }
      else if (*pcVar27 != '\0') {
        pcVar26 = (char *)dcgettext(0,"\'before=%s\' not found",5,local_8c);
                    /* WARNING: Subroutine does not return */
        fatal(pcVar26,pcVar27);
      }
      iVar22 = iVar22 + 1;
      local_6c = (bfd_section *)local_6c->name;
    } while (iVar22 < add_symbols);
  }
  ppaVar34[local_8c] = (asymbol *)0x0;
  if ((convert_debugging != 0) && (local_c0 != (void *)0x0)) {
    iVar22 = ((undefined4 *)((bfd_section *)obfd)->id)[1];
    if ((iVar22 == 2) || (iVar22 == 5)) {
      bVar25 = write_stabs_in_sections_debugging_info
                         (obfd,local_c0,&syms,(bfd_size_type *)file_alignment,&strings,
                          (bfd_size_type *)&contents);
      if (bVar25 != 0) {
        iVar22 = bfd_make_section_with_flags(obfd,".stab",0x2108);
        iVar52 = bfd_make_section_with_flags(obfd,".stabstr",0x2108);
        if ((((iVar22 == 0) || (iVar52 == 0)) ||
            (iVar43 = bfd_set_section_size(obfd,iVar22,file_alignment._0_4_,file_alignment._4_4_),
            iVar43 == 0)) ||
           (iVar43 = bfd_set_section_size(obfd,iVar52,contents,local_30), iVar43 == 0)) {
          pcVar27 = "can\'t create debugging section";
        }
        else {
          *(undefined4 *)(iVar22 + 0x58) = 2;
          *(undefined4 *)(iVar52 + 0x58) = 0;
          iVar22 = bfd_set_section_contents
                             (obfd,iVar22,syms,0,0,file_alignment._0_4_,file_alignment._4_4_,iVar43)
          ;
          if ((iVar22 != 0) &&
             (iVar22 = bfd_set_section_contents
                                 (obfd,iVar52,strings,0,0,contents,local_30,extraout_ECX),
             iVar22 != 0)) goto LAB_00019e4d;
          pcVar27 = "can\'t set debugging section contents";
          iVar22 = iVar52;
        }
        pcVar27 = (char *)dcgettext(0,pcVar27,5,iVar22);
        bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27);
      }
    }
    else {
      uVar32 = *(undefined4 *)((bfd_section *)obfd)->id;
      pcVar27 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",5);
      bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27,uVar32);
    }
    status = 1;
    return 0;
  }
LAB_00019e4d:
  bfd_set_symtab(obfd,osympp,local_8c);
  bfd_map_over_sections(ibfd,copy_relocations_in_section,obfd);
  bfd_map_over_sections(ibfd,copy_section,obfd);
  for (psVar57 = add_sections; pbVar35 = (bfd_section *)obfd, psVar17 = update_sections,
      psVar57 != (section_add *)0x0; psVar57 = psVar57->next) {
    iVar22 = bfd_set_section_contents(obfd,psVar57->section,psVar57->contents,0,0,psVar57->size,0);
    if (iVar22 == 0) {
LAB_00019d5e:
      bfd_nonfatal_message((char *)0x0,obfd,psVar57->section,(char *)0x0);
      return 0;
    }
  }
  while( true ) {
    if (psVar17 == (section_add *)0x0) {
      paVar30 = (asection *)0x0;
      if (merge_notes != 0) {
        paVar30 = (asection *)bfd_get_section_by_name(obfd,".gnu.build.attributes");
        if (((paVar30 == (asection *)0x0) || (merge_notes == 0)) ||
           ((*(int *)(((bfd_section *)obfd)->id + 4) != 5 ||
            (bVar25 = is_merged_note_section
                                ((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1_00),
            bVar25 == 0)))) {
          if (is_strip == 0) {
            pcVar27 = (char *)dcgettext(0,"could not find any mergeable note sections",5,0);
            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);
          }
        }
        else {
          iVar22 = bfd_set_section_contents
                             (obfd,paVar30,merged_notes,0,0,(char *)merged_size,merged_size._4_4_,
                              bVar25);
          if (iVar22 == 0) {
            pcVar27 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5,0);
            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);
            return 0;
          }
        }
        free(merged_notes);
        merged_notes = (bfd_byte *)0x0;
        merge_notes = 0;
        pbVar35 = (bfd_section *)obfd;
      }
      if ((gnu_debuglink_filename != (char *)0x0) &&
         (iVar22 = bfd_fill_in_gnu_debuglink_section(obfd,local_c4,gnu_debuglink_filename),
         pcVar27 = gnu_debuglink_filename, iVar22 == 0)) {
        pcVar26 = (char *)dcgettext(0,"cannot fill debug link section `%s\'",5,0);
        bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar26,pcVar27);
        return 0;
      }
      if (gap_fill_set != 0 || pad_to_set != 0) {
        paVar30 = (asection *)0x2000;
        if (local_bc == 0 && (uint)((asection *)0x2000 < local_b8) <= -local_bc) {
          paVar30 = local_b8;
        }
        puVar41 = (undefined4 *)xmalloc(paVar30);
        pcVar27 = (char *)((uint)gap_fill * 0x1010101);
        if (paVar30 < (asection *)0x4) {
          if ((paVar30 != (asection *)0x0) &&
             (*(char *)puVar41 = (char)pcVar27, ((uint)paVar30 & 2) != 0)) {
            *(short *)((int)puVar41 + -2 + (int)paVar30) = (short)pcVar27;
          }
        }
        else {
          *puVar41 = pcVar27;
          *(char **)((int)(puVar41 + -1) + (int)paVar30) = pcVar27;
          pbVar35 = (bfd_section *)((uint)(puVar41 + 1) & 0xfffffffc);
          for (uVar63 = (uint)(((int)puVar41 - (int)((uint)(puVar41 + 1) & 0xfffffffc)) +
                              (int)paVar30) >> 2; uVar63 != 0; uVar63 = uVar63 - 1) {
            pbVar35->name = pcVar27;
            pbVar35 = (bfd_section *)((int)pbVar35 + (uint)bVar71 * -8 + 4);
          }
        }
        iVar22 = (int)((bfd_section *)obfd)->filepos;
        if (iVar22 != 0) {
          local_64 = (int *)0x0;
          do {
            piVar44 = local_64;
            pbVar35 = *(bfd_section **)((int)local_b4 + (int)local_64 * 8 + 4);
            paVar30 = *(asection **)((int)local_b4 + (int)local_64 * 8);
            if (pbVar35 != (bfd_section *)0x0 || paVar30 != (asection *)0x0) {
              piVar4 = (int *)((int)local_a8 + local_64 * 4);
              local_64 = *(int **)((int)local_a8 + local_64 * 4);
              local_6c = (bfd_section *)((int)*(asection **)((int)local_64 + 0x2c) - (int)paVar30);
              local_68 = (*(int *)((int)local_64 + 0x30) - (int)pbVar35) -
                         (uint)(*(asection **)((int)local_64 + 0x2c) < paVar30);
              while( true ) {
                pbVar50 = pbVar35;
                paVar53 = paVar30;
                if (pbVar35 != (bfd_section *)0x0 ||
                    (uint)-(int)pbVar35 < (uint)((asection *)0x2000 < paVar30)) {
                  paVar53 = (asection *)0x2000;
                  pbVar50 = (bfd_section *)0x0;
                }
                iVar52 = bfd_set_section_contents
                                   (obfd,local_64,puVar41,local_6c,local_68,paVar53,pbVar50);
                if (iVar52 == 0) {
                  bfd_nonfatal_message((char *)0x0,obfd,(asection *)*piVar4,(char *)0x0);
                  return 0;
                }
                bVar69 = paVar30 < paVar53;
                paVar30 = (asection *)((int)paVar30 - (int)paVar53);
                pbVar35 = (bfd_section *)((int)pbVar35 + (-(uint)bVar69 - (int)pbVar50));
                bVar69 = CARRY4((uint)local_6c,(uint)paVar53);
                local_6c = (bfd_section *)((int)&paVar53->name + (int)local_6c);
                local_68 = (int)&pbVar50->name + (uint)bVar69 + local_68;
                if (pbVar35 == (bfd_section *)0x0 && paVar30 == (asection *)0x0) break;
                local_64 = *(int **)((int)local_a8 + piVar44 * 4);
              }
            }
            local_64 = (int *)((int)piVar44 + 1);
          } while ((int *)iVar22 != local_64);
        }
      }
      iVar22 = (**(code **)(((bfd_section *)obfd)->id + 0xa8))(ibfd,obfd);
      if (iVar22 == 0) {
        pcVar27 = (char *)dcgettext(0,"error copying private BFD data",5,pbVar35);
        bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27);
        return 0;
      }
      if ((use_alt_mach_code != 0) &&
         (iVar22 = bfd_alt_mach_code(obfd,use_alt_mach_code,paVar30,paVar30),
         uVar24 = use_alt_mach_code, iVar22 == 0)) {
        pcVar27 = (char *)dcgettext(0,"this target does not support %lu alternative machine codes",5
                                    ,pbVar35);
        non_fatal(pcVar27,uVar24);
        if (*(int *)(((bfd_section *)obfd)->id + 4) != 5) {
          pcVar27 = (char *)dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);
          non_fatal(pcVar27);
          return 1;
        }
        pcVar27 = (char *)dcgettext(0,"treating that number as an absolute e_machine value instead",
                                    5,uVar24);
        non_fatal(pcVar27);
        *(short *)(((bfd_section *)obfd)->target_index + 0x32) = (short)use_alt_mach_code;
      }
      return 1;
    }
    pbVar35 = psVar17->section->output_section;
    bVar25 = bfd_set_section_contents(obfd,pbVar35,psVar17->contents,0,0,psVar17->size,0);
    local_6c = (bfd_section *)obfd;
    if (bVar25 == 0) break;
    psVar17 = psVar17->next;
  }
LAB_00019fa0:
  bfd_nonfatal_message((char *)0x0,(bfd *)local_6c,pbVar35,(char *)0x0);
  return bVar25;
LAB_0001b1a6:
  if ((char *)((int)&pbVar14->name + (int)pcVar47) <= pcVar31) goto LAB_0001b1aa;
  *pcVar31 = (char)uVar63;
  if (uVar63 == 0) goto LAB_0001b1aa;
  uVar63 = uVar63 >> 8;
  pcVar31 = pcVar31 + 1;
  goto LAB_0001b1a6;
LAB_0001b1aa:
  bVar69 = true;
  *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;
  goto LAB_0001afd1;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */

int __regparm3 FUN_00018920(void *param_1,size_t *param_2,int param_3)

{
  int *piVar1;
  char cVar2;
  byte bVar3;
  int *piVar4;
  undefined *puVar5;
  void *pvVar6;
  size_t sVar7;
  code *pcVar8;
  size_t *psVar9;
  size_t *psVar10;
  size_t *psVar11;
  int iVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  FILE *__s;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  int iVar18;
  int *piVar19;
  undefined *puVar20;
  int iVar21;
  size_t sVar22;
  size_t sVar23;
  int *piVar24;
  char *pcVar25;
  void *pvVar26;
  uint uVar27;
  size_t sVar28;
  size_t sVar29;
  undefined4 extraout_ECX;
  undefined4 extraout_ECX_00;
  size_t extraout_ECX_01;
  size_t extraout_ECX_02;
  size_t sVar30;
  int iVar31;
  void *pvVar32;
  uint uVar33;
  int *piVar34;
  undefined4 *puVar35;
  byte *pbVar36;
  uint uVar37;
  size_t *psVar38;
  uint uVar39;
  uint uVar40;
  byte *pbVar41;
  undefined4 *puVar42;
  size_t *psVar43;
  uint uVar44;
  undefined1 *puVar45;
  bool bVar46;
  bool bVar47;
  byte bVar48;
  undefined8 uVar49;
  longlong lVar50;
  longlong lVar51;
  void *pvVar52;
  size_t sVar53;
  void *__dest;
  size_t sVar54;
  size_t sVar55;
  uint local_bc;
  uint local_b8;
  void *local_b4;
  size_t *local_a8;
  int local_a4;
  int local_8c;
  int *local_84;
  uint local_7c;
  uint local_78;
  size_t *local_74;
  size_t *local_6c;
  int local_68;
  int *local_64;
  undefined4 local_54;
  undefined4 local_50;
  undefined4 local_4c;
  undefined4 local_48;
  int *local_34;
  undefined4 local_30;
  undefined4 uStack_14;
  
  bVar48 = 0;
  uStack_14 = 0x1892b;
  iVar12 = *(int *)(*(int *)((int)param_1 + 4) + 8);
  if ((iVar12 != *(int *)(((int *)param_2)[1] + 8) && iVar12 != 2) &&
     (*(int *)(((int *)param_2)[1] + 8) != 2)) {
    uVar13 = dcgettext(0,"Unable to change endianness of input file(s)",5);
    FUN_0002c910(uVar13);
    return 0;
  }
  iVar12 = bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7);
  if (iVar12 == 0) {
    FUN_0002d3a0(0,param_2,0,0);
    return 0;
  }
  if (*(int *)((int)param_1 + 0x60) == 0) {
    uVar13 = FUN_0002d2a0(param_1);
    pcVar25 = "error: the input file \'%s\' has no sections";
    goto LAB_00018f38;
  }
  if ((*(undefined4 **)((int)param_1 + 4))[1] != 5) {
    if ((DAT_00040b44 != 1) && ((DAT_00040b44 & 1) != 0)) {
      uVar13 = FUN_0002d2a0(param_1);
      pcVar25 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";
LAB_00018f38:
      uVar14 = dcgettext(0,pcVar25,5);
      FUN_0002c910(uVar14,uVar13);
      return 0;
    }
    if (DAT_00040b40 != 0) {
      uVar13 = FUN_0002d2a0(param_1);
      pcVar25 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";
      goto LAB_00018f38;
    }
  }
  if (DAT_00040bd0 != 0) {
    uVar13 = **(undefined4 **)((int)param_1 + 4);
    uVar14 = *(undefined4 *)((int *)param_2)[1];
    iVar12 = *param_2;
    uVar15 = FUN_0002d2a0(param_1);
    pcVar25 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);
    printf(pcVar25,uVar15,uVar13,iVar12,uVar14);
  }
  iVar12 = 0;
  iVar31 = 0;
  if (DAT_00040aec == 0) {
    uVar39 = DAT_00040b88;
    iVar31 = DAT_00040b8c;
    if (DAT_00040b90 == 0) {
      uVar39 = *(uint *)((int)param_1 + 0x70);
      iVar31 = *(int *)((int)param_1 + 0x74);
    }
    iVar12 = uVar39 + DAT_00040b98;
    iVar31 = iVar31 + DAT_00040b9c + (uint)CARRY4(uVar39,DAT_00040b98);
  }
  if ((*(byte *)((int *)param_2 + 10) & 7) != 3) {
    uVar39 = ~DAT_00040b5c & *(uint *)(((int *)param_2)[1] + 0x10) &
             (*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff | DAT_00040b60);
    if (DAT_00040bb0 == 7) {
      uVar39 = uVar39 & 0xfffffffe;
    }
    iVar12 = bfd_set_start_address(param_2,iVar12,iVar31);
    if ((iVar12 == 0) || (iVar12 = bfd_set_file_flags(param_2,uVar39), iVar12 == 0))
    goto LAB_00018b70;
  }
  uVar13 = bfd_get_arch(param_1);
  uVar14 = bfd_get_mach(param_1);
  if (param_3 != 0) {
    iVar12 = bfd_get_arch_info(param_1);
    if ((iVar12 == 0) || (iVar12 = bfd_get_arch_info(param_1), *(int *)(iVar12 + 0xc) == 0)) {
      uVar13 = *(undefined4 *)(param_3 + 0xc);
      uVar14 = *(undefined4 *)(param_3 + 0x10);
    }
    else {
      uVar15 = FUN_0002d2a0(param_1);
      uVar16 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);
      FUN_0002c910(uVar16,uVar15);
    }
  }
  iVar12 = (**(code **)(((int *)param_2)[1] + 0x154))(param_2,uVar13,uVar14);
  if (iVar12 == 0) {
    if ((*(byte *)((int)param_1 + 0x2b) & 4) != 0) {
LAB_00018b20:
      iVar12 = bfd_get_arch(param_1);
      if (iVar12 == 0) {
        uVar13 = FUN_0002d2a0(param_1);
        pcVar25 = "Unable to recognise the format of the input file `%s\'";
      }
      else {
        uVar13 = bfd_get_mach(param_1);
        uVar14 = bfd_get_arch(param_1);
        uVar13 = bfd_printable_arch_mach(uVar14,uVar13);
        pcVar25 = "Output file cannot represent architecture `%s\'";
      }
      uVar14 = dcgettext(0,pcVar25,5);
      FUN_0002c910(uVar14,uVar13);
      return 0;
    }
    iVar12 = bfd_get_arch(param_1);
    iVar31 = bfd_get_arch(param_2);
    if (iVar12 != iVar31) goto LAB_00018b20;
  }
  iVar12 = bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7);
  if (iVar12 == 0) {
LAB_00018b70:
    FUN_0002d3a0(0,param_1,0,0);
    return 0;
  }
  uVar39 = ((undefined4 *)((int *)param_2)[1])[1];
  bVar46 = uVar39 < 2;
  bVar47 = uVar39 == 2;
  if (bVar47) {
    iVar12 = 4;
    pbVar36 = *(byte **)((int *)param_2)[1];
    pbVar41 = &DAT_0002f16a;
    do {
      if (iVar12 == 0) break;
      iVar12 = iVar12 + -1;
      bVar46 = *pbVar36 < *pbVar41;
      bVar47 = *pbVar36 == *pbVar41;
      pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;
      pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;
    } while (bVar47);
    if ((!bVar46 && !bVar47) == bVar46) {
      iVar12 = ((int *)param_2)[0x28];
      uVar39 = (*(undefined4 **)((int)param_1 + 4))[1];
      bVar46 = uVar39 < 2;
      bVar47 = uVar39 == 2;
      if (bVar47) {
        iVar31 = 4;
        pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4);
        pbVar41 = &DAT_0002f16a;
        do {
          if (iVar31 == 0) break;
          iVar31 = iVar31 + -1;
          bVar46 = *pbVar36 < *pbVar41;
          bVar47 = *pbVar36 == *pbVar41;
          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;
          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;
        } while (bVar47);
        if ((!bVar46 && !bVar47) == bVar46) {
          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);
          puVar42 = (undefined4 *)(iVar12 + 0x7c);
          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {
            *puVar42 = *puVar35;
            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;
            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;
          }
        }
      }
      uVar39 = DAT_000402b4;
      if ((DAT_000402b4 & DAT_000402b0) == 0xffffffff) {
        DAT_000402b0 = 0x200;
        DAT_000402b4 = 0;
      }
      else {
        *(uint *)(iVar12 + 0xb4) = DAT_000402b0;
        *(uint *)(iVar12 + 0xb8) = uVar39;
      }
      uVar39 = DAT_000402ac;
      if ((DAT_000402ac & DAT_000402a8) != 0xffffffff) {
        *(uint *)(iVar12 + 0xf4) = DAT_000402a8;
        *(uint *)(iVar12 + 0xf8) = uVar39;
      }
      uVar39 = DAT_000402a4;
      if ((DAT_000402a4 & DAT_000402a0) != 0xffffffff) {
        *(uint *)(iVar12 + 0xf4) = DAT_000402a0;
        *(uint *)(iVar12 + 0xf8) = uVar39;
      }
      uVar39 = DAT_0004029c;
      if ((DAT_0004029c & DAT_00040298) != 0xffffffff) {
        *(uint *)(iVar12 + 0xa4) = DAT_00040298;
        *(uint *)(iVar12 + 0xa8) = uVar39;
      }
      uVar39 = DAT_00040294;
      local_64 = (int *)DAT_00040290;
      if ((DAT_00040290 & DAT_00040294) == 0xffffffff) {
        DAT_00040290 = 0x1000;
        uVar39 = 0;
        DAT_00040294 = 0;
        local_64 = (int *)0x1000;
      }
      else {
        *(uint *)(iVar12 + 0xac) = DAT_00040290;
        *(uint *)(iVar12 + 0xb0) = uVar39;
      }
      uVar17 = DAT_0004028c;
      if ((DAT_0004028c & DAT_00040288) != 0xffffffff) {
        *(uint *)(iVar12 + 0xe4) = DAT_00040288;
        *(uint *)(iVar12 + 0xe8) = uVar17;
      }
      uVar17 = DAT_00040284;
      if ((DAT_00040284 & DAT_00040280) != 0xffffffff) {
        *(uint *)(iVar12 + 0xe4) = DAT_00040280;
        *(uint *)(iVar12 + 0xe8) = uVar17;
      }
      if (DAT_0004027c != -1) {
        *(short *)(iVar12 + 0xd8) = DAT_0004027c;
      }
      if (DAT_0004027a != -1) {
        *(short *)(iVar12 + 0xc4) = DAT_0004027a;
      }
      if (DAT_00040278 != -1) {
        *(short *)(iVar12 + 0xc6) = DAT_00040278;
      }
      if (uVar39 < DAT_000402b4 || uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0)) {
        sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4);
        sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294);
        uVar13 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);
        FUN_0002c910(uVar13,&local_4c,&local_34);
      }
    }
  }
  piVar19 = DAT_00040bdc;
  if (DAT_00040bdc != (int *)0x0) {
    free(DAT_00040bdc);
  }
  if (piVar19 != DAT_00040bd8) {
    free(DAT_00040bd8);
  }
  DAT_00040bdc = (int *)0x0;
  DAT_00040bd8 = (int *)0x0;
  iVar12 = (**(code **)(*(int *)((int)param_1 + 4) + 0x104))(param_1);
  if (iVar12 < 0) goto LAB_00018b70;
  DAT_00040bd8 = (int *)xmalloc(iVar12);
  DAT_00040bdc = DAT_00040bd8;
  local_8c = (**(code **)(*(int *)((int)param_1 + 4) + 0x108))(param_1,DAT_00040bd8);
  if (local_8c < 0) goto LAB_00018b70;
  if (local_8c == 0) {
    free(DAT_00040bdc);
    DAT_00040bdc = (int *)0x0;
    DAT_00040bd8 = (int *)0x0;
  }
  bfd_map_over_sections(param_1,FUN_00017af0,param_2);
  puVar35 = DAT_00040b58;
  if ((DAT_00040aec == 0) &&
     (iVar12 = (**(code **)(((int *)param_2)[1] + 0xbc))(param_1,param_2), puVar35 = DAT_00040b58,
     iVar12 == 0)) {
    DAT_00040bc8 = 1;
    uVar13 = dcgettext(0,"error in private header data",5);
    FUN_0002d3a0(0,param_1,0,uVar13);
    puVar35 = DAT_00040b58;
  }
  for (; puVar42 = DAT_00040b54, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)*puVar35) {
    uVar39 = 0x128;
    iVar12 = FUN_00016a30();
    if (iVar12 != 0) {
      uVar39 = *(uint *)(iVar12 + 0x20) | 0x100;
    }
    iVar12 = bfd_get_section_by_name(param_2,puVar35[1]);
    if (iVar12 != 0) {
      uVar13 = puVar35[1];
      pcVar25 = "can\'t add section \'%s\'";
LAB_00019591:
      uVar14 = dcgettext(0,pcVar25,5);
      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);
      return 0;
    }
    iVar12 = bfd_make_section_with_flags(param_2,puVar35[1],uVar39 | 0x100000);
    puVar35[5] = iVar12;
    if (iVar12 == 0) {
      uVar13 = puVar35[1];
      pcVar25 = "can\'t create section `%s\'";
      goto LAB_00019591;
    }
    iVar12 = bfd_set_section_size(param_2,iVar12,puVar35[3],0);
    if (iVar12 == 0) goto LAB_00019d5e;
    iVar12 = FUN_00016a30();
    if (iVar12 != 0) {
      iVar31 = puVar35[5];
      uVar13 = *(undefined4 *)(iVar12 + 0x14);
      uVar14 = *(undefined4 *)(iVar12 + 0x10);
      *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;
      *(undefined4 *)(iVar31 + 0x24) = uVar14;
      *(undefined4 *)(iVar31 + 0x28) = uVar13;
      *(undefined4 *)(iVar31 + 0x1c) = uVar14;
      *(undefined4 *)(iVar31 + 0x20) = uVar13;
    }
    iVar12 = FUN_00016a30();
    if (iVar12 != 0) {
      iVar31 = puVar35[5];
      uVar13 = *(undefined4 *)(iVar12 + 0x18);
      *(undefined4 *)(iVar31 + 0x28) = *(undefined4 *)(iVar12 + 0x1c);
      *(undefined4 *)(iVar31 + 0x24) = uVar13;
    }
  }
  for (; local_6c = param_2, puVar42 != (undefined4 *)0x0; puVar42 = (undefined4 *)*puVar42) {
    iVar12 = bfd_get_section_by_name(param_1,puVar42[1]);
    puVar42[5] = iVar12;
    if (iVar12 == 0) {
      uVar13 = puVar42[1];
      pcVar25 = "error: %s not found, can\'t be updated";
      goto LAB_00018f38;
    }
    psVar43 = *(size_t **)(iVar12 + 0x54);
    iVar12 = bfd_set_section_size(param_2,psVar43,puVar42[3],0);
    if (iVar12 == 0) goto LAB_00019fa0;
  }
  if ((((DAT_00040bc4 != 0) &&
       (iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0)) &&
      (DAT_00040bc4 != 0)) &&
     ((*(int *)(*(int *)((int)param_1 + 4) + 4) == 5 && (iVar31 = FUN_000176d0(), iVar31 != 0)))) {
    uVar39 = *(uint *)(iVar12 + 0x30);
    sVar22 = *(size_t *)(iVar12 + 0x2c);
    if (uVar39 == 0 && sVar22 == 0) {
      uVar13 = dcgettext(0,"warning: note section is empty",5,sVar22);
      FUN_0002d3a0(0,param_1,iVar12,uVar13);
      DAT_00040bc4 = 0;
    }
    else {
      iVar31 = bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22);
      pvVar6 = DAT_00040bc0;
      if (iVar31 == 0) {
        uVar13 = dcgettext(0,"warning: could not load note section",5,0);
        FUN_0002d3a0(0,param_1,iVar12,uVar13);
        free(DAT_00040bc0);
        DAT_00040bc0 = (void *)0x0;
        DAT_00040bc4 = 0;
      }
      else {
        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);
        sVar23 = extraout_ECX_01;
        pvVar26 = param_1;
        if (0 < iVar31) {
          pvVar26 = (void *)xmalloc(iVar31);
          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);
          free(pvVar26);
          sVar23 = extraout_ECX_02;
          if (iVar31 == 0) goto LAB_0001ab09;
          local_74 = (size_t *)0x0;
          goto LAB_0001ae41;
        }
LAB_0001ab09:
        pvVar52 = (void *)0x30;
        sVar53 = sVar23;
        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);
        local_74 = (size_t *)xcalloc(uVar13);
        local_bc = 0;
        sVar54 = 0;
        local_b8 = 0;
        sVar55 = 0;
        local_84 = (int *)0x0;
        local_a8 = (size_t *)0x0;
        local_a4 = 0;
        pvVar26 = pvVar6;
        psVar43 = local_74;
        local_7c = sVar22;
        local_78 = uVar39;
        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {
          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);
          uVar17 = iVar31 + 3U & 0xfffffffc;
          *psVar43 = uVar17;
          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);
          uVar27 = iVar31 + 3U & 0xfffffffc;
          psVar43[1] = uVar27;
          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);
          sVar30 = (size_t)uVar49;
          psVar43[2] = sVar30;
          if (1 < sVar30 - 0x100) {
            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,
                               (int)((ulonglong)uVar49 >> 0x20));
            goto LAB_0001ae12;
          }
          uVar37 = uVar17 + 0xc + uVar27;
          iVar31 = local_78 - (local_7c < uVar37);
          if (local_78 < (local_7c < uVar37)) {
            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);
            goto LAB_0001ae12;
          }
          if (uVar17 < 2) {
            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);
            goto LAB_0001ae12;
          }
          psVar43[3] = (int)pvVar26 + 0xc;
          sVar28 = (int)pvVar26 + uVar17 + 0xc;
          bVar46 = local_7c < uVar37;
          local_7c = local_7c - uVar37;
          local_78 = local_78 - bVar46;
          psVar43[4] = sVar28;
          bVar3 = *(byte *)((int)pvVar26 + 0xc);
          uVar44 = (uint)bVar3;
          if (bVar3 == 0x24) {
            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))
            {
              local_a4 = local_a4 + 1;
            }
          }
          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&
                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&
                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {
            bVar3 = *(byte *)((int)pvVar26 + 0x10);
            uVar44 = (uint)bVar3;
            if (bVar3 == 0x32) {
              local_a8 = (size_t *)((int)local_a8 + 1);
            }
            else {
              if (bVar3 != 0x33) {
                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,
                                   uVar44);
                goto LAB_0001ae12;
              }
              local_84 = (int *)((int)local_84 + 1);
            }
          }
          if (uVar27 == 4) {
            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);
LAB_0001ade8:
            lVar51 = -1;
          }
          else if (uVar27 < 5) {
            if (uVar27 != 0) {
LAB_0001ae8d:
              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44
                                );
              goto LAB_0001ae12;
            }
            lVar51 = 0;
            lVar50 = 0;
          }
          else if (uVar27 == 8) {
            iVar31 = *(int *)((int)param_1 + 4);
            if ((*(int *)(iVar31 + 4) == 5) &&
               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {
              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);
              goto LAB_0001ade8;
            }
            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);
            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);
          }
          else {
            uVar44 = uVar27;
            if (uVar27 != 0x10) goto LAB_0001ae8d;
            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);
            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);
          }
          if (sVar30 == 0x100) {
            sVar30 = (size_t)lVar50;
            if (lVar50 == 0) {
              sVar30 = local_b8;
            }
            sVar28 = (size_t)lVar51;
            if (lVar51 == 0) {
              sVar28 = local_bc;
            }
            psVar43[8] = 0;
            psVar43[7] = sVar30;
            psVar43[9] = sVar28;
            psVar43[10] = 0;
            local_bc = sVar28;
            local_b8 = sVar30;
          }
          else {
            sVar30 = (size_t)lVar50;
            if (lVar50 == 0) {
              sVar30 = sVar55;
            }
            sVar55 = (size_t)lVar51;
            if (lVar51 == 0) {
              sVar55 = sVar54;
            }
            psVar43[8] = 0;
            psVar43[7] = sVar30;
            psVar43[9] = sVar55;
            psVar43[10] = 0;
            sVar54 = sVar55;
            sVar55 = sVar30;
          }
          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {
            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,
                               *psVar43);
            goto LAB_0001ae12;
          }
          psVar43 = psVar43 + 0xc;
          pvVar26 = (void *)(uVar37 + (int)pvVar26);
        }
        if (local_78 == 0 && local_7c == 0) {
          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {
            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,
                               -local_78 - (uint)(0xb < local_7c));
            goto LAB_0001ae12;
          }
          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||
             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {
            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,
                               psVar43);
            goto LAB_0001ae12;
          }
          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))
          goto LAB_0001ae41;
          uVar17 = -(uint)(local_a4 == 0) & 2;
          iVar31 = uVar17 + 1;
          if (*(char *)(local_74[3] + iVar31) != '\x01') {
            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,
                               iVar31);
            goto LAB_0001ae12;
          }
          bVar46 = false;
          iVar18 = uVar17 + 2;
          psVar38 = local_74;
LAB_0001afd1:
          psVar9 = psVar38;
          local_6c = psVar9 + 0xc;
          psVar38 = local_6c;
          if (local_6c < psVar43) {
            if (psVar9[0xe] == 0x100) {
              local_a8 = (size_t *)0x0;
              pvVar26 = (void *)psVar9[0xf];
              local_6c = psVar9;
              while (psVar10 = local_6c, local_74 <= local_6c) {
                pvVar32 = (void *)local_6c[3];
                psVar11 = local_a8;
                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||
                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&
                   ((local_a8 = psVar11,
                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&
                    (local_6c[2] == 0x100)))) {
                  sVar54 = *psVar38;
                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {
                    sVar55 = *local_6c;
                    if ((sVar55 == sVar54) &&
                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,
                       sVar53 = sVar54, iVar21 == 0)) {
                      uVar17 = local_6c[10];
                      uVar27 = local_6c[9];
                      if (uVar17 != 0 || uVar27 != 0) {
                        uVar37 = psVar9[0x15];
                        uVar44 = psVar9[0x16];
                        if ((uVar44 != 0 || uVar37 != 0) &&
                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||
                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),
                            psVar9[0x14] <= uVar33 &&
                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=
                            uVar33 - psVar9[0x14])))) {
                          psVar9[0xe] = 0;
                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {
                            local_6c[9] = uVar37;
                            local_6c[10] = uVar44;
                          }
                          bVar46 = true;
                          if (local_84 != (int *)0x0) {
                            local_6c[0xb] = 1;
                          }
                          break;
                        }
                      }
                    }
                    if (local_84 == (int *)0x0) {
                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))
                      {
                        local_a8[2] = 0x100;
                      }
                    }
                    else {
                      psVar9[0x17] = 1;
                      psVar9[0xe] = 0x101;
                      local_6c[0xb] = 1;
                      local_6c[2] = 0x101;
                    }
                    break;
                  }
                  uVar17 = 0;
                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {
                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<
                                      ((char)iVar21 * '\b' & 0x1fU);
                  }
                  local_6c = (size_t *)0x0;
                  sVar54 = *psVar10;
                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {
                    local_6c = (size_t *)
                               ((uint)local_6c |
                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<
                               ((char)uVar27 * '\b' & 0x1fU));
                  }
                  uVar44 = 0;
                  uVar17 = (int)local_6c + uVar17;
                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {
                    uVar44 = uVar44 + 1;
                  }
                  if (uVar44 < uVar27) {
                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);
                    goto LAB_0001b1a6;
                  }
                }
                local_6c = psVar10 + -0xc;
              }
            }
            goto LAB_0001afd1;
          }
          local_6c = param_2;
          if (!bVar46) goto LAB_0001ae41;
          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);
          pvVar26 = pvVar52;
          sVar53 = local_78;
          sVar23 = local_7c;
          local_a8 = (size_t *)pvVar6;
          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {
            sVar55 = *psVar38;
            sVar30 = psVar38[2];
            sVar54 = sVar55 + psVar38[1] + 0xc;
            pvVar32 = pvVar26;
            if (sVar30 != 0) {
              if (psVar38[0xb] == 0) {
                memcpy(pvVar26,local_a8,sVar54);
                pvVar32 = (void *)((int)pvVar26 + sVar54);
              }
              else {
                sVar28 = psVar38[8];
                sVar7 = psVar38[7];
                uVar13 = 0;
                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);
                iVar31 = (int)pvVar26 + 4;
                iVar18 = (int)pvVar26 + 8;
                __dest = (void *)((int)pvVar26 + 0xc);
                pvVar32 = (void *)((int)__dest + sVar55);
                sVar29 = sVar28;
                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&
                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&
                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {
                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,
                            iVar18);
                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);
                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);
                  memcpy(__dest,(void *)psVar38[3],sVar55);
                }
                else {
                  (*pcVar8)(sVar55,0,pvVar26,sVar29);
                  uVar14 = 8;
                  iVar21 = *(int *)((int)param_1 + 4);
                  puVar35 = (undefined4 *)(iVar21 + 0x30);
                  if ((*(int *)(iVar21 + 4) == 5) &&
                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {
                    uVar14 = 0x10;
                  }
                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);
                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);
                  memcpy(__dest,(void *)psVar38[3],sVar55);
                  iVar31 = *(int *)((int)param_1 + 4);
                  pvVar26 = pvVar32;
                  if ((*(int *)(iVar31 + 4) == 5) &&
                     (pvVar26 = *(void **)((int)param_1 + 0xa0),
                     *(char *)((int)pvVar26 + 4) == '\x02')) {
                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);
                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))
                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));
                    pvVar32 = (void *)((int)pvVar32 + 0x10);
                  }
                  else {
                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);
                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))
                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);
                    pvVar32 = (void *)((int)pvVar32 + 8);
                  }
                }
              }
              local_7c = psVar38[7];
              local_78 = psVar38[8];
              sVar23 = psVar38[9];
              sVar53 = psVar38[10];
            }
            local_a8 = (size_t *)((int)local_a8 + sVar54);
            pvVar26 = pvVar32;
          }
          sVar23 = (int)pvVar26 - (int)pvVar52;
          uVar17 = (int)sVar23 >> 0x1f;
          memcpy(pvVar6,pvVar52,sVar23);
          free(pvVar52);
          free(local_74);
          local_6c = param_2;
          DAT_00040bb8 = sVar23;
          DAT_00040bbc = uVar17;
          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {
            iVar31 = *(int *)(iVar12 + 0x54);
            if ((iVar31 != 0) &&
               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))
            goto LAB_00018e0e;
            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);
            FUN_0002d3a0(0,param_2,iVar12,uVar13);
          }
        }
        else {
          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);
LAB_0001ae12:
          if (iVar31 != 0) {
            bfd_set_error(0x11);
            FUN_0002d3a0(0,param_1,iVar12,iVar31);
            DAT_00040bc8 = 1;
          }
LAB_0001ae41:
          free(local_74);
        }
        free(DAT_00040bc0);
        DAT_00040bc0 = (void *)0x0;
        DAT_00040bc4 = 0;
        DAT_00040bb8 = 0;
        DAT_00040bbc = 0;
      }
    }
  }
LAB_00018e0e:
  param_2 = local_6c;
  iVar31 = DAT_00040b4c;
  for (puVar35 = DAT_00040b50; DAT_00040b4c = iVar31, puVar35 != (undefined4 *)0x0;
      puVar35 = (undefined4 *)*puVar35) {
    iVar12 = bfd_get_section_by_name(param_1,puVar35[1]);
    if (iVar12 == 0) {
      uVar13 = puVar35[1];
      uVar14 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);
      FUN_0002d3a0(0,param_1,0,uVar14,uVar13);
    }
    else {
      if ((*(byte *)(iVar12 + 0x15) & 1) == 0) {
        pcVar25 = "can\'t dump section - it has no contents";
      }
      else {
        sVar22 = *(size_t *)(iVar12 + 0x2c);
        iVar31 = *(int *)(iVar12 + 0x30);
        if (iVar31 != 0 || sVar22 != 0) {
          __s = fopen64((char *)puVar35[2],"w");
          if (__s == (FILE *)0x0) {
            uVar13 = dcgettext(0,"could not open section dump file",5);
            FUN_0002d3a0(puVar35[2],0,0,uVar13);
          }
          else {
            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);
            if (iVar18 == 0) {
              uVar13 = dcgettext(0,"could not retrieve section contents",5);
              FUN_0002d3a0(0,param_1,iVar12,uVar13);
            }
            else {
              sVar23 = fwrite(local_34,1,sVar22,__s);
              if (iVar31 != 0 || sVar22 != sVar23) {
                piVar19 = __errno_location();
                pcVar25 = strerror(*piVar19);
                uVar13 = puVar35[2];
                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);
                FUN_0002c910(uVar14,uVar13,pcVar25);
                free(local_34);
                return 0;
              }
            }
            fclose(__s);
            free(local_34);
          }
          goto LAB_00018eb1;
        }
        pcVar25 = "can\'t dump section - it is empty";
      }
      uVar13 = dcgettext(0,pcVar25,5);
      FUN_0002d3a0(0,param_1,iVar12,uVar13);
    }
LAB_00018eb1:
    iVar31 = DAT_00040b4c;
  }
  if (iVar31 != 0) {
    iVar12 = bfd_get_section_by_name(local_6c,".gnu_debuglink");
    if (iVar12 == 0) {
      iVar31 = bfd_create_gnu_debuglink_section(local_6c,DAT_00040b4c);
      iVar12 = DAT_00040b4c;
      if (iVar31 == 0) {
        uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0);
        FUN_0002d3a0(0,local_6c,0,uVar13,iVar12);
        return 0;
      }
      if (*(int *)(local_6c[1] + 4) == 2) {
        iVar12 = local_6c[0x18];
        iVar18 = 0;
        if (iVar12 == 0) {
LAB_0001aa69:
          uVar39 = 0x1000;
          iVar12 = 0;
        }
        else {
          do {
            uVar39 = *(uint *)(iVar12 + 0x20);
            iVar21 = iVar18;
            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))
               && (iVar21 = iVar18,
                  *(uint *)(iVar18 + 0x20) < uVar39 ||
                  *(uint *)(iVar18 + 0x20) - uVar39 <
                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {
              iVar21 = iVar12;
            }
            iVar12 = *(int *)(iVar12 + 0xc);
            iVar18 = iVar21;
          } while (iVar12 != 0);
          if (iVar21 == 0) goto LAB_0001aa69;
          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);
          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +
                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));
          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {
            uVar39 = 0xffffffff;
            iVar12 = -1;
          }
          else {
            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);
            uVar39 = uVar39 + 0xfff & 0xfffff000;
          }
        }
        *(uint *)(iVar31 + 0x24) = uVar39;
        *(int *)(iVar31 + 0x28) = iVar12;
        *(uint *)(iVar31 + 0x1c) = uVar39;
        *(int *)(iVar31 + 0x20) = iVar12;
        *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;
      }
    }
    else {
      iVar12 = *local_6c;
      uVar13 = dcgettext(0,"%s: debuglink section already exists",5);
      FUN_0002c910(uVar13,iVar12);
      DAT_00040b4c = 0;
      iVar31 = 0;
    }
  }
  sVar22 = local_6c[0x1a];
  if ((sVar22 == 0) || (DAT_00040b78 == 0 && DAT_00040b70 == 0)) {
    local_b8 = 0;
    local_bc = 0;
    local_b4 = (void *)0x0;
    local_a8 = (size_t *)0x0;
    uVar39 = local_bc;
    uVar17 = local_b8;
  }
  else {
    local_a8 = (size_t *)xmalloc(sVar22 * 4);
    local_34 = (int *)local_a8;
    bfd_map_over_sections(local_6c,FUN_00016800,&local_34);
    qsort(local_a8,sVar22,4,FUN_00016820);
    sVar23 = sVar22 * 8;
    local_b4 = (void *)xmalloc(sVar23);
    memset(local_b4,0,sVar23);
    if ((DAT_00040b78 == 0) || (sVar22 == 1)) {
      local_b8 = 0;
      local_bc = 0;
    }
    else {
      local_b8 = 0;
      local_bc = 0;
      local_6c = (size_t *)0x0;
      local_64 = (int *)local_a8;
      do {
        local_6c = (size_t *)((int)local_6c + 1);
        iVar12 = *local_64;
        uVar39 = local_bc;
        uVar17 = local_b8;
        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {
          uVar27 = *(uint *)(iVar12 + 0x2c);
          uVar37 = *(uint *)(local_64[1] + 0x28);
          uVar44 = *(uint *)(local_64[1] + 0x24);
          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);
          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +
                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));
          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {
            uVar17 = uVar44 - uVar33;
            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);
            iVar12 = bfd_set_section_size
                               (param_2,iVar12,uVar27 + uVar17,
                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));
            if (iVar12 == 0) {
              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);
              FUN_0002d3a0(0,param_2,*local_64,uVar13);
              DAT_00040bc8 = 1;
              break;
            }
            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;
            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;
            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {
              uVar39 = local_bc;
              uVar17 = local_b8;
            }
          }
        }
        local_b8 = uVar17;
        local_bc = uVar39;
        local_64 = local_64 + 1;
      } while ((size_t *)(sVar22 - 1) != local_6c);
    }
    uVar39 = local_bc;
    uVar17 = local_b8;
    if (DAT_00040b70 != 0) {
      iVar12 = ((int *)local_a8)[sVar22 - 1];
      uVar27 = *(uint *)(iVar12 + 0x24);
      uVar37 = uVar27 + *(uint *)(iVar12 + 0x2c);
      uVar44 = *(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +
               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c));
      if (uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)) {
        iVar12 = bfd_set_section_size
                           (param_2,iVar12,DAT_00040b68 - uVar27,
                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)
                           );
        if (iVar12 == 0) {
          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);
          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);
          DAT_00040bc8 = 1;
        }
        else {
          uVar17 = DAT_00040b68 - uVar37;
          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);
          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;
          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;
          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {
            uVar39 = local_bc;
            uVar17 = local_b8;
          }
        }
      }
    }
  }
  local_b8 = uVar17;
  local_bc = uVar39;
  iVar12 = 0;
  if (DAT_00040b48 != 0) {
    iVar12 = FUN_0001c9c0(param_1,DAT_00040bdc,local_8c,0);
  }
  if (DAT_00040bb0 - 2U < 6) {
LAB_0001962a:
    if (DAT_00040bb0 != 7) goto LAB_0001962f;
  }
  else {
    if (DAT_00040b30 == 0 && DAT_00040bac == 0) {
      iVar18 = htab_elements(DAT_00040b2c);
      if ((((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&
            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&
           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&
            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&
          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&
         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&
           (DAT_00040be0 == (undefined4 *)0x0)) &&
          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)
             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))))
      goto LAB_00019e4d;
      goto LAB_0001962a;
    }
LAB_0001962f:
    bfd_set_error(0);
    bfd_map_over_sections(param_1,FUN_000187a0,DAT_00040bdc);
    iVar18 = bfd_get_error();
    if (iVar18 != 0) {
      DAT_00040bc8 = 1;
      return 0;
    }
  }
  piVar19 = (int *)xmalloc((DAT_00040b04 + local_8c) * 4 + 4);
  local_84 = DAT_00040bdc;
  uVar39 = *(uint *)((int)param_1 + 0x28);
  DAT_00040bd8 = piVar19;
  if (local_8c != 0) {
    piVar1 = DAT_00040bdc + local_8c;
    local_8c = 0;
    puVar20 = PTR__bfd_std_section_0003ffc8 + 0xc0;
    do {
      iVar18 = DAT_00040b04;
      piVar4 = (int *)*local_84;
      uVar17 = piVar4[4];
      piVar24 = (int *)piVar4[1];
      puVar5 = (undefined *)piVar4[5];
      if (((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) &&
         (pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0)) {
        local_6c = (size_t *)0x0;
        piVar34 = DAT_00040b08;
        while (iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0) {
          local_6c = (size_t *)((int)local_6c + 1);
          piVar34 = (int *)*piVar34;
          if ((local_6c == (size_t *)iVar18) ||
             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;
        }
        free(pcVar25);
        piVar34[5] = (int)"";
        piVar34 = piVar19 + local_8c;
        local_8c = local_8c + 1;
        iVar18 = FUN_00017920();
        *piVar34 = iVar18;
      }
LAB_000197a8:
      iVar18 = htab_elements(DAT_00040b10);
      piVar34 = piVar24;
      if ((iVar18 != 0) || (DAT_00040be0 != (undefined4 *)0x0)) {
        local_30 = 0;
        local_34 = piVar24;
        iVar18 = htab_find(DAT_00040b10,&local_34);
        if (((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&
           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)) {
          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]
              ) {
            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);
            if (iVar18 == 0) {
              piVar34 = (int *)puVar35[1];
              break;
            }
          }
        }
        piVar4[1] = (int)piVar34;
      }
      pcVar25 = DAT_00040af8;
      cVar2 = *(char *)(*(int *)((int)param_1 + 4) + 0x18);
      if ((char)*piVar34 == cVar2) {
        if (DAT_00040b3c == 0) {
          if ((DAT_00040b38 != 0) &&
             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||
              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {
            piVar34 = (int *)((int)piVar34 + 1);
            piVar4[1] = (int)piVar34;
          }
LAB_0001982b:
          if (pcVar25 != (char *)0x0) {
            sVar22 = strlen(pcVar25);
            sVar23 = strlen((char *)piVar34);
            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);
            local_6c = (size_t *)piVar24;
            goto LAB_00019858;
          }
        }
        else {
          if (*(char *)(param_2[1] + 0x18) == '\0') {
            piVar34 = (int *)((int)piVar34 + 1);
            piVar4[1] = (int)piVar34;
            goto LAB_0001982b;
          }
          if (DAT_00040af8 != (char *)0x0) {
            piVar34 = (int *)((int)piVar34 + 1);
            piVar4[1] = (int)piVar34;
            goto LAB_00019ab1;
          }
          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);
          piVar4[1] = (int)piVar34;
        }
      }
      else {
        if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))
        goto LAB_0001982b;
LAB_00019ab1:
        sVar22 = strlen(pcVar25);
        sVar23 = strlen((char *)piVar34);
        piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);
        local_6c = (size_t *)((int)piVar24 + 1);
        *(char *)piVar24 = *(char *)(param_2[1] + 0x18);
LAB_00019858:
        pcVar25 = DAT_00040af8;
        if (DAT_00040af8 != (char *)0x0) {
          strcpy((char *)local_6c,DAT_00040af8);
          sVar22 = strlen(pcVar25);
          local_6c = (size_t *)((int)local_6c + sVar22);
        }
        strcpy((char *)local_6c,(char *)piVar34);
        piVar4[1] = (int)piVar24;
        piVar34 = piVar24;
      }
      if (DAT_00040bb0 == 7) goto LAB_00019928;
      if ((uVar17 & 0x20) == 0) {
        if (((uVar17 & 0x100) == 0) ||
           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)) {
          if ((((uVar39 >> 5 & 0x42) == 0) &&
              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||
             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {
LAB_00019b80:
            iVar18 = FUN_000179c0();
            if (iVar18 == 0) goto LAB_00019910;
          }
          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&
                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {
            if ((uVar17 & 4) == 0) {
              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||
                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||
                 (*(int *)(iVar18 + 0x2c) == 0)) {
                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;
                if (DAT_00040bac == 1) {
                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);
                  goto joined_r0x0001a753;
                }
              }
              goto LAB_00019b80;
            }
            iVar18 = DAT_00040b48;
            if (1 < DAT_00040bb0 - 2U) {
joined_r0x0001a753:
              if (iVar18 == 0) goto LAB_00019b80;
            }
          }
          else if (DAT_00040bb0 != 3) goto LAB_00019b80;
        }
        else {
          iVar18 = FUN_000179c0();
          if (iVar18 != 0) {
            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,
                               iVar18);
            FUN_0002c910(uVar13,piVar34);
            DAT_00040bc8 = 1;
          }
LAB_00019910:
          iVar18 = FUN_000179c0();
          if (iVar18 == 0) goto LAB_0001994f;
        }
LAB_00019928:
        if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||
           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;
      }
      else {
        iVar18 = FUN_000179c0();
        if (iVar18 != 0) {
          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);
          FUN_0002c910(uVar13,piVar34);
          DAT_00040bc8 = 1;
        }
LAB_0001994f:
        iVar18 = FUN_00017a30();
        if (iVar18 == 0) {
          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))
             ) {
            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;
          }
          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {
            if (((uVar17 & 0x82) != 0) &&
               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||
                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&
                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||
                ((DAT_00040b30 != 0 &&
                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&
                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))
                 )))))) {
              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;
            }
            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {
              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;
            }
          }
          piVar19[local_8c] = (int)piVar4;
          local_8c = local_8c + 1;
        }
      }
      local_84 = local_84 + 1;
    } while (piVar1 != local_84);
  }
  local_6c = (size_t *)DAT_00040b08;
  if ((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) {
    iVar18 = 0;
    do {
      pcVar25 = (char *)local_6c[5];
      if (pcVar25 == (char *)0x0) {
        iVar21 = FUN_00017920();
        piVar19[local_8c] = iVar21;
        local_8c = local_8c + 1;
      }
      else if (*pcVar25 != '\0') {
        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);
                    /* WARNING: Subroutine does not return */
        FUN_0002c8e0(uVar13,pcVar25);
      }
      iVar18 = iVar18 + 1;
      local_6c = (size_t *)*local_6c;
    } while (iVar18 < DAT_00040b04);
  }
  piVar19[local_8c] = 0;
  if ((DAT_00040b48 != 0) && (iVar12 != 0)) {
    iVar18 = ((undefined4 *)param_2[1])[1];
    if ((iVar18 == 2) || (iVar18 == 5)) {
      iVar12 = FUN_0002c240(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34);
      if (iVar12 != 0) {
        iVar12 = bfd_make_section_with_flags(param_2,".stab",0x2108);
        iVar18 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);
        if ((((iVar12 == 0) || (iVar18 == 0)) ||
            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||
           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)) {
          pcVar25 = "can\'t create debugging section";
        }
        else {
          *(undefined4 *)(iVar12 + 0x58) = 2;
          *(undefined4 *)(iVar18 + 0x58) = 0;
          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);
          if ((iVar12 != 0) &&
             (iVar12 = bfd_set_section_contents
                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),
             iVar12 != 0)) goto LAB_00019e4d;
          pcVar25 = "can\'t set debugging section contents";
          iVar12 = iVar18;
        }
        uVar13 = dcgettext(0,pcVar25,5,iVar12);
        FUN_0002d3a0(0,param_2,0,uVar13);
      }
    }
    else {
      uVar13 = *(undefined4 *)param_2[1];
      uVar14 = dcgettext(0,"don\'t know how to write debugging information for %s",5);
      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);
    }
    DAT_00040bc8 = 1;
    return 0;
  }
LAB_00019e4d:
  bfd_set_symtab(param_2,DAT_00040bd8,local_8c);
  bfd_map_over_sections(param_1,FUN_00018500,param_2);
  bfd_map_over_sections(param_1,FUN_00018070,param_2);
  for (puVar35 = DAT_00040b58; psVar43 = param_2, puVar42 = DAT_00040b54,
      puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)*puVar35) {
    iVar12 = bfd_set_section_contents(param_2,puVar35[5],puVar35[4],0,0,puVar35[3],0);
    if (iVar12 == 0) {
LAB_00019d5e:
      FUN_0002d3a0(0,param_2,puVar35[5],0);
      return 0;
    }
  }
  while( true ) {
    if (puVar42 == (undefined4 *)0x0) {
      uVar39 = 0;
      if (DAT_00040bc4 != 0) {
        uVar39 = bfd_get_section_by_name(param_2,".gnu.build.attributes");
        if (((uVar39 == 0) || (DAT_00040bc4 == 0)) ||
           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))) {
          if (DAT_00040be4 == 0) {
            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);
            FUN_0002d3a0(0,param_2,uVar39,uVar13);
          }
        }
        else {
          iVar12 = bfd_set_section_contents
                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);
          if (iVar12 == 0) {
            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);
            FUN_0002d3a0(0,param_2,uVar39,uVar13);
            return 0;
          }
        }
        free(DAT_00040bc0);
        DAT_00040bc0 = (void *)0x0;
        DAT_00040bc4 = 0;
        psVar43 = param_2;
      }
      if ((DAT_00040b4c != 0) &&
         (iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),
         iVar12 = DAT_00040b4c, iVar31 == 0)) {
        uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0);
        FUN_0002d3a0(0,param_2,0,uVar13,iVar12);
        return 0;
      }
      if (DAT_00040b78 != 0 || DAT_00040b70 != 0) {
        uVar39 = 0x2000;
        if (local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc) {
          uVar39 = local_b8;
        }
        piVar19 = (int *)xmalloc(uVar39);
        iVar12 = (uint)DAT_00040b74 * 0x1010101;
        if (uVar39 < 4) {
          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {
            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;
          }
        }
        else {
          *piVar19 = iVar12;
          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;
          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);
          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>
                        2; uVar17 != 0; uVar17 = uVar17 - 1) {
            *psVar43 = iVar12;
            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);
          }
        }
        iVar12 = param_2[0x1a];
        if (iVar12 != 0) {
          local_64 = (int *)0x0;
          do {
            piVar1 = local_64;
            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);
            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);
            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {
              piVar4 = (int *)(local_a8 + (int)local_64);
              local_64 = (int *)local_a8[(int)local_64];
              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);
              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -
                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);
              while( true ) {
                piVar24 = (int *)psVar43;
                uVar17 = uVar39;
                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {
                  uVar17 = 0x2000;
                  piVar24 = (int *)0x0;
                }
                iVar31 = bfd_set_section_contents
                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);
                if (iVar31 == 0) {
                  FUN_0002d3a0(0,param_2,*piVar4,0);
                  return 0;
                }
                bVar46 = uVar39 < uVar17;
                uVar39 = uVar39 - uVar17;
                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));
                bVar46 = CARRY4((uint)local_6c,uVar17);
                local_6c = (size_t *)((int)local_6c + uVar17);
                local_68 = (int)piVar24 + (uint)bVar46 + local_68;
                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;
                local_64 = (int *)local_a8[(int)piVar1];
              }
            }
            local_64 = (int *)((int)piVar1 + 1);
          } while ((int *)iVar12 != local_64);
        }
      }
      iVar12 = (**(code **)(param_2[1] + 0xa8))(param_1,param_2);
      if (iVar12 == 0) {
        uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43);
        FUN_0002d3a0(0,param_2,0,uVar13);
        return 0;
      }
      if ((DAT_00040b64 != 0) &&
         (iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,
         iVar31 == 0)) {
        uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)
        ;
        FUN_0002c910(uVar13,iVar12);
        if (*(int *)(param_2[1] + 4) != 5) {
          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);
          FUN_0002c910(uVar13);
          return 1;
        }
        uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)
        ;
        FUN_0002c910(uVar13);
        *(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64;
      }
      return 1;
    }
    psVar43 = *(size_t **)(puVar42[5] + 0x54);
    iVar12 = bfd_set_section_contents(param_2,psVar43,puVar42[4],0,0,puVar42[3],0);
    local_6c = param_2;
    if (iVar12 == 0) break;
    puVar42 = (undefined4 *)*puVar42;
  }
LAB_00019fa0:
  FUN_0002d3a0(0,local_6c,psVar43,0);
  return iVar12;
LAB_0001b1a6:
  if ((undefined1 *)((int)pvVar32 + sVar54) <= puVar45) goto LAB_0001b1aa;
  *puVar45 = (char)uVar17;
  if (uVar17 == 0) goto LAB_0001b1aa;
  uVar17 = uVar17 >> 8;
  puVar45 = puVar45 + 1;
  goto LAB_0001b1a6;
LAB_0001b1aa:
  bVar46 = true;
  psVar9[0xe] = 0;
  goto LAB_0001afd1;
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x000166c0
ADD EBX,0x276d5
SUB ESP,0xcc
MOV dword ptr [EBP + -0x5c],EAX
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [EBP + -0x68],EDX
MOV EDX,dword ptr [EDX + 0x4]
MOV EAX,dword ptr [EAX + 0x8]
MOV dword ptr [EBP + -0x70],ECX
MOV EDX,dword ptr [EDX + 0x8]
CMP EAX,EDX
SETNZ CL
CMP EAX,0x2
SETNZ AL
TEST CL,AL
JZ 0x00018964
CMP EDX,0x2
JNZ 0x00018b98
MOV EAX,dword ptr [EBP + -0x5c]
SUB ESP,0x8
MOVZX EAX,byte ptr [EAX + 0x28]
AND EAX,0x7
PUSH EAX
PUSH dword ptr [EBP + -0x68]
CALL 0x00013430
ADD ESP,0x10
MOV dword ptr [EBP + -0x60],EAX
TEST EAX,EAX
JZ 0x00018f80
MOV EAX,dword ptr [EBP + -0x5c]
MOV ESI,dword ptr [EAX + 0x60]
TEST ESI,ESI
JZ 0x00018ff0
MOV EAX,dword ptr [EBP + -0x5c]
MOV EAX,dword ptr [EAX + 0x4]
CMP dword ptr [EAX + 0x4],0x5
JZ 0x000189c4
MOV EDX,dword ptr [EBX + 0xb44]
CMP EDX,0x1
JZ 0x000189b6
AND EDX,0x1
JNZ 0x00018f60
MOV EDI,dword ptr [EBX + 0xb40]
TEST EDI,EDI
JNZ 0x00018f20
MOV ESI,dword ptr [EBX + 0xbd0]
TEST ESI,ESI
JNZ 0x00018fa0
MOV ECX,dword ptr [EBX + 0xaec]
XOR EAX,EAX
XOR EDX,EDX
TEST ECX,ECX
JNZ 0x00018a03
MOV EAX,dword ptr [EBX + 0xb90]
TEST EAX,EAX
JNZ 0x00018bd0
MOV EAX,dword ptr [EBP + -0x5c]
MOV EDX,dword ptr [EAX + 0x74]
MOV EAX,dword ptr [EAX + 0x70]
ADD EAX,dword ptr [EBX + 0xb98]
ADC EDX,dword ptr [EBX + 0xb9c]
MOV ESI,dword ptr [EBP + -0x68]
MOVZX ECX,byte ptr [ESI + 0x28]
MOV byte ptr [EBP + -0x60],CL
AND ECX,0x7
CMP CL,0x3
JZ 0x00018a79
MOV EDI,dword ptr [EBP + -0x5c]
MOV ESI,dword ptr [ESI + 0x4]
MOV EDI,dword ptr [EDI + 0x28]
MOV dword ptr [EBP + -0x60],EDI
SHR EDI,0x5
AND EDI,0xfffff
OR EDI,dword ptr [EBX + 0xb60]
MOV ECX,EDI
MOV EDI,dword ptr [EBX + 0xb5c]
NOT EDI
AND EDI,dword ptr [ESI + 0x10]
AND EDI,ECX
CMP dword ptr [EBX + 0xbb0],0x7
JNZ 0x00018a4b
AND EDI,0xfffffffe
MOV ESI,dword ptr [EBP + -0x68]
SUB ESP,0x4
PUSH EDX
PUSH EAX
PUSH ESI
CALL 0x00013860
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00018b70
SUB ESP,0x8
PUSH EDI
PUSH ESI
CALL 0x00013610
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00018b70
MOV ESI,dword ptr [EBP + -0x5c]
SUB ESP,0xc
PUSH ESI
CALL 0x000134f0
MOV dword ptr [ESP],ESI
MOV EDI,EAX
CALL 0x00013630
ADD ESP,0x10
MOV EDX,EAX
MOV EAX,dword ptr [EBP + -0x70]
TEST EAX,EAX
JZ 0x00018ad6
SUB ESP,0xc
MOV dword ptr [EBP + -0x60],EDX
PUSH ESI
CALL 0x00013390
ADD ESP,0x10
MOV EDX,dword ptr [EBP + -0x60]
TEST EAX,EAX
JZ 0x00018acd
SUB ESP,0xc
PUSH dword ptr [EBP + -0x5c]
MOV dword ptr [EBP + -0x60],EDX
CALL 0x00013390
ADD ESP,0x10
MOV ESI,dword ptr [EAX + 0xc]
TEST ESI,ESI
JNZ 0x00019048
MOV EAX,dword ptr [EBP + -0x70]
MOV EDI,dword ptr [EAX + 0xc]
MOV EDX,dword ptr [EAX + 0x10]
MOV ECX,dword ptr [EBP + -0x68]
SUB ESP,0x4
MOV EAX,dword ptr [ECX + 0x4]
PUSH EDX
PUSH EDI
PUSH ECX
CALL dword ptr [EAX + 0x154]
MOV dword ptr [EBP + -0x60],EAX
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00018be8
MOV EAX,dword ptr [EBP + -0x5c]
TEST byte ptr [EAX + 0x2b],0x4
JNZ 0x00018b20
SUB ESP,0xc
PUSH dword ptr [EBP + -0x5c]
CALL 0x000134f0
MOV ESI,EAX
POP EAX
PUSH dword ptr [EBP + -0x68]
CALL 0x000134f0
ADD ESP,0x10
CMP ESI,EAX
JZ 0x00018be8
SUB ESP,0xc
PUSH dword ptr [EBP + -0x5c]
CALL 0x000134f0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00019010
SUB ESP,0xc
PUSH dword ptr [EBP + -0x5c]
CALL 0x0002d2a0
ADD ESP,0xc
PUSH 0x5
MOV ESI,EAX
LEA EAX,[EBX + 0xffff2300]
PUSH EAX
PUSH 0x0
CALL 0x00013200
POP EDI
POP EDX
PUSH ESI
PUSH EAX
CALL 0x0002c910
MOV EAX,dword ptr [EBP + -0x60]
ADD ESP,0x10
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EBP + -0x5c]
PUSH 0x0
CALL 0x0002d3a0
MOV dword ptr [EBP + -0x60],0x0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + -0x60]
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
LEA EAX,[EBX + 0xffff21c8]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
MOV dword ptr [ESP],EAX
CALL 0x0002c910
MOV dword ptr [EBP + -0x60],0x0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + -0x60]
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [EBX + 0xb88]
MOV EDX,dword ptr [EBX + 0xb8c]
JMP 0x000189f7
MOV EAX,dword ptr [EBP + -0x5c]
MOV EDI,dword ptr [EBP + -0x68]
SUB ESP,0x8
MOVZX EAX,byte ptr [EAX + 0x28]
AND EAX,0x7
PUSH EAX
PUSH EDI
CALL 0x00013430
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00018b70
MOV EAX,dword ptr [EDI + 0x4]
CMP dword ptr [EAX + 0x4],0x2
JZ 0x00019100
MOV ESI,dword ptr [EBX + 0xbdc]
TEST ESI,ESI
JZ 0x00018c2d
SUB ESP,0xc
PUSH ESI
CALL 0x00013948
ADD ESP,0x10
MOV EAX,dword ptr [EBX + 0xbd8]
CMP ESI,EAX
JZ 0x00018c43
SUB ESP,0xc
PUSH EAX
CALL 0x00013948
ADD ESP,0x10
MOV dword ptr [EBX + 0xbdc],0x0
MOV EDI,dword ptr [EBP + -0x5c]
SUB ESP,0xc
MOV dword ptr [EBX + 0xbd8],0x0
MOV EAX,dword ptr [EDI + 0x4]
PUSH EDI
CALL dword ptr [EAX + 0x104]
ADD ESP,0x10
TEST EAX,EAX
JS 0x00018b70
SUB ESP,0xc
PUSH EAX
CALL 0x000132e0
POP EDX
MOV EDX,dword ptr [EDI + 0x4]
POP ECX
PUSH EAX
PUSH EDI
MOV dword ptr [EBX + 0xbdc],EAX
MOV dword ptr [EBX + 0xbd8],EAX
CALL dword ptr [EDX + 0x108]
ADD ESP,0x10
MOV dword ptr [EBP + 0xffffff78],EAX
TEST EAX,EAX
JS 0x00018b70
JZ 0x000190d0
SUB ESP,0x4
LEA EAX,[EBX + 0xfffd7af0]
PUSH dword ptr [EBP + -0x68]
PUSH EAX
PUSH dword ptr [EBP + -0x5c]
CALL 0x00013850
MOV EAX,dword ptr [EBX + 0xaec]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00019080
MOV ESI,dword ptr [EBX + 0xb58]
TEST ESI,ESI
JZ 0x00018db0
NOP
MOV EAX,dword ptr [ESI + 0x4]
MOV ECX,0x40
XOR EDX,EDX
MOV EDI,0x128
CALL 0x00016a30
TEST EAX,EAX
JZ 0x00018d01
MOV EDI,dword ptr [EAX + 0x20]
OR EDI,0x100
SUB ESP,0x8
PUSH dword ptr [ESI + 0x4]
PUSH dword ptr [EBP + -0x68]
CALL 0x00013350
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00019580
SUB ESP,0x4
OR EDI,0x100000
PUSH EDI
PUSH dword ptr [ESI + 0x4]
PUSH dword ptr [EBP + -0x68]
CALL 0x000130e0
ADD ESP,0x10
MOV dword ptr [ESI + 0x14],EAX
TEST EAX,EAX
JZ 0x000195c0
MOV EDX,dword ptr [ESI + 0xc]
XOR ECX,ECX
PUSH ECX
PUSH EDX
PUSH EAX
PUSH dword ptr [EBP + -0x68]
CALL 0x00013590
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00019d58
MOV EAX,dword ptr [ESI + 0x4]
XOR EDX,EDX
MOV ECX,0xc
CALL 0x00016a30
TEST EAX,EAX
JZ 0x00018d84
MOV ECX,dword ptr [ESI + 0x14]
MOV EDX,dword ptr [EAX + 0x14]
MOV EAX,dword ptr [EAX + 0x10]
OR byte ptr [ECX + 0x18],0x1
MOV dword ptr [ECX + 0x24],EAX
MOV dword ptr [ECX + 0x28],EDX
MOV dword ptr [ECX + 0x1c],EAX
MOV dword ptr [ECX + 0x20],EDX
MOV EAX,dword ptr [ESI + 0x4]
XOR EDX,EDX
MOV ECX,0x30
CALL 0x00016a30
TEST EAX,EAX
JZ 0x00018da6
MOV EDX,dword ptr [EAX + 0x1c]
MOV ECX,dword ptr [ESI + 0x14]
MOV EAX,dword ptr [EAX + 0x18]
MOV dword ptr [ECX + 0x28],EDX
MOV dword ptr [ECX + 0x24],EAX
MOV ESI,dword ptr [ESI]
TEST ESI,ESI
JNZ 0x00018ce0
MOV ESI,dword ptr [EBX + 0xb54]
TEST ESI,ESI
JZ 0x00018e00
LEA ESI,[ESI]
SUB ESP,0x8
PUSH dword ptr [ESI + 0x4]
PUSH dword ptr [EBP + -0x5c]
CALL 0x00013350
ADD ESP,0x10
MOV dword ptr [ESI + 0x14],EAX
TEST EAX,EAX
JZ 0x00019fcb
MOV EDI,dword ptr [EAX + 0x54]
MOV EAX,dword ptr [ESI + 0xc]
XOR EDX,EDX
PUSH EDX
PUSH EAX
PUSH EDI
PUSH dword ptr [EBP + -0x68]
CALL 0x00013590
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00019fa0
MOV ESI,dword ptr [ESI]
TEST ESI,ESI
JNZ 0x00018dc0
MOV EAX,dword ptr [EBX + 0xbc4]
TEST EAX,EAX
JNZ 0x0001a0a7
LEA EAX,[EBX + 0xffff405b]
MOV EDI,dword ptr [EBX + 0xb50]
MOV dword ptr [EBP + -0x80],EAX
LEA EAX,[EBP + -0x30]
MOV dword ptr [EBP + 0xffffff7c],EAX
TEST EDI,EDI
JZ 0x00019349
MOV EAX,dword ptr [EBP + -0x68]
MOV dword ptr [EBP + 0xffffff70],EAX
MOV EAX,dword ptr [EBP + -0x5c]
MOV dword ptr [EBP + -0x68],EAX
JMP 0x00018ebb
SUB ESP,0x8
PUSH dword ptr [EBP + -0x80]
PUSH dword ptr [EDI + 0x8]
CALL 0x000132c0
ADD ESP,0x10
MOV dword ptr [EBP + -0x60],EAX
TEST EAX,EAX
JZ 0x00019550
SUB ESP,0x4
PUSH dword ptr [EBP + 0xffffff7c]
PUSH ESI
PUSH dword ptr [EBP + -0x68]
CALL 0x00013180
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000192d0
MOV ESI,dword ptr [EBP + -0x70]
PUSH dword ptr [EBP + -0x60]
PUSH ESI
PUSH 0x1
PUSH dword ptr [EBP + -0x30]
CALL 0x000132d0
ADD ESP,0x10
XOR ESI,EAX
MOV EAX,dword ptr [EBP + -0x78]
OR EAX,ESI
JNZ 0x0001a5ff
SUB ESP,0xc
PUSH dword ptr [EBP + -0x60]
CALL 0x00013190
POP ESI
PUSH dword ptr [EBP + -0x30]
CALL 0x00013948
ADD ESP,0x10
MOV EDI,dword ptr [EDI]
TEST EDI,EDI
JZ 0x00019340
SUB ESP,0x8
PUSH dword ptr [EDI + 0x4]
PUSH dword ptr [EBP + -0x68]
CALL 0x00013350
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x00019310
TEST byte ptr [EAX + 0x15],0x1
JZ 0x00019300
MOV EAX,dword ptr [EAX + 0x2c]
MOV ECX,dword ptr [ESI + 0x30]
MOV dword ptr [EBP + -0x78],ECX
OR ECX,EAX
MOV dword ptr [EBP + -0x70],EAX
JNZ 0x00018e40
SUB ESP,0x4
LEA EAX,[EBX + 0xffff26c4]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
PUSH EAX
PUSH ESI
PUSH dword ptr [EBP + -0x68]
PUSH 0x0
CALL 0x0002d3a0
ADD ESP,0x20
JMP 0x00018eb1
SUB ESP,0xc
PUSH dword ptr [EBP + -0x5c]
CALL 0x0002d2a0
ADD ESP,0xc
PUSH 0x5
MOV ESI,EAX
LEA EAX,[EBX + 0xffff2270]
PUSH EAX
PUSH 0x0
CALL 0x00013200
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x0002c910
MOV dword ptr [EBP + -0x60],0x0
ADD ESP,0x10
MOV EAX,dword ptr [EBP + -0x60]
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
PUSH dword ptr [EBP + -0x5c]
CALL 0x0002d2a0
ADD ESP,0xc
MOV ESI,EAX
PUSH 0x5
LEA EAX,[EBX + 0xffff2224]
JMP 0x00018f38
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EBP + -0x68]
PUSH 0x0
CALL 0x0002d3a0
MOV EAX,dword ptr [EBP + -0x60]
ADD ESP,0x10
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDI,dword ptr [EBP + -0x68]
SUB ESP,0xc
MOV ESI,dword ptr [EAX]
MOV EDX,dword ptr [EDI + 0x4]
MOV ECX,dword ptr [EDX]
MOV EDX,dword ptr [EDI]
PUSH dword ptr [EBP + -0x5c]
MOV dword ptr [EBP + -0x78],ECX
MOV dword ptr [EBP + -0x60],EDX
CALL 0x0002d2a0
ADD ESP,0xc
MOV EDI,EAX
LEA EAX,[EBX + 0xffff22a4]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
MOV ECX,dword ptr [EBP + -0x78]
MOV EDX,dword ptr [EBP + -0x60]
MOV dword ptr [ESP],ECX
PUSH EDX
PUSH ESI
PUSH EDI
PUSH EAX
CALL 0x000130b0
ADD ESP,0x20
JMP 0x000189d2
SUB ESP,0xc
PUSH EAX
CALL 0x0002d2a0
ADD ESP,0xc
MOV ESI,EAX
PUSH 0x5
LEA EAX,[EBX + 0xffff21f8]
JMP 0x00018f38
MOV EDI,dword ptr [EBP + -0x5c]
SUB ESP,0xc
PUSH EDI
CALL 0x00013630
MOV dword ptr [ESP],EDI
MOV ESI,EAX
CALL 0x000134f0
POP ECX
POP EDI
PUSH ESI
PUSH EAX
CALL 0x00013560
ADD ESP,0xc
MOV ESI,EAX
PUSH 0x5
LEA EAX,[EBX + 0xffff2338]
JMP 0x00018b4e
SUB ESP,0xc
PUSH dword ptr [EBP + -0x5c]
CALL 0x0002d2a0
ADD ESP,0xc
MOV ESI,EAX
LEA EAX,[EBX + 0xffff22c8]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x0002c910
ADD ESP,0x10
MOV EDX,dword ptr [EBP + -0x60]
JMP 0x00018ad6
MOV ECX,dword ptr [EBP + -0x68]
SUB ESP,0x8
MOV EAX,dword ptr [ECX + 0x4]
PUSH ECX
PUSH dword ptr [EBP + -0x5c]
CALL dword ptr [EAX + 0xbc]
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00018cd1
SUB ESP,0x4
LEA EAX,[EBX + 0xfffef177]
MOV dword ptr [EBX + 0xbc8],0x1
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
PUSH EAX
PUSH 0x0
PUSH dword ptr [EBP + -0x5c]
PUSH 0x0
CALL 0x0002d3a0
ADD ESP,0x20
JMP 0x00018cd1
SUB ESP,0xc
PUSH dword ptr [EBX + 0xbdc]
CALL 0x00013948
ADD ESP,0x10
MOV dword ptr [EBX + 0xbdc],0x0
MOV dword ptr [EBX + 0xbd8],0x0
JMP 0x00018cab
MOV ESI,dword ptr [EAX]
LEA EDX,[EBX + 0xfffef16a]
MOV ECX,0x4
MOV EDI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x00018c17
MOV ECX,dword ptr [EBP + -0x5c]
MOV EAX,dword ptr [EBP + -0x68]
MOV ECX,dword ptr [ECX + 0x4]
MOV EAX,dword ptr [EAX + 0xa0]
CMP dword ptr [ECX + 0x4],0x2
JZ 0x0001a070
MOV EDX,dword ptr [EBX + 0x2b4]
MOV ECX,dword ptr [EBX + 0x2b0]
MOV ESI,EDX
AND ESI,ECX
CMP ESI,-0x1
JZ 0x0001a057
MOV dword ptr [EAX + 0xb4],ECX
MOV dword ptr [EAX + 0xb8],EDX
MOV EDX,dword ptr [EBX + 0x2ac]
MOV ECX,dword ptr [EBX + 0x2a8]
MOV ESI,EDX
AND ESI,ECX
CMP ESI,-0x1
JZ 0x0001917d
MOV dword ptr [EAX + 0xf4],ECX
MOV dword ptr [EAX + 0xf8],EDX
MOV EDX,dword ptr [EBX + 0x2a4]
MOV ECX,dword ptr [EBX + 0x2a0]
MOV ESI,EDX
AND ESI,ECX
CMP ESI,-0x1
JZ 0x0001919e
MOV dword ptr [EAX + 0xf4],ECX
MOV dword ptr [EAX + 0xf8],EDX
MOV EDX,dword ptr [EBX + 0x29c]
MOV ECX,dword ptr [EBX + 0x298]
MOV ESI,EDX
AND ESI,ECX
CMP ESI,-0x1
JZ 0x000191bf
MOV dword ptr [EAX + 0xa4],ECX
MOV dword ptr [EAX + 0xa8],EDX
MOV ESI,dword ptr [EBX + 0x290]
MOV EDX,dword ptr [EBX + 0x294]
MOV ECX,ESI
MOV dword ptr [EBP + -0x60],ESI
AND ECX,EDX
CMP ECX,-0x1
JZ 0x0001a035
MOV dword ptr [EAX + 0xac],ESI
MOV dword ptr [EAX + 0xb0],EDX
MOV ECX,dword ptr [EBX + 0x28c]
MOV ESI,dword ptr [EBX + 0x288]
MOV EDI,ECX
AND EDI,ESI
CMP EDI,-0x1
JZ 0x00019208
MOV dword ptr [EAX + 0xe4],ESI
MOV dword ptr [EAX + 0xe8],ECX
MOV ECX,dword ptr [EBX + 0x284]
MOV ESI,dword ptr [EBX + 0x280]
MOV EDI,ECX
AND EDI,ESI
CMP EDI,-0x1
JZ 0x00019229
MOV dword ptr [EAX + 0xe4],ESI
MOV dword ptr [EAX + 0xe8],ECX
MOVZX ECX,word ptr [EBX + 0x27c]
CMP CX,-0x1
JZ 0x0001923d
MOV word ptr [EAX + 0xd8],CX
MOVZX ECX,word ptr [EBX + 0x27a]
CMP CX,-0x1
JZ 0x00019251
MOV word ptr [EAX + 0xc4],CX
MOVZX ECX,word ptr [EBX + 0x278]
CMP CX,-0x1
JZ 0x00019265
MOV word ptr [EAX + 0xc6],CX
MOV EDI,dword ptr [EBX + 0x2b4]
MOV ESI,dword ptr [EBX + 0x2b0]
CMP dword ptr [EBP + -0x60],ESI
SBB EDX,EDI
JNC 0x00018c17
PUSH EDI
LEA EDI,[EBX + 0xfffef16f]
PUSH ESI
LEA ESI,[EBP + -0x48]
PUSH EDI
PUSH ESI
CALL 0x000137a0
PUSH dword ptr [EBX + 0x294]
PUSH dword ptr [EBX + 0x290]
PUSH EDI
LEA EDI,[EBP + -0x30]
PUSH EDI
CALL 0x000137a0
ADD ESP,0x1c
LEA EAX,[EBX + 0xffff2368]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
ADD ESP,0xc
PUSH EDI
PUSH ESI
PUSH EAX
CALL 0x0002c910
ADD ESP,0x10
JMP 0x00018c17
SUB ESP,0x4
LEA EAX,[EBX + 0xffff2740]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
PUSH EAX
PUSH ESI
PUSH dword ptr [EBP + -0x68]
PUSH 0x0
CALL 0x0002d3a0
ADD ESP,0x20
JMP 0x00018e9a
SUB ESP,0x4
LEA EAX,[EBX + 0xffff269c]
PUSH 0x5
JMP 0x00018eff
SUB ESP,0x4
LEA EAX,[EBX + 0xffff2670]
MOV ESI,dword ptr [EDI + 0x4]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
MOV dword ptr [ESP],ESI
PUSH EAX
PUSH 0x0
PUSH dword ptr [EBP + -0x68]
PUSH 0x0
CALL 0x0002d3a0
ADD ESP,0x20
JMP 0x00018eb1
MOV EAX,dword ptr [EBP + 0xffffff70]
MOV dword ptr [EBP + -0x68],EAX
MOV EAX,dword ptr [EBX + 0xb4c]
MOV dword ptr [EBP + 0xffffff40],EAX
TEST EAX,EAX
JZ 0x000193ae
MOV EDI,dword ptr [EBP + -0x68]
SUB ESP,0x8
LEA EAX,[EBX + 0xfffef1c5]
PUSH EAX
PUSH EDI
CALL 0x00013350
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x0001a3dd
SUB ESP,0x4
LEA EAX,[EBX + 0xffff2764]
MOV ESI,dword ptr [EDI]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x0002c910
ADD ESP,0x10
MOV dword ptr [EBX + 0xb4c],0x0
MOV dword ptr [EBP + 0xffffff40],0x0
MOV EDI,dword ptr [EBP + -0x68]
MOV ESI,dword ptr [EDI + 0x68]
TEST ESI,ESI
JZ 0x000195d8
MOV EAX,dword ptr [EBX + 0xb78]
OR EAX,dword ptr [EBX + 0xb70]
JZ 0x000195d8
LEA EAX,[ESI*0x4 + 0x0]
SUB ESP,0xc
PUSH EAX
MOV dword ptr [EBP + 0xffffff68],EAX
CALL 0x000132e0
ADD ESP,0xc
MOV dword ptr [EBP + 0xffffff5c],EAX
MOV dword ptr [EBP + -0x30],EAX
LEA EAX,[EBP + -0x30]
PUSH EAX
LEA EAX,[EBX + 0xfffd6800]
PUSH EAX
PUSH EDI
CALL 0x00013850
LEA EAX,[EBX + 0xfffd6820]
PUSH EAX
PUSH 0x4
PUSH ESI
PUSH dword ptr [EBP + 0xffffff5c]
CALL 0x000137e0
LEA EDX,[ESI*0x8 + 0x0]
ADD ESP,0x14
PUSH EDX
MOV dword ptr [EBP + 0xffffff7c],EDX
CALL 0x000132e0
ADD ESP,0xc
PUSH dword ptr [EBP + 0xffffff7c]
PUSH 0x0
PUSH EAX
MOV dword ptr [EBP + 0xffffff50],EAX
CALL 0x000135d0
MOV EAX,dword ptr [EBX + 0xb78]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0001a308
SUB ESI,0x1
MOV dword ptr [EBP + -0x78],ESI
JZ 0x0001a308
MOV ECX,dword ptr [EBP + 0xffffff5c]
XOR EDX,EDX
MOV dword ptr [EBP + 0xffffff4c],0x0
MOV dword ptr [EBP + 0xffffff48],0x0
MOV dword ptr [EBP + -0x68],EDX
MOV dword ptr [EBP + 0xffffff70],EDI
MOV dword ptr [EBP + -0x60],ECX
JMP 0x000194a0
ADD dword ptr [EBP + -0x60],0x4
MOV ECX,dword ptr [EBP + -0x68]
CMP dword ptr [EBP + -0x78],ECX
JZ 0x0001a4b8
MOV EDX,dword ptr [EBP + -0x60]
ADD dword ptr [EBP + -0x68],0x1
MOV ECX,dword ptr [EDX]
MOV EAX,dword ptr [ECX + 0x14]
MOV dword ptr [EBP + -0x70],ECX
AND EAX,0x102
CMP EAX,0x102
JNZ 0x00019490
MOV EAX,dword ptr [EDX + 0x4]
MOV ESI,dword ptr [ECX + 0x2c]
MOV EDI,dword ptr [ECX + 0x30]
MOV EDX,dword ptr [EAX + 0x28]
MOV EAX,dword ptr [EAX + 0x24]
MOV dword ptr [EBP + -0x80],ESI
MOV dword ptr [EBP + -0x7c],EDI
ADD ESI,dword ptr [ECX + 0x24]
ADC EDI,dword ptr [ECX + 0x28]
CMP ESI,EAX
MOV ECX,EDI
SBB ECX,EDX
JNC 0x00019490
SUB EAX,ESI
SBB EDX,EDI
MOV ESI,EAX
MOV EAX,dword ptr [EBP + -0x80]
MOV EDI,EDX
MOV EDX,dword ptr [EBP + -0x7c]
ADD EAX,ESI
ADC EDX,EDI
PUSH EDX
PUSH EAX
PUSH dword ptr [EBP + -0x70]
PUSH dword ptr [EBP + 0xffffff70]
CALL 0x00013590
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0001a8d1
MOV EAX,dword ptr [EBP + 0xffffff50]
MOV ECX,dword ptr [EBP + -0x68]
MOV dword ptr [EAX + ECX*0x8 + -0x8],ESI
MOV dword ptr [EAX + ECX*0x8 + -0x4],EDI
MOV EAX,dword ptr [EBP + 0xffffff4c]
MOV ECX,dword ptr [EBP + 0xffffff48]
CMP EAX,ESI
MOV EDX,ECX
SBB EDX,EDI
CMOVC EAX,ESI
MOV dword ptr [EBP + 0xffffff4c],EAX
MOV EAX,EDI
CMOVNC EAX,ECX
MOV dword ptr [EBP + 0xffffff48],EAX
JMP 0x00019490
SUB ESP,0x4
LEA EAX,[EBX + 0xffff26e8]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
PUSH EAX
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EDI + 0x8]
CALL 0x0002d3a0
ADD ESP,0x20
JMP 0x00018eb1
SUB ESP,0x4
MOV ESI,dword ptr [ESI + 0x4]
MOV EDI,dword ptr [EBP + -0x68]
LEA EAX,[EBX + 0xfffef194]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
MOV dword ptr [ESP],ESI
PUSH EAX
PUSH 0x0
PUSH EDI
PUSH 0x0
CALL 0x0002d3a0
ADD ESP,0x20
MOV dword ptr [EBP + -0x60],0x0
JMP 0x00018b88
SUB ESP,0x4
MOV ESI,dword ptr [ESI + 0x4]
MOV EDI,dword ptr [EBP + -0x68]
LEA EAX,[EBX + 0xfffef1ab]
PUSH 0x5
JMP 0x00019591
MOV dword ptr [EBP + 0xffffff4c],0x0
MOV dword ptr [EBP + 0xffffff48],0x0
MOV dword ptr [EBP + 0xffffff50],0x0
MOV dword ptr [EBP + 0xffffff5c],0x0
MOV dword ptr [EBP + 0xffffff44],0x0
MOV ECX,dword ptr [EBX + 0xb48]
TEST ECX,ECX
JNZ 0x0001a16a
MOV EAX,dword ptr [EBX + 0xbb0]
LEA EDX,[EAX + -0x2]
CMP EDX,0x5
JA 0x0001a6d6
CMP EAX,0x7
JZ 0x00019661
SUB ESP,0xc
PUSH 0x0
CALL 0x000132f0
ADD ESP,0xc
LEA EAX,[EBX + 0xfffd87a0]
PUSH dword ptr [EBX + 0xbdc]
PUSH EAX
PUSH dword ptr [EBP + -0x5c]
CALL 0x00013850
CALL 0x000132b0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00019d3d
MOV EDI,dword ptr [EBP + 0xffffff78]
MOV EAX,dword ptr [EBX + 0xb04]
SUB ESP,0xc
ADD EAX,EDI
LEA EAX,[EAX*0x4 + 0x4]
PUSH EAX
CALL 0x000132e0
MOV EDX,dword ptr [EBX + 0xbdc]
ADD ESP,0x10
MOV dword ptr [EBP + 0xffffff60],EAX
MOV dword ptr [EBX + 0xbd8],EAX
MOV EAX,dword ptr [EBP + -0x5c]
MOV EAX,dword ptr [EAX + 0x28]
MOV dword ptr [EBP + -0x60],EAX
SHR EAX,0x5
AND EAX,0x42
MOV dword ptr [EBP + 0xffffff58],EAX
TEST EDI,EDI
JZ 0x000199ea
LEA EAX,[EDX + EDI*0x4]
MOV dword ptr [EBP + -0x80],EDX
MOV dword ptr [EBP + 0xffffff64],EAX
MOV EAX,dword ptr [EBX + 0xffffffc8]
MOV dword ptr [EBP + 0xffffff78],0x0
ADD EAX,0xc0
MOV dword ptr [EBP + 0xffffff3c],EAX
MOV EAX,dword ptr [EBP + -0x68]
MOV dword ptr [EBP + 0xffffff68],EAX
LEA ESI,[ESI]
MOV EAX,dword ptr [EBP + -0x80]
MOV ESI,dword ptr [EBX + 0xb08]
MOV EAX,dword ptr [EAX]
MOV ECX,dword ptr [EAX + 0x10]
MOV dword ptr [EBP + -0x78],EAX
MOV dword ptr [EBP + 0xffffff7c],ECX
MOV ECX,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [EAX + 0x14]
MOV dword ptr [EBP + -0x60],ECX
MOV dword ptr [EBP + 0xffffff70],EAX
TEST ESI,ESI
JZ 0x000197a8
MOV EAX,dword ptr [EBX + 0xb04]
MOV dword ptr [EBP + -0x70],EAX
TEST EAX,EAX
JLE 0x000197a8
MOV EDI,dword ptr [ESI + 0x14]
TEST EDI,EDI
JZ 0x000197a8
XOR EAX,EAX
MOV dword ptr [EBP + -0x68],EAX
JMP 0x0001974d
ADD dword ptr [EBP + -0x68],0x1
MOV ESI,dword ptr [ESI]
MOV EAX,dword ptr [EBP + -0x68]
CMP EAX,dword ptr [EBP + -0x70]
JZ 0x000197a8
MOV EDI,dword ptr [ESI + 0x14]
TEST EDI,EDI
JZ 0x000197a8
SUB ESP,0x8
PUSH dword ptr [EBP + -0x60]
PUSH EDI
CALL 0x00013070
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00019738
SUB ESP,0xc
PUSH EDI
CALL 0x00013948
LEA EAX,[EBX + 0xffff40eb]
MOV ECX,dword ptr [EBP + 0xffffff60]
MOV EDX,dword ptr [EBP + 0xffffff68]
MOV dword ptr [ESI + 0x14],EAX
MOV EAX,dword ptr [EBP + 0xffffff78]
LEA ECX,[ECX + EAX*0x4]
LEA EDI,[EAX + 0x1]
MOV EAX,ESI
MOV dword ptr [EBP + -0x68],ECX
CALL 0x00017920
MOV ECX,dword ptr [EBP + -0x68]
MOV dword ptr [EBP + 0xffffff78],EDI
ADD ESP,0x10
MOV dword ptr [ECX],EAX
LEA ESI,[ESI]
SUB ESP,0xc
PUSH dword ptr [EBX + 0xb10]
CALL 0x00013420
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000197ca
MOV EDX,dword ptr [EBX + 0xbe0]
MOV ESI,dword ptr [EBP + -0x60]
TEST EDX,EDX
JZ 0x00019805
SUB ESP,0x8
LEA EAX,[EBP + -0x30]
MOV EDI,dword ptr [EBP + -0x60]
MOV dword ptr [EBP + -0x2c],0x0
PUSH EAX
PUSH dword ptr [EBX + 0xb10]
MOV dword ptr [EBP + -0x30],EDI
CALL 0x000137d0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00019bd0
MOV ESI,dword ptr [EAX + 0x4]
CMP EDI,ESI
JZ 0x00019bd3
MOV EAX,dword ptr [EBP + -0x78]
MOV dword ptr [EAX + 0x4],ESI
MOV EAX,dword ptr [EBP + -0x5c]
MOV EAX,dword ptr [EAX + 0x4]
MOVZX EDX,byte ptr [EAX + 0x18]
MOV EAX,dword ptr [EBX + 0xb3c]
CMP byte ptr [ESI],DL
JZ 0x00019a70
TEST EAX,EAX
JNZ 0x00019ba0
MOV EAX,dword ptr [EBX + 0xaf8]
MOV EDI,ESI
TEST EAX,EAX
JZ 0x00019897
SUB ESP,0xc
PUSH EAX
CALL 0x000134e0
MOV dword ptr [ESP],ESI
MOV EDI,EAX
CALL 0x000134e0
LEA EAX,[EDI + EAX*0x1 + 0x2]
MOV dword ptr [ESP],EAX
CALL 0x000132e0
ADD ESP,0x10
MOV dword ptr [EBP + -0x68],EAX
MOV EDI,EAX
MOV EDX,dword ptr [EBX + 0xaf8]
TEST EDX,EDX
JZ 0x00019882
SUB ESP,0x8
MOV dword ptr [EBP + -0x60],EDX
PUSH EDX
PUSH dword ptr [EBP + -0x68]
CALL 0x00013340
MOV EDX,dword ptr [EBP + -0x60]
MOV dword ptr [ESP],EDX
CALL 0x000134e0
ADD dword ptr [EBP + -0x68],EAX
ADD ESP,0x10
SUB ESP,0x8
PUSH ESI
PUSH dword ptr [EBP + -0x68]
CALL 0x00013340
MOV EAX,dword ptr [EBP + -0x78]
ADD ESP,0x10
MOV dword ptr [EAX + 0x4],EDI
CMP dword ptr [EBX + 0xbb0],0x7
JZ 0x00019928
MOV EAX,dword ptr [EBP + 0xffffff7c]
TEST AL,0x20
JNZ 0x00019c28
TEST AH,0x1
JZ 0x00019af0
MOV EAX,dword ptr [EBP + -0x78]
MOV EAX,dword ptr [EAX + 0x14]
MOV EAX,dword ptr [EAX + 0xb4]
MOV EAX,dword ptr [EAX]
TEST byte ptr [EAX + 0x10],0x20
JZ 0x00019af0
MOV EDX,dword ptr [EBX + 0xb2c]
MOV EAX,EDI
CALL 0x000179c0
TEST EAX,EAX
JZ 0x00019910
PUSH EAX
LEA EAX,[EBX + 0xffff296c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
POP EDX
POP ECX
PUSH EDI
PUSH EAX
CALL 0x0002c910
ADD ESP,0x10
MOV dword ptr [EBX + 0xbc8],0x1
LEA ESI,[ESI]
NOP
MOV EDX,dword ptr [EBX + 0xb28]
MOV EAX,EDI
CALL 0x000179c0
TEST EAX,EAX
JZ 0x0001994f
LEA ESI,[ESI]
MOV EAX,dword ptr [EBX + 0xafc]
TEST EAX,EAX
JZ 0x0001993e
TEST dword ptr [EBP + 0xffffff7c],0x4000
JNZ 0x0001994f
MOV EDX,dword ptr [EBX + 0xb24]
MOV EAX,EDI
CALL 0x000179c0
TEST EAX,EAX
JZ 0x000199ce
MOV EAX,dword ptr [EBP + -0x78]
MOV EAX,dword ptr [EAX + 0x14]
CALL 0x00017a30
TEST EAX,EAX
JNZ 0x000199ce
TEST byte ptr [EBP + 0xffffff7c],0x2
JZ 0x00019986
MOV EAX,dword ptr [EBX + 0xb00]
TEST EAX,EAX
JZ 0x0001a150
MOV ECX,dword ptr [EBP + -0x78]
MOV EAX,dword ptr [ECX + 0x10]
MOV dword ptr [EBP + -0x68],EAX
AND EAX,0xfffffffd
OR AL,0x80
MOV dword ptr [ECX + 0x10],EAX
MOV EAX,dword ptr [EBX + 0xffffffc8]
ADD EAX,0xc0
CMP dword ptr [EBP + 0xffffff70],EAX
JZ 0x000199b3
TEST byte ptr [EBP + 0xffffff7c],0x82
JNZ 0x0001a00a
TEST byte ptr [EBP + 0xffffff7c],0x1
JNZ 0x00019fde
MOV EAX,dword ptr [EBP + 0xffffff78]
MOV ECX,dword ptr [EBP + 0xffffff60]
MOV EDX,dword ptr [EBP + -0x78]
MOV dword ptr [ECX + EAX*0x4],EDX
ADD EAX,0x1
MOV dword ptr [EBP + 0xffffff78],EAX
ADD dword ptr [EBP + -0x80],0x4
MOV EAX,dword ptr [EBP + -0x80]
CMP dword ptr [EBP + 0xffffff64],EAX
JNZ 0x000196e8
MOV EAX,dword ptr [EBP + 0xffffff68]
MOV dword ptr [EBP + -0x68],EAX
MOV ECX,dword ptr [EBX + 0xb08]
TEST ECX,ECX
JZ 0x00019ccb
MOV ESI,dword ptr [EBX + 0xb04]
TEST ESI,ESI
JLE 0x00019ccb
MOV EDX,dword ptr [EBP + -0x68]
XOR ESI,ESI
MOV EAX,dword ptr [EBP + 0xffffff78]
MOV dword ptr [EBP + -0x68],ECX
MOV dword ptr [EBP + -0x70],EDX
JMP 0x00019a40
CMP byte ptr [EDI],0x0
JNZ 0x0001b6ea
MOV ECX,dword ptr [EBP + -0x68]
ADD ESI,0x1
MOV ECX,dword ptr [ECX]
MOV dword ptr [EBP + -0x68],ECX
CMP ESI,dword ptr [EBX + 0xb04]
JGE 0x00019cbf
MOV ECX,dword ptr [EBP + -0x68]
MOV EDI,dword ptr [ECX + 0x14]
TEST EDI,EDI
JNZ 0x00019a20
MOV EDX,dword ptr [EBP + 0xffffff60]
LEA ECX,[EAX + 0x1]
MOV dword ptr [EBP + -0x60],ECX
LEA EDI,[EDX + EAX*0x4]
MOV EDX,dword ptr [EBP + -0x70]
MOV EAX,dword ptr [EBP + -0x68]
CALL 0x00017920
MOV dword ptr [EDI],EAX
MOV EAX,dword ptr [EBP + -0x60]
JMP 0x00019a29
TEST EAX,EAX
JZ 0x00019c70
MOV EAX,dword ptr [EBP + 0xffffff68]
MOV EAX,dword ptr [EAX + 0x4]
MOVZX EDX,byte ptr [EAX + 0x18]
MOV EAX,dword ptr [EBX + 0xaf8]
TEST DL,DL
JNZ 0x00019aa0
MOV ECX,dword ptr [EBP + -0x78]
ADD ESI,0x1
MOV dword ptr [ECX + 0x4],ESI
JMP 0x0001982b
TEST EAX,EAX
JZ 0x00019cb0
MOV ECX,dword ptr [EBP + -0x78]
ADD ESI,0x1
MOV dword ptr [ECX + 0x4],ESI
SUB ESP,0xc
PUSH EAX
CALL 0x000134e0
MOV dword ptr [ESP],ESI
MOV EDI,EAX
CALL 0x000134e0
LEA EAX,[EDI + EAX*0x1 + 0x2]
MOV dword ptr [ESP],EAX
CALL 0x000132e0
ADD ESP,0x10
MOV EDI,EAX
LEA EAX,[EAX + 0x1]
MOV dword ptr [EBP + -0x68],EAX
MOV EAX,dword ptr [EBP + 0xffffff68]
MOV EAX,dword ptr [EAX + 0x4]
MOVZX EAX,byte ptr [EAX + 0x18]
MOV byte ptr [EDI],AL
JMP 0x00019858
MOV EAX,dword ptr [EBP + 0xffffff58]
TEST EAX,EAX
JNZ 0x00019b0f
TEST byte ptr [EBP + 0xffffff7c],0x82
JNZ 0x00019b80
MOV EAX,dword ptr [EBP + -0x78]
MOV EAX,dword ptr [EAX + 0x14]
TEST byte ptr [EAX + 0x15],0x10
JNZ 0x00019b80
MOV ESI,dword ptr [EBP + -0x78]
SUB ESP,0xc
PUSH ESI
CALL 0x000133f0
ADD ESP,0x10
CMP EAX,0x49
JZ 0x00019b80
TEST byte ptr [EBP + 0xffffff7c],0x82
JNZ 0x00019fb9
MOV EAX,dword ptr [EBX + 0xffffffc8]
ADD EAX,0xc0
CMP dword ptr [EBP + 0xffffff70],EAX
JZ 0x00019fb9
MOV EAX,dword ptr [ESI + 0x14]
TEST byte ptr [EAX + 0x15],0x10
JNZ 0x00019fb9
TEST byte ptr [EBP + 0xffffff7c],0x4
JZ 0x0001a70c
MOV EAX,dword ptr [EBX + 0xbb0]
SUB EAX,0x2
CMP EAX,0x1
JBE 0x00019928
CMP dword ptr [EBX + 0xb48],0x0
JNZ 0x00019928
MOV EDX,dword ptr [EBX + 0xb2c]
MOV EAX,EDI
CALL 0x000179c0
TEST EAX,EAX
JNZ 0x00019928
JMP 0x00019910
MOV ECX,dword ptr [EBP + 0xffffff68]
MOV EAX,dword ptr [EBX + 0xaf8]
MOV ECX,dword ptr [ECX + 0x4]
CMP byte ptr [ECX + 0x18],0x0
JZ 0x0001982b
TEST DL,DL
JNZ 0x0001982b
JMP 0x00019ab1
MOV ESI,dword ptr [EBP + -0x60]
TEST dword ptr [EBP + 0xffffff7c],0x100
JZ 0x000197ff
MOV ESI,dword ptr [EBX + 0xbe0]
TEST ESI,ESI
JZ 0x0001a18e
MOV EDI,dword ptr [EBP + -0x60]
JMP 0x00019c0b
MOV ESI,dword ptr [ESI + 0xc]
TEST ESI,ESI
JZ 0x0001a18e
SUB ESP,0x8
PUSH EDI
PUSH dword ptr [ESI]
CALL 0x00013070
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00019c00
MOV ESI,dword ptr [ESI + 0x4]
JMP 0x000197ff
MOV EDX,dword ptr [EBX + 0xb2c]
MOV EAX,EDI
CALL 0x000179c0
TEST EAX,EAX
JZ 0x0001994f
SUB ESP,0x4
LEA EAX,[EBX + 0xffff296c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
POP ESI
POP EDX
PUSH EDI
PUSH EAX
CALL 0x0002c910
ADD ESP,0x10
MOV dword ptr [EBX + 0xbc8],0x1
JMP 0x0001994f
MOV EAX,dword ptr [EBX + 0xb38]
TEST EAX,EAX
JZ 0x00019825
TEST byte ptr [EBP + 0xffffff7c],0x82
JNZ 0x00019c99
MOV ECX,dword ptr [EBP + 0xffffff3c]
CMP dword ptr [EBP + 0xffffff70],ECX
JNZ 0x0001a2f3
MOV EDX,dword ptr [EBP + -0x78]
ADD ESI,0x1
MOV EAX,dword ptr [EBX + 0xaf8]
MOV dword ptr [EDX + 0x4],ESI
JMP 0x0001982b
MOV EAX,dword ptr [EBP + -0x78]
MOV byte ptr [ESI],DL
MOV EDI,ESI
MOV dword ptr [EAX + 0x4],ESI
JMP 0x00019897
MOV dword ptr [EBP + 0xffffff78],EAX
MOV EAX,dword ptr [EBP + -0x70]
MOV dword ptr [EBP + -0x68],EAX
MOV EAX,dword ptr [EBP + 0xffffff60]
MOV ECX,dword ptr [EBP + 0xffffff78]
MOV dword ptr [EAX + ECX*0x4],0x0
MOV EAX,dword ptr [EBX + 0xb48]
TEST EAX,EAX
JZ 0x00019e4d
MOV EAX,dword ptr [EBP + 0xffffff44]
TEST EAX,EAX
JZ 0x00019e4d
MOV EAX,dword ptr [EBP + -0x68]
MOV EDX,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [EDX + 0x4]
CMP EAX,0x2
JZ 0x0001a4e6
CMP EAX,0x5
JZ 0x0001a4e6
SUB ESP,0x4
LEA EAX,[EBX + 0xffff27fc]
MOV ESI,dword ptr [EDX]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
MOV dword ptr [ESP],ESI
PUSH EAX
PUSH 0x0
PUSH dword ptr [EBP + -0x68]
PUSH 0x0
CALL 0x0002d3a0
ADD ESP,0x20
MOV dword ptr [EBX + 0xbc8],0x1
MOV dword ptr [EBP + -0x60],0x0
JMP 0x00018b88
MOV dword ptr [EBP + -0x60],EAX
MOV EAX,dword ptr [EBP + -0x68]
PUSH 0x0
PUSH dword ptr [ESI + 0x14]
PUSH EAX
PUSH 0x0
CALL 0x0002d3a0
ADD ESP,0x10
JMP 0x00018b88
SUB ESP,0xc
PUSH dword ptr [EBX + 0xb24]
CALL 0x00013420
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0001a701
SUB ESP,0xc
PUSH dword ptr [EBX + 0xb20]
CALL 0x00013420
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0001a701
SUB ESP,0xc
PUSH dword ptr [EBX + 0xb1c]
CALL 0x00013420
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0001a701
SUB ESP,0xc
PUSH dword ptr [EBX + 0xb18]
CALL 0x00013420
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0001a701
SUB ESP,0xc
PUSH dword ptr [EBX + 0xb14]
CALL 0x00013420
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0001a701
SUB ESP,0xc
PUSH dword ptr [EBX + 0xb10]
CALL 0x00013420
ADD ESP,0x10
CMP dword ptr [EBX + 0xaf8],0x0
JNZ 0x0001a701
CMP dword ptr [EBX + 0xbe0],0x0
JNZ 0x0001a701
MOV EDX,dword ptr [EBX + 0xba4]
OR EDX,dword ptr [EBX + 0xba0]
OR EDX,dword ptr [EBX + 0xb48]
OR EDX,dword ptr [EBX + 0xb3c]
OR EDX,dword ptr [EBX + 0xb38]
OR EDX,dword ptr [EBX + 0xb00]
OR EDX,dword ptr [EBX + 0xb04]
OR EDX,EAX
JNZ 0x0001a701
MOV EDI,dword ptr [EBP + -0x68]
SUB ESP,0x4
PUSH dword ptr [EBP + 0xffffff78]
PUSH dword ptr [EBX + 0xbd8]
PUSH EDI
CALL 0x000133e0
MOV ESI,dword ptr [EBP + -0x5c]
ADD ESP,0xc
LEA EAX,[EBX + 0xfffd8500]
PUSH EDI
PUSH EAX
PUSH ESI
CALL 0x00013850
ADD ESP,0xc
LEA EAX,[EBX + 0xfffd8070]
PUSH EDI
PUSH EAX
PUSH ESI
CALL 0x00013850
MOV ESI,dword ptr [EBX + 0xb58]
ADD ESP,0x10
TEST ESI,ESI
JZ 0x00019ece
MOV EAX,dword ptr [EBP + -0x68]
MOV EDI,EAX
LEA ESI,[ESI]
MOV EAX,dword ptr [ESI + 0xc]
SUB ESP,0x4
XOR EDX,EDX
PUSH EDX
PUSH EAX
PUSH 0x0
PUSH 0x0
PUSH dword ptr [ESI + 0x10]
PUSH dword ptr [ESI + 0x14]
PUSH EDI
CALL 0x00013290
ADD ESP,0x20
TEST EAX,EAX
JZ 0x0001a196
MOV ESI,dword ptr [ESI]
TEST ESI,ESI
JNZ 0x00019ea0
MOV dword ptr [EBP + -0x68],EDI
MOV ESI,dword ptr [EBX + 0xb54]
TEST ESI,ESI
JZ 0x00019f11
LEA ESI,[ESI]
NOP
MOV EAX,dword ptr [ESI + 0x14]
SUB ESP,0x4
XOR EDX,EDX
MOV EDI,dword ptr [EAX + 0x54]
MOV EAX,dword ptr [ESI + 0xc]
PUSH EDX
PUSH EAX
PUSH 0x0
PUSH 0x0
PUSH dword ptr [ESI + 0x10]
PUSH EDI
PUSH dword ptr [EBP + -0x68]
CALL 0x00013290
ADD ESP,0x20
TEST EAX,EAX
JZ 0x00019fa0
MOV ESI,dword ptr [ESI]
TEST ESI,ESI
JNZ 0x00019ee0
MOV EDX,dword ptr [EBX + 0xbc4]
TEST EDX,EDX
JNZ 0x0001a669
MOV EAX,dword ptr [EBX + 0xb4c]
TEST EAX,EAX
JZ 0x00019f49
SUB ESP,0x4
PUSH EAX
PUSH dword ptr [EBP + 0xffffff40]
PUSH dword ptr [EBP + -0x68]
CALL 0x000135a0
ADD ESP,0x10
MOV dword ptr [EBP + -0x60],EAX
TEST EAX,EAX
JZ 0x0001a7e6
MOV EAX,dword ptr [EBX + 0xb78]
OR EAX,dword ptr [EBX + 0xb70]
JNZ 0x0001a1a0
MOV ECX,dword ptr [EBP + -0x68]
SUB ESP,0x8
MOV EAX,dword ptr [ECX + 0x4]
PUSH ECX
PUSH dword ptr [EBP + -0x5c]
CALL dword ptr [EAX + 0xa8]
MOV dword ptr [EBP + -0x60],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0001a8ab
MOV EAX,dword ptr [EBX + 0xb64]
TEST EAX,EAX
JNZ 0x0001a815
MOV dword ptr [EBP + -0x60],0x1
JMP 0x00018b88
MOV dword ptr [EBP + -0x60],EAX
MOV EAX,dword ptr [EBP + -0x68]
PUSH 0x0
PUSH EDI
PUSH EAX
PUSH 0x0
CALL 0x0002d3a0
ADD ESP,0x10
JMP 0x00018b88
CMP dword ptr [EBX + 0xbb0],0x3
JNZ 0x00019b80
JMP 0x00019928
SUB ESP,0x4
MOV ESI,dword ptr [ESI + 0x4]
LEA EAX,[EBX + 0xffff23a4]
PUSH 0x5
JMP 0x00018f38
MOV EDX,dword ptr [EBX + 0xb1c]
MOV EAX,EDI
CALL 0x000179c0
TEST EAX,EAX
JZ 0x000199b3
MOV ECX,dword ptr [EBP + -0x78]
MOV EAX,dword ptr [ECX + 0x10]
MOV dword ptr [EBP + -0x68],EAX
AND EAX,0xfffffffe
OR EAX,0x2
MOV dword ptr [ECX + 0x10],EAX
JMP 0x000199b3
MOV EDX,dword ptr [EBX + 0xb20]
MOV EAX,EDI
CALL 0x000179c0
TEST EAX,EAX
JZ 0x0001a44a
MOV ECX,dword ptr [EBP + -0x78]
MOV EAX,dword ptr [ECX + 0x10]
MOV dword ptr [EBP + -0x68],EAX
AND AL,0x7d
OR EAX,0x1
MOV dword ptr [ECX + 0x10],EAX
JMP 0x000199a6
MOV dword ptr [EBX + 0x290],0x1000
XOR EDX,EDX
MOV dword ptr [EBX + 0x294],0x0
MOV dword ptr [EBP + -0x60],0x1000
JMP 0x000191e7
MOV dword ptr [EBX + 0x2b0],0x200
MOV dword ptr [EBX + 0x2b4],0x0
JMP 0x0001915c
MOV ESI,dword ptr [ECX]
MOV EDI,EDX
MOV ECX,0x4
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JNZ 0x00019137
MOV EDX,dword ptr [EBP + -0x5c]
LEA EDI,[EAX + 0x7c]
MOV ECX,dword ptr [EDX + 0xa0]
LEA ESI,[ECX + 0x7c]
MOV dword ptr [EBP + -0x60],ECX
MOV ECX,0x52
MOVSD.REP ES:EDI,ESI
JMP 0x00019137
MOV ESI,dword ptr [EBP + -0x5c]
SUB ESP,0x8
LEA EAX,[EBX + 0xfffef0bf]
PUSH EAX
PUSH ESI
CALL 0x00013350
ADD ESP,0x10
MOV dword ptr [EBP + -0x60],EAX
TEST EAX,EAX
JZ 0x00018e0e
MOV EAX,dword ptr [EBX + 0xbc4]
TEST EAX,EAX
JZ 0x00018e0e
MOV EAX,dword ptr [ESI + 0x4]
CMP dword ptr [EAX + 0x4],0x5
JNZ 0x00018e0e
MOV ESI,dword ptr [EBP + -0x60]
LEA EDX,[ESI + 0xa4]
MOV EAX,ESI
CALL 0x000176d0
TEST EAX,EAX
JZ 0x00018e0e
MOV EDX,dword ptr [ESI + 0x30]
MOV EAX,dword ptr [ESI + 0x2c]
MOV ECX,EDX
MOV dword ptr [EBP + 0xffffff68],EAX
OR ECX,EAX
MOV dword ptr [EBP + 0xffffff6c],EDX
JNZ 0x0001aa04
PUSH EAX
LEA EAX,[EBX + 0xffff23cc]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
PUSH EAX
PUSH ESI
PUSH dword ptr [EBP + -0x5c]
PUSH 0x0
CALL 0x0002d3a0
ADD ESP,0x20
MOV dword ptr [EBX + 0xbc4],0x0
JMP 0x00018e0e
MOV EDX,dword ptr [EBX + 0xb14]
MOV EAX,EDI
CALL 0x000179c0
TEST EAX,EAX
JNZ 0x00019975
JMP 0x00019986
PUSH 0x0
PUSH dword ptr [EBP + 0xffffff78]
PUSH dword ptr [EBX + 0xbdc]
PUSH dword ptr [EBP + -0x5c]
CALL 0x0001c9c0
ADD ESP,0x10
MOV dword ptr [EBP + 0xffffff44],EAX
JMP 0x00019618
MOV ESI,dword ptr [EBP + -0x60]
JMP 0x000197ff
MOV dword ptr [EBP + -0x60],EAX
MOV EAX,EDI
JMP 0x00019d5e
MOV EDX,dword ptr [EBP + 0xffffff4c]
MOV ESI,0x2000
MOV EAX,0x0
CMP ESI,EDX
SBB EAX,dword ptr [EBP + 0xffffff48]
CMOVNC ESI,EDX
SUB ESP,0xc
PUSH ESI
CALL 0x000132e0
MOV ECX,EAX
MOV dword ptr [EBP + -0x80],EAX
MOVZX EAX,byte ptr [EBX + 0xb74]
IMUL EAX,EAX,0x1010101
CMP ESI,0x4
JNC 0x0001a64c
TEST ESI,ESI
JZ 0x0001a1f1
MOV byte ptr [ECX],AL
TEST ESI,0x2
JNZ 0x0001aaa9
MOV EAX,dword ptr [EBP + -0x68]
ADD ESP,0x10
MOV ECX,dword ptr [EAX + 0x68]
MOV dword ptr [EBP + 0xffffff78],ECX
TEST ECX,ECX
JZ 0x00019f5b
XOR EDX,EDX
MOV dword ptr [EBP + -0x78],EAX
MOV dword ptr [EBP + -0x60],EDX
JMP 0x0001a22b
ADD dword ptr [EBP + -0x60],0x1
MOV EAX,dword ptr [EBP + -0x60]
CMP dword ptr [EBP + 0xffffff78],EAX
JZ 0x0001a76c
MOV EAX,dword ptr [EBP + 0xffffff50]
MOV ECX,dword ptr [EBP + -0x60]
MOV EDI,dword ptr [EAX + ECX*0x8 + 0x4]
MOV ESI,dword ptr [EAX + ECX*0x8]
MOV EDX,EDI
OR EDX,ESI
JZ 0x0001a218
MOV ECX,dword ptr [EBP + 0xffffff5c]
MOV EAX,dword ptr [EBP + -0x60]
LEA EDX,[ECX + EAX*0x4]
MOV EAX,dword ptr [ECX + EAX*0x4]
MOV dword ptr [EBP + 0xffffff70],EDX
MOV EDX,dword ptr [EAX + 0x2c]
MOV ECX,dword ptr [EAX + 0x30]
SUB EDX,ESI
SBB ECX,EDI
MOV dword ptr [EBP + -0x68],EDX
MOV dword ptr [EBP + -0x64],ECX
MOV ECX,dword ptr [EBP + -0x60]
MOV dword ptr [EBP + -0x60],EAX
MOV dword ptr [EBP + 0xffffff7c],ECX
JMP 0x0001a28a
MOV EAX,dword ptr [EBP + 0xffffff5c]
MOV ECX,dword ptr [EBP + 0xffffff7c]
MOV EAX,dword ptr [EAX + ECX*0x4]
MOV dword ptr [EBP + -0x60],EAX
MOV EAX,0x2000
MOV EDX,ESI
MOV ECX,EDI
CMP EAX,ESI
MOV EAX,0x0
SBB EAX,EDI
JNC 0x0001a2a5
MOV EDX,0x2000
XOR ECX,ECX
SUB ESP,0x4
MOV dword ptr [EBP + -0x70],EDX
PUSH ECX
PUSH EDX
PUSH dword ptr [EBP + -0x64]
PUSH dword ptr [EBP + -0x68]
PUSH dword ptr [EBP + -0x80]
PUSH dword ptr [EBP + -0x60]
PUSH dword ptr [EBP + -0x78]
MOV dword ptr [EBP + -0x6c],ECX
CALL 0x00013290
ADD ESP,0x20
MOV EDX,dword ptr [EBP + -0x70]
MOV ECX,dword ptr [EBP + -0x6c]
TEST EAX,EAX
JZ 0x0001a4c6
SUB ESI,EDX
SBB EDI,ECX
ADD dword ptr [EBP + -0x68],EDX
MOV EDX,EDI
ADC dword ptr [EBP + -0x64],ECX
OR EDX,ESI
JNZ 0x0001a278
MOV EAX,dword ptr [EBP + 0xffffff7c]
MOV dword ptr [EBP + -0x60],EAX
JMP 0x0001a218
MOV EAX,dword ptr [EBP + -0x78]
MOV EAX,dword ptr [EAX + 0x14]
TEST byte ptr [EAX + 0x15],0x10
JNZ 0x00019c99
JMP 0x00019825
MOV dword ptr [EBP + 0xffffff4c],0x0
MOV dword ptr [EBP + 0xffffff48],0x0
MOV EDI,dword ptr [EBX + 0xb70]
TEST EDI,EDI
JZ 0x00019600
MOV EDX,dword ptr [EBP + 0xffffff68]
MOV EAX,dword ptr [EBP + 0xffffff5c]
LEA EAX,[EAX + EDX*0x1 + -0x4]
MOV ECX,dword ptr [EAX]
MOV dword ptr [EBP + -0x60],EAX
MOV EAX,dword ptr [ECX + 0x24]
MOV EDX,dword ptr [ECX + 0x28]
MOV dword ptr [EBP + -0x70],ECX
MOV ESI,EAX
MOV dword ptr [EBP + -0x78],EAX
MOV EAX,dword ptr [EBX + 0xb68]
MOV EDI,EDX
ADD ESI,dword ptr [ECX + 0x2c]
ADC EDI,dword ptr [ECX + 0x30]
MOV dword ptr [EBP + -0x74],EDX
MOV EDX,dword ptr [EBX + 0xb6c]
CMP ESI,EAX
MOV ECX,EDI
SBB ECX,EDX
JNC 0x00019600
SUB EAX,dword ptr [EBP + -0x78]
SBB EDX,dword ptr [EBP + -0x74]
PUSH EDX
PUSH EAX
PUSH dword ptr [EBP + -0x70]
PUSH dword ptr [EBP + -0x68]
CALL 0x00013590
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0001a933
MOV EAX,dword ptr [EBX + 0xb68]
MOV EDX,dword ptr [EBX + 0xb6c]
MOV ECX,dword ptr [EBP + 0xffffff50]
SUB EAX,ESI
MOV ESI,dword ptr [EBP + 0xffffff7c]
SBB EDX,EDI
MOV dword ptr [ECX + ESI*0x1 + -0x8],EAX
MOV dword ptr [ECX + ESI*0x1 + -0x4],EDX
MOV ECX,dword ptr [EBP + 0xffffff4c]
MOV ESI,dword ptr [EBP + 0xffffff48]
CMP ECX,EAX
MOV EDI,ESI
SBB EDI,EDX
CMOVC ECX,EAX
MOV EAX,EDX
CMOVNC EAX,ESI
MOV dword ptr [EBP + 0xffffff4c],ECX
MOV dword ptr [EBP + 0xffffff48],EAX
JMP 0x00019600
SUB ESP,0x8
PUSH dword ptr [EBX + 0xb4c]
PUSH dword ptr [EBP + -0x68]
CALL 0x00013140
ADD ESP,0x10
MOV dword ptr [EBP + 0xffffff40],EAX
TEST EAX,EAX
JZ 0x0001a966
MOV EAX,dword ptr [EBP + -0x68]
MOV EAX,dword ptr [EAX + 0x4]
CMP dword ptr [EAX + 0x4],0x2
JNZ 0x000193ae
MOV EDX,dword ptr [EBP + -0x68]
MOV EAX,dword ptr [EDX + 0x60]
TEST EAX,EAX
JNZ 0x0001a436
JMP 0x0001aa69
MOV EDI,dword ptr [ESI + 0x20]
CMP dword ptr [ESI + 0x1c],ECX
SBB EDI,EDX
CMOVC ESI,EAX
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x0001a791
MOV EDX,dword ptr [EAX + 0x20]
MOV ECX,dword ptr [EAX + 0x1c]
MOV EDI,EDX
OR EDI,ECX
JZ 0x0001a42b
TEST ESI,ESI
JNZ 0x0001a420
MOV ESI,EAX
JMP 0x0001a42b
SUB ESP,0xc
PUSH dword ptr [EBX + 0xb18]
CALL 0x00013420
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0001a777
MOV EAX,dword ptr [EBX + 0xb30]
TEST EAX,EAX
JZ 0x000199a6
MOV EAX,dword ptr [EBP + -0x78]
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JZ 0x000199a6
MOV EDX,dword ptr [EAX + 0x4]
CMP dword ptr [EDX + 0x4],0x5
JNZ 0x000199a6
CMP dword ptr [EAX + 0xa0],0x0
JZ 0x000199a6
MOV EAX,dword ptr [EBP + -0x78]
MOVZX EAX,byte ptr [EAX + 0x35]
AND EAX,0x3
SUB EAX,0x1
CMP EAX,0x1
JA 0x000199a6
JMP 0x0001a01f
MOV EAX,dword ptr [EBP + 0xffffff70]
MOV dword ptr [EBP + -0x68],EAX
JMP 0x0001a31c
MOV dword ptr [EBP + -0x60],EAX
MOV EDX,dword ptr [EBP + 0xffffff70]
MOV EAX,dword ptr [EBP + -0x78]
PUSH 0x0
PUSH dword ptr [EDX]
PUSH EAX
PUSH 0x0
CALL 0x0002d3a0
ADD ESP,0x10
JMP 0x00018b88
SUB ESP,0x8
LEA EAX,[EBP + -0x30]
MOV EDI,dword ptr [EBP + -0x68]
PUSH EAX
LEA EAX,[EBP + -0x4c]
PUSH EAX
LEA EAX,[EBP + -0x48]
PUSH EAX
LEA EAX,[EBP + -0x50]
PUSH EAX
PUSH dword ptr [EBP + 0xffffff44]
PUSH EDI
CALL 0x0002c240
ADD ESP,0x20
TEST EAX,EAX
JZ 0x00019d3d
SUB ESP,0x4
LEA EAX,[EBX + 0xfffef219]
PUSH 0x2108
PUSH EAX
PUSH EDI
CALL 0x000130e0
ADD ESP,0xc
MOV dword ptr [EBP + -0x68],EDI
MOV ESI,EAX
LEA EAX,[EBX + 0xffff37fd]
PUSH 0x2108
PUSH EAX
PUSH EDI
CALL 0x000130e0
ADD ESP,0x10
MOV EDI,EAX
TEST ESI,ESI
JZ 0x0001a75e
TEST EAX,EAX
JZ 0x0001a75e
PUSH dword ptr [EBP + -0x44]
PUSH dword ptr [EBP + -0x48]
PUSH ESI
PUSH dword ptr [EBP + -0x68]
CALL 0x00013590
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0001a75e
PUSH dword ptr [EBP + -0x2c]
PUSH dword ptr [EBP + -0x30]
PUSH EDI
PUSH dword ptr [EBP + -0x68]
CALL 0x00013590
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0001a75e
MOV dword ptr [ESI + 0x58],0x2
MOV dword ptr [EDI + 0x58],0x0
PUSH EAX
PUSH dword ptr [EBP + -0x44]
PUSH dword ptr [EBP + -0x48]
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EBP + -0x50]
PUSH ESI
PUSH dword ptr [EBP + -0x68]
CALL 0x00013290
ADD ESP,0x20
TEST EAX,EAX
JZ 0x0001a5d9
PUSH ECX
PUSH dword ptr [EBP + -0x2c]
PUSH dword ptr [EBP + -0x30]
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EBP + -0x4c]
PUSH EDI
PUSH dword ptr [EBP + -0x68]
CALL 0x00013290
ADD ESP,0x20
TEST EAX,EAX
JNZ 0x00019e4d
PUSH EDI
LEA EAX,[EBX + 0xffff27b4]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
PUSH EAX
PUSH 0x0
PUSH dword ptr [EBP + -0x68]
PUSH 0x0
CALL 0x0002d3a0
ADD ESP,0x20
JMP 0x00019d3d
CALL 0x000135f0
SUB ESP,0xc
PUSH dword ptr [EAX]
CALL 0x00013400
ADD ESP,0xc
MOV ESI,dword ptr [EDI + 0x8]
MOV dword ptr [EBP + -0x5c],EAX
LEA EAX,[EBX + 0xffff270c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
ADD ESP,0xc
PUSH dword ptr [EBP + -0x5c]
PUSH ESI
PUSH EAX
CALL 0x0002c910
POP EDI
PUSH dword ptr [EBP + -0x30]
CALL 0x00013948
ADD ESP,0x10
MOV dword ptr [EBP + -0x60],0x0
JMP 0x00018b88
MOV ECX,dword ptr [EBP + -0x80]
LEA EDI,[ECX + 0x4]
MOV dword ptr [ECX],EAX
AND EDI,0xfffffffc
MOV dword ptr [ECX + ESI*0x1 + -0x4],EAX
SUB ECX,EDI
ADD ECX,ESI
SHR ECX,0x2
STOSD.REP ES:EDI
JMP 0x0001a1f1
MOV EDI,dword ptr [EBP + -0x68]
SUB ESP,0x8
LEA EAX,[EBX + 0xfffef0bf]
PUSH EAX
PUSH EDI
CALL 0x00013350
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x0001a69c
MOV EAX,dword ptr [EBX + 0xbc4]
TEST EAX,EAX
JZ 0x0001a69c
MOV EAX,dword ptr [EDI + 0x4]
CMP dword ptr [EAX + 0x4],0x5
JZ 0x0001a99c
LEA EAX,[EBX + 0xbe4]
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JZ 0x0001a886
SUB ESP,0xc
PUSH dword ptr [EBX + 0xbc0]
CALL 0x00013948
ADD ESP,0x10
MOV dword ptr [EBX + 0xbc0],0x0
MOV dword ptr [EBX + 0xbc4],0x0
JMP 0x00019f1f
MOV EAX,dword ptr [EBX + 0xb30]
OR EAX,dword ptr [EBX + 0xbac]
JNZ 0x0001962f
SUB ESP,0xc
PUSH dword ptr [EBX + 0xb2c]
CALL 0x00013420
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00019d73
MOV EAX,dword ptr [EBX + 0xbb0]
JMP 0x0001962a
MOV ECX,dword ptr [EBP + -0x5c]
MOV EDX,dword ptr [ECX + 0x4]
CMP dword ptr [EDX + 0x4],0x2
JZ 0x0001a90b
CMP dword ptr [EBX + 0xbb0],0x3
JZ 0x00019928
MOV EAX,dword ptr [EBX + 0xbac]
CMP EAX,0x2
JZ 0x00019928
SUB EAX,0x1
JNZ 0x00019b80
PUSH EAX
PUSH EAX
PUSH dword ptr [EBP + -0x78]
PUSH dword ptr [EBP + -0x5c]
CALL 0x000138e0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00019b80
JMP 0x00019928
LEA EAX,[EBX + 0xffff27dc]
PUSH ESI
PUSH 0x5
JMP 0x0001a5e2
MOV EAX,dword ptr [EBP + -0x78]
MOV dword ptr [EBP + -0x68],EAX
JMP 0x00019f5b
MOV EDX,dword ptr [EBX + 0xb18]
MOV EAX,EDI
CALL 0x000179c0
TEST EAX,EAX
JZ 0x0001a01f
JMP 0x0001a463
TEST ESI,ESI
JZ 0x0001aa69
MOV ECX,0xfffff000
MOV EAX,dword ptr [ESI + 0x2c]
ADD EAX,dword ptr [ESI + 0x1c]
MOV EDX,dword ptr [ESI + 0x30]
ADC EDX,dword ptr [ESI + 0x20]
CMP ECX,EAX
MOV ECX,0xffffffff
SBB ECX,EDX
JC 0x0001a928
ADD EAX,0xfff
ADC EDX,0x0
MOV ECX,EAX
AND ECX,0xfffff000
MOV EAX,EDX
MOV EDX,dword ptr [EBP + 0xffffff40]
MOV dword ptr [EDX + 0x24],ECX
MOV dword ptr [EDX + 0x28],EAX
MOV dword ptr [EDX + 0x1c],ECX
MOV dword ptr [EDX + 0x20],EAX
OR byte ptr [EDX + 0x18],0x1
JMP 0x000193ae
PUSH EAX
LEA EAX,[EBX + 0xffff2890]
MOV ESI,dword ptr [EBX + 0xb4c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
MOV dword ptr [ESP],ESI
PUSH EAX
PUSH 0x0
PUSH dword ptr [EBP + -0x68]
PUSH 0x0
CALL 0x0002d3a0
ADD ESP,0x20
JMP 0x00018b88
PUSH ESI
PUSH ESI
PUSH EAX
PUSH dword ptr [EBP + -0x68]
CALL 0x00013540
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00019f8a
LEA EAX,[EBX + 0xffff28d4]
PUSH EDI
MOV ESI,dword ptr [EBX + 0xb64]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x0002c910
MOV EAX,dword ptr [EBP + -0x68]
ADD ESP,0x10
MOV EAX,dword ptr [EAX + 0x4]
CMP dword ptr [EAX + 0x4],0x5
JZ 0x0001aa75
LEA EAX,[EBX + 0xffff294c]
PUSH ECX
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
MOV dword ptr [ESP],EAX
CALL 0x0002c910
ADD ESP,0x10
MOV dword ptr [EBP + -0x60],0x1
JMP 0x00018b88
PUSH EAX
LEA EAX,[EBX + 0xffff2864]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
PUSH EAX
PUSH ESI
PUSH dword ptr [EBP + -0x68]
PUSH 0x0
CALL 0x0002d3a0
ADD ESP,0x20
JMP 0x0001a6ac
LEA EAX,[EBX + 0xffff28b4]
PUSH EDI
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
PUSH EAX
PUSH 0x0
PUSH dword ptr [EBP + -0x68]
PUSH 0x0
CALL 0x0002d3a0
ADD ESP,0x20
JMP 0x00018b88
PUSH EAX
LEA EAX,[EBX + 0xfffef1d4]
MOV ESI,dword ptr [EBP + 0xffffff70]
PUSH 0x5
PUSH EAX
PUSH 0x0
MOV dword ptr [EBP + -0x68],ESI
CALL 0x00013200
MOV ECX,dword ptr [EBP + -0x60]
PUSH EAX
PUSH dword ptr [ECX]
PUSH ESI
PUSH 0x0
CALL 0x0002d3a0
ADD ESP,0x20
MOV dword ptr [EBX + 0xbc8],0x1
JMP 0x0001a31c
MOV EAX,dword ptr [EAX + 0xa4]
TEST EAX,EAX
JZ 0x0001a71c
CMP dword ptr [EAX + 0x2c],0x0
JNZ 0x00019b80
JMP 0x0001a71c
OR ECX,0xffffffff
OR EAX,0xffffffff
JMP 0x0001a7cb
LEA EAX,[EBX + 0xfffef1f1]
PUSH ESI
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
PUSH EAX
MOV EAX,dword ptr [EBP + -0x60]
PUSH dword ptr [EAX]
PUSH dword ptr [EBP + -0x68]
PUSH 0x0
CALL 0x0002d3a0
ADD ESP,0x20
MOV dword ptr [EBX + 0xbc8],0x1
JMP 0x00019600
PUSH EAX
LEA EAX,[EBX + 0xffff278c]
MOV ESI,dword ptr [EBX + 0xb4c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
MOV dword ptr [ESP],ESI
PUSH EAX
PUSH 0x0
PUSH dword ptr [EBP + -0x68]
PUSH 0x0
CALL 0x0002d3a0
ADD ESP,0x20
MOV dword ptr [EBP + -0x60],0x0
JMP 0x00018b88
LEA EDX,[ESI + 0xa4]
MOV EAX,ESI
CALL 0x000176d0
TEST EAX,EAX
JZ 0x0001a69c
PUSH EAX
PUSH dword ptr [EBX + 0xbbc]
PUSH dword ptr [EBX + 0xbb8]
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EBX + 0xbc0]
PUSH ESI
PUSH dword ptr [EBP + -0x68]
CALL 0x00013290
ADD ESP,0x20
MOV dword ptr [EBP + -0x60],EAX
TEST EAX,EAX
JNZ 0x0001a6ac
PUSH EAX
LEA EAX,[EBX + 0xffff2834]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
PUSH EAX
PUSH ESI
PUSH dword ptr [EBP + -0x68]
PUSH 0x0
CALL 0x0002d3a0
ADD ESP,0x20
JMP 0x00018b88
MOV EDI,dword ptr [EBP + -0x60]
MOV ESI,dword ptr [EBP + -0x5c]
PUSH EAX
LEA EAX,[EBX + 0xbc0]
PUSH EAX
PUSH EDI
PUSH ESI
CALL 0x00013370
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0001aab6
PUSH EAX
LEA EAX,[EBX + 0xffff23ec]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
PUSH EAX
PUSH EDI
PUSH ESI
PUSH 0x0
CALL 0x0002d3a0
ADD ESP,0x14
PUSH dword ptr [EBX + 0xbc0]
CALL 0x00013948
ADD ESP,0x10
MOV dword ptr [EBX + 0xbc0],0x0
MOV dword ptr [EBX + 0xbc4],0x0
JMP 0x00018e0e
MOV ECX,0x1000
XOR EAX,EAX
JMP 0x0001a7cb
LEA EAX,[EBX + 0xffff2910]
PUSH ESI
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
MOV dword ptr [ESP],EAX
CALL 0x0002c910
MOV EAX,dword ptr [EBP + -0x68]
MOV EDX,dword ptr [EBX + 0xb64]
ADD ESP,0x10
MOV EAX,dword ptr [EAX + 0xa0]
MOV word ptr [EAX + 0x32],DX
JMP 0x00019f8a
MOV EDX,dword ptr [EBP + -0x80]
MOV word ptr [EDX + ESI*0x1 + -0x2],AX
JMP 0x0001a1f1
PUSH EDI
MOV EAX,dword ptr [EBX + 0xbc0]
PUSH EDI
PUSH dword ptr [EBP + -0x60]
PUSH dword ptr [EBP + -0x5c]
MOV dword ptr [EBP + 0xffffff58],EAX
CALL 0x00013830
ADD ESP,0x10
TEST EAX,EAX
JLE 0x0001ab09
SUB ESP,0xc
PUSH EAX
CALL 0x000132e0
PUSH dword ptr [EBX + 0xbdc]
PUSH EAX
MOV ESI,EAX
PUSH dword ptr [EBP + -0x60]
PUSH dword ptr [EBP + -0x5c]
CALL 0x000137c0
ADD ESP,0x14
PUSH ESI
MOV EDI,EAX
CALL 0x00013948
ADD ESP,0x10
TEST EDI,EDI
JNZ 0x0001b737
MOV EDI,dword ptr [EBP + 0xffffff6c]
PUSH ECX
PUSH ECX
PUSH 0x30
PUSH ESI
MOV ESI,dword ptr [EBP + 0xffffff68]
PUSH 0x0
PUSH 0xc
PUSH EDI
PUSH ESI
CALL 0x0002e730
ADD ESP,0x14
PUSH EAX
CALL 0x00013958
MOV dword ptr [EBP + -0x78],ESI
ADD ESP,0x10
MOV ECX,dword ptr [EBP + 0xffffff58]
MOV dword ptr [EBP + -0x70],EAX
MOV ESI,EAX
MOV EAX,dword ptr [EBP + -0x5c]
MOV dword ptr [EBP + -0x74],EDI
MOV dword ptr [EBP + 0xffffff48],0x0
MOV dword ptr [EBP + 0xffffff40],0x0
MOV dword ptr [EBP + 0xffffff4c],0x0
MOV dword ptr [EBP + 0xffffff44],0x0
MOV dword ptr [EBP + -0x80],0x0
MOV dword ptr [EBP + 0xffffff5c],0x0
MOV dword ptr [EBP + 0xffffff60],0x0
MOV dword ptr [EBP + 0xffffff70],EAX
MOV EAX,dword ptr [EBP + -0x78]
MOV EDI,0xb
MOV EDX,dword ptr [EBP + -0x74]
CMP EDI,EAX
MOV EDI,0x0
SBB EDI,EDX
JNC 0x0001aef5
MOV EDI,dword ptr [EBP + 0xffffff70]
SUB ESP,0xc
MOV dword ptr [EBP + 0xffffff64],ECX
MOV EAX,dword ptr [EDI + 0x4]
PUSH ECX
CALL dword ptr [EAX + 0x28]
MOV ECX,dword ptr [EBP + 0xffffff64]
ADD EAX,0x3
AND EAX,0xfffffffc
LEA EDX,[ECX + 0x4]
MOV dword ptr [EBP + 0xffffff50],ECX
MOV dword ptr [ESI],EAX
MOV dword ptr [EBP + 0xffffff7c],EAX
MOV EAX,dword ptr [EDI + 0x4]
MOV dword ptr [ESP],EDX
CALL dword ptr [EAX + 0x28]
MOV ECX,dword ptr [EBP + 0xffffff50]
ADD EAX,0x3
AND EAX,0xfffffffc
LEA EDX,[ECX + 0x8]
MOV dword ptr [ESI + 0x4],EAX
MOV dword ptr [EBP + 0xffffff64],EAX
MOV EAX,dword ptr [EDI + 0x4]
MOV dword ptr [ESP],EDX
CALL dword ptr [EAX + 0x28]
ADD ESP,0x10
MOV ECX,dword ptr [EBP + 0xffffff50]
MOV dword ptr [EBP + 0xffffff3c],EAX
MOV dword ptr [ESI + 0x8],EAX
SUB EAX,0x100
CMP EAX,0x1
JA 0x0001b7b4
MOV EAX,dword ptr [EBP + 0xffffff7c]
MOV EDX,dword ptr [EBP + 0xffffff64]
MOV dword ptr [EBP + 0xffffff54],0x0
LEA EDI,[EAX + EDX*0x1 + 0xc]
MOV EAX,dword ptr [EBP + -0x78]
MOV EDX,dword ptr [EBP + -0x74]
MOV dword ptr [EBP + 0xffffff30],EDI
CMP EAX,EDI
MOV EAX,EDX
SBB EAX,dword ptr [EBP + 0xffffff54]
MOV dword ptr [EBP + 0xffffff50],EDI
JC 0x0001b6d1
CMP dword ptr [EBP + 0xffffff7c],0x1
JBE 0x0001b768
LEA EAX,[ECX + 0xc]
MOV EDX,dword ptr [EBP + 0xffffff54]
MOV dword ptr [ESI + 0xc],EAX
MOV EAX,dword ptr [EBP + 0xffffff7c]
LEA EDI,[ECX + EAX*0x1 + 0xc]
MOV EAX,dword ptr [EBP + 0xffffff50]
SUB dword ptr [EBP + -0x78],EAX
MOV EAX,dword ptr [EBP + 0xffffff30]
SBB dword ptr [EBP + -0x74],EDX
MOV dword ptr [ESI + 0x10],EDI
ADD EAX,ECX
MOV dword ptr [EBP + 0xffffff50],EAX
MOVZX EAX,byte ptr [ECX + 0xc]
CMP AL,0x24
JZ 0x0001aed5
CMP dword ptr [EBP + 0xffffff7c],0x4
JBE 0x0001acbe
CMP AL,0x47
JZ 0x0001b704
CMP dword ptr [EBP + 0xffffff64],0x4
JZ 0x0001add8
JBE 0x0001ad82
MOV EAX,dword ptr [EBP + 0xffffff64]
CMP EAX,0x8
JZ 0x0001aea6
CMP EAX,0x10
JNZ 0x0001ae8d
MOV EAX,dword ptr [EBP + 0xffffff70]
SUB ESP,0xc
MOV EAX,dword ptr [EAX + 0x4]
PUSH EDI
ADD EDI,0x8
CALL dword ptr [EAX + 0x1c]
MOV dword ptr [EBP + 0xffffff64],EAX
MOV EAX,dword ptr [EBP + 0xffffff70]
MOV dword ptr [EBP + 0xffffff7c],EDX
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP],EDI
CALL dword ptr [EAX + 0x1c]
MOV ECX,dword ptr [EBP + 0xffffff64]
ADD ESP,0x10
CMP dword ptr [EBP + 0xffffff3c],0x100
MOV EDI,dword ptr [EBP + 0xffffff7c]
JZ 0x0001ada4
OR EDI,ECX
CMOVZ ECX,dword ptr [EBP + 0xffffff44]
OR EDX,EAX
CMOVZ EAX,dword ptr [EBP + 0xffffff40]
MOV dword ptr [ESI + 0x20],0x0
MOV dword ptr [EBP + 0xffffff44],ECX
MOV dword ptr [ESI + 0x1c],ECX
MOV dword ptr [EBP + 0xffffff40],EAX
MOV dword ptr [ESI + 0x24],EAX
MOV dword ptr [ESI + 0x28],0x0
MOV EDX,dword ptr [ESI + 0xc]
MOV EAX,dword ptr [ESI]
CMP byte ptr [EDX + EAX*0x1 + -0x1],0x0
JNZ 0x0001adfe
ADD ESI,0x30
MOV ECX,dword ptr [EBP + 0xffffff50]
JMP 0x0001ab8e
CMP dword ptr [EBP + 0xffffff64],0x0
JNZ 0x0001ae8d
MOV dword ptr [EBP + 0xffffff7c],0x0
XOR EAX,EAX
XOR EDX,EDX
XOR ECX,ECX
JMP 0x0001ad20
OR EDI,ECX
CMOVZ ECX,dword ptr [EBP + 0xffffff4c]
OR EDX,EAX
CMOVZ EAX,dword ptr [EBP + 0xffffff48]
MOV dword ptr [ESI + 0x20],0x0
MOV dword ptr [EBP + 0xffffff4c],ECX
MOV dword ptr [ESI + 0x1c],ECX
MOV dword ptr [EBP + 0xffffff48],EAX
MOV dword ptr [ESI + 0x24],EAX
MOV dword ptr [ESI + 0x28],0x0
JMP 0x0001ad64
MOV EAX,dword ptr [EBP + 0xffffff70]
SUB ESP,0xc
MOV EAX,dword ptr [EAX + 0x4]
PUSH EDI
CALL dword ptr [EAX + 0x28]
MOV ECX,EAX
MOV dword ptr [EBP + 0xffffff7c],EDX
ADD ESP,0x10
OR EAX,0xffffffff
OR EDX,0xffffffff
JMP 0x0001ad20
PUSH EAX
LEA EAX,[EBX + 0xffff251c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0001ae41
SUB ESP,0xc
MOV dword ptr [EBP + -0x78],EAX
PUSH 0x11
CALL 0x000132f0
MOV EAX,dword ptr [EBP + -0x78]
PUSH EAX
PUSH dword ptr [EBP + -0x60]
PUSH dword ptr [EBP + -0x5c]
PUSH 0x0
CALL 0x0002d3a0
ADD ESP,0x20
MOV dword ptr [EBX + 0xbc8],0x1
SUB ESP,0xc
PUSH dword ptr [EBP + -0x70]
CALL 0x00013948
ADD ESP,0x10
SUB ESP,0xc
PUSH dword ptr [EBX + 0xbc0]
CALL 0x00013948
ADD ESP,0x10
MOV dword ptr [EBX + 0xbc0],0x0
MOV dword ptr [EBX + 0xbc4],0x0
MOV dword ptr [EBX + 0xbb8],0x0
MOV dword ptr [EBX + 0xbbc],0x0
JMP 0x00018e0e
PUSH EAX
LEA EAX,[EBX + 0xffff24e4]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
ADD ESP,0x10
JMP 0x0001ae12
MOV EDX,dword ptr [EBP + 0xffffff70]
MOV EAX,dword ptr [EDX + 0x4]
CMP dword ptr [EAX + 0x4],0x5
JNZ 0x0001b781
MOV EDX,dword ptr [EDX + 0xa0]
CMP byte ptr [EDX + 0x4],0x2
JNZ 0x0001b781
SUB ESP,0xc
PUSH EDI
CALL dword ptr [EAX + 0x1c]
JMP 0x0001ade8
CMP byte ptr [ECX + 0xd],0x1
JNZ 0x0001acbe
CMP byte ptr [ECX + 0xe],0x31
JNZ 0x0001acbe
ADD dword ptr [EBP + 0xffffff60],0x1
JMP 0x0001acbe
MOV EDX,dword ptr [EBP + -0x74]
MOV EAX,dword ptr [EBP + -0x78]
MOV dword ptr [EBP + 0xffffff48],ESI
MOV ECX,EDX
OR ECX,EAX
JNZ 0x0001b09f
MOV EDX,dword ptr [EBP + 0xffffff60]
MOV EAX,dword ptr [EBP + 0xffffff5c]
OR EAX,dword ptr [EBP + -0x80]
OR EDX,EAX
JZ 0x0001b086
CMP dword ptr [EBP + 0xffffff60],0x0
JZ 0x0001af2f
TEST EAX,EAX
JNZ 0x0001af3e
CMP dword ptr [EBP + 0xffffff5c],0x0
JZ 0x0001af57
CMP dword ptr [EBP + -0x80],0x0
JZ 0x0001af57
LEA EAX,[EBX + 0xffff25cc]
PUSH ESI
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
ADD ESP,0x10
JMP 0x0001ae12
MOV ECX,dword ptr [EBP + 0xffffff60]
CMP ECX,0x1
SETZ AL
CMP dword ptr [EBP + 0xffffff5c],0x1
SETZ DL
OR AL,DL
JNZ 0x0001ae41
CMP dword ptr [EBP + -0x80],0x1
JZ 0x0001ae41
CMP ECX,0x1
MOV EAX,dword ptr [EBP + -0x70]
SBB ECX,ECX
AND ECX,0x2
MOV EAX,dword ptr [EAX + 0xc]
ADD ECX,0x1
CMP byte ptr [EAX + ECX*0x1],0x1
MOV dword ptr [EBP + 0xffffff64],ECX
JNZ 0x0001b573
MOV dword ptr [EBP + 0xffffff50],0x0
MOV EAX,dword ptr [EBP + -0x70]
LEA EDI,[EAX + 0x30]
MOV EAX,dword ptr [EBP + 0xffffff64]
ADD EAX,0x1
MOV dword ptr [EBP + 0xffffff4c],EAX
MOV EAX,dword ptr [EBP + -0x68]
MOV dword ptr [EBP + -0x68],EDI
MOV dword ptr [EBP + 0xffffff38],EAX
JMP 0x0001afd1
ADD dword ptr [EBP + -0x68],0x30
MOV EDX,dword ptr [EBP + -0x68]
CMP dword ptr [EBP + 0xffffff48],EDX
JBE 0x0001b1c6
MOV EAX,dword ptr [EBP + -0x68]
CMP dword ptr [EAX + 0x8],0x100
JNZ 0x0001afcd
MOV dword ptr [EBP + 0xffffff5c],0x0
MOV EDX,dword ptr [EAX + 0xc]
MOV ECX,EAX
MOV EAX,dword ptr [EBP + 0xffffff64]
MOV dword ptr [EBP + 0xffffff70],ECX
MOV dword ptr [EBP + 0xffffff44],EDX
MOVZX EAX,byte ptr [EDX + EAX*0x1]
ADD EDX,dword ptr [EBP + 0xffffff4c]
MOV dword ptr [EBP + 0xffffff30],EDX
MOV byte ptr [EBP + 0xffffff7c],AL
LEA EAX,[ECX + -0x30]
MOV dword ptr [EBP + -0x68],EAX
JMP 0x0001b043
CMP byte ptr [EBP + 0xffffff7c],AL
JNZ 0x0001b03f
CMP EDX,0x100
JZ 0x0001b0c6
SUB dword ptr [EBP + -0x68],0x30
MOV ECX,dword ptr [EBP + -0x68]
CMP dword ptr [EBP + -0x70],ECX
JA 0x0001b0b8
MOV EDX,dword ptr [EBP + -0x68]
MOV ECX,dword ptr [EBP + 0xffffff64]
CMP dword ptr [EBP + 0xffffff5c],0x0
MOV EAX,dword ptr [EDX + 0xc]
MOV EDX,dword ptr [EDX + 0x8]
MOV dword ptr [EBP + 0xffffff60],EAX
MOVZX EAX,byte ptr [EAX + ECX*0x1]
JNZ 0x0001b02b
MOV ECX,dword ptr [EBP + -0x68]
CMP dword ptr [ECX + 0x4],0x0
JZ 0x0001b02b
CMP EDX,0x101
JZ 0x0001b03f
MOV dword ptr [EBP + 0xffffff5c],ECX
JMP 0x0001b02b
LEA EAX,[EBX + 0xffff2590]
PUSH EDI
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
ADD ESP,0x10
JMP 0x0001ae12
PUSH EAX
LEA EAX,[EBX + 0xffff2558]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
ADD ESP,0x10
JMP 0x0001ae12
MOV EAX,dword ptr [EBP + 0xffffff70]
MOV dword ptr [EBP + -0x68],EAX
JMP 0x0001afcd
MOV EDX,dword ptr [EBP + 0xffffff70]
MOV EDX,dword ptr [EDX]
CMP AL,0x4
JNZ 0x0001b58c
SUB EDX,dword ptr [EBP + 0xffffff4c]
XOR EAX,EAX
MOV EDI,EDX
XOR EDX,EDX
JMP 0x0001b0f5
MOV ESI,dword ptr [EBP + 0xffffff30]
MOVZX ESI,byte ptr [ESI + EAX*0x1]
ADD EAX,0x1
SHL ESI,CL
OR EDX,ESI
LEA ECX,[EAX*0x8 + 0x0]
CMP EDI,EAX
JNZ 0x0001b0e4
MOV ECX,dword ptr [EBP + -0x68]
MOV ESI,dword ptr [EBP + 0xffffff4c]
MOV dword ptr [EBP + -0x68],0x0
MOV EDI,dword ptr [EBP + 0xffffff60]
MOV EAX,dword ptr [ECX]
MOV dword ptr [EBP + 0xffffff2c],ECX
ADD EDI,ESI
MOV dword ptr [EBP + 0xffffff40],EAX
SUB EAX,ESI
MOV dword ptr [EBP + 0xffffff3c],EAX
XOR EAX,EAX
JMP 0x0001b13e
MOVZX ESI,byte ptr [EDI + EAX*0x1]
ADD EAX,0x1
SHL ESI,CL
OR dword ptr [EBP + -0x68],ESI
LEA ECX,[EAX*0x8 + 0x0]
CMP dword ptr [EBP + 0xffffff3c],EAX
JNZ 0x0001b132
MOV ESI,dword ptr [EBP + -0x68]
MOV ECX,dword ptr [EBP + 0xffffff2c]
ADD ESI,EDX
MOV dword ptr [EBP + 0xffffff3c],ECX
XOR EDX,EDX
MOV ECX,ESI
JMP 0x0001b16a
ADD EDX,0x1
SHR ECX,0x8
TEST ECX,ECX
JNZ 0x0001b164
MOV ECX,dword ptr [EBP + 0xffffff3c]
MOV dword ptr [EBP + -0x68],ECX
CMP EDX,EAX
JNC 0x0001b03f
MOV EDX,dword ptr [EBP + 0xffffff70]
MOV ECX,dword ptr [EBP + 0xffffff40]
MOV EAX,dword ptr [EBP + 0xffffff60]
ADD EAX,ECX
MOV ECX,EDX
MOV EDX,ESI
JMP 0x0001b1a6
ADD EDI,0x1
MOV byte ptr [EDI + -0x1],DL
TEST EDX,EDX
JZ 0x0001b1aa
SHR EDX,0x8
CMP EDI,EAX
JC 0x0001b199
MOV dword ptr [EBP + -0x68],ECX
MOV EAX,dword ptr [EBP + -0x68]
MOV dword ptr [EBP + 0xffffff50],0x1
MOV dword ptr [EAX + 0x8],0x0
JMP 0x0001afcd
MOV EAX,dword ptr [EBP + 0xffffff38]
CMP dword ptr [EBP + 0xffffff50],0x0
MOV dword ptr [EBP + -0x68],EAX
JZ 0x0001ae41
SUB ESP,0xc
PUSH dword ptr [EBP + 0xffffff68]
CALL 0x000132e0
MOV EDX,dword ptr [EBP + -0x78]
MOV ECX,dword ptr [EBP + -0x74]
ADD ESP,0x10
MOV dword ptr [EBP + 0xffffff7c],EAX
MOV EDI,EAX
MOV EAX,dword ptr [EBP + 0xffffff58]
MOV dword ptr [EBP + 0xffffff38],EDX
MOV ESI,dword ptr [EBP + -0x70]
MOV dword ptr [EBP + 0xffffff5c],EAX
MOV EAX,dword ptr [EBP + -0x68]
MOV dword ptr [EBP + 0xffffff2c],ECX
MOV dword ptr [EBP + 0xffffff28],EAX
MOV EAX,dword ptr [EBP + -0x5c]
MOV dword ptr [EBP + -0x68],EAX
JMP 0x0001b3af
MOV EDX,dword ptr [ESI + 0x20]
MOV EAX,dword ptr [ESI + 0x1c]
MOV dword ptr [EBP + 0xffffff30],ECX
MOV dword ptr [EBP + 0xffffff54],0x0
MOV dword ptr [EBP + 0xffffff74],EDX
MOV EDX,dword ptr [EBP + -0x68]
MOV dword ptr [EBP + 0xffffff70],EAX
MOV dword ptr [EBP + 0xffffff34],0x0
MOV EAX,dword ptr [EDX + 0x4]
MOV EDX,dword ptr [EAX + 0x30]
MOV EAX,dword ptr [EBP + 0xffffff64]
MOV dword ptr [EBP + 0xffffff4c],EDX
LEA EDX,[EDI + 0x4]
MOV dword ptr [EBP + 0xffffff40],EDX
LEA EDX,[EDI + 0x8]
MOV dword ptr [EBP + 0xffffff44],EDX
LEA EDX,[EDI + 0xc]
MOV dword ptr [EBP + 0xffffff3c],EDX
ADD EDX,EAX
MOV dword ptr [EBP + 0xffffff50],EAX
MOV EAX,dword ptr [EBP + 0xffffff74]
MOV dword ptr [EBP + -0x80],EDX
CMP EAX,dword ptr [EBP + -0x74]
JZ 0x0001b4a8
PUSH EAX
MOV EAX,dword ptr [EBP + 0xffffff4c]
PUSH EDI
PUSH dword ptr [EBP + 0xffffff54]
PUSH dword ptr [EBP + 0xffffff50]
CALL EAX
MOV EAX,dword ptr [EBP + -0x68]
XOR ECX,ECX
MOV EDX,0x8
MOV EAX,dword ptr [EAX + 0x4]
ADD ESP,0x10
CMP dword ptr [EAX + 0x4],0x5
MOV EDI,dword ptr [EAX + 0x30]
JNZ 0x0001b2e5
MOV EAX,dword ptr [EBP + -0x68]
MOV EAX,dword ptr [EAX + 0xa0]
CMP byte ptr [EAX + 0x4],0x2
JNZ 0x0001b2e5
MOV EDX,0x10
XOR ECX,ECX
PUSH EAX
PUSH dword ptr [EBP + 0xffffff40]
PUSH ECX
PUSH EDX
CALL EDI
MOV EDI,dword ptr [EBP + -0x68]
ADD ESP,0xc
MOV EAX,dword ptr [EDI + 0x4]
PUSH dword ptr [EBP + 0xffffff44]
PUSH dword ptr [EBP + 0xffffff34]
PUSH dword ptr [EBP + 0xffffff30]
CALL dword ptr [EAX + 0x30]
MOV EAX,dword ptr [ESI + 0xc]
ADD ESP,0xc
PUSH dword ptr [EBP + 0xffffff64]
PUSH EAX
PUSH dword ptr [EBP + 0xffffff3c]
CALL 0x00013130
MOV EAX,dword ptr [EDI + 0x4]
MOV EDX,dword ptr [EBP + -0x80]
ADD ESP,0x10
MOV ECX,EDI
CMP dword ptr [EAX + 0x4],0x5
LEA EDI,[EDX + 0x8]
JNZ 0x0001b53f
MOV EDX,dword ptr [ECX + 0xa0]
MOV dword ptr [EBP + -0x68],ECX
CMP byte ptr [EDX + 0x4],0x2
JNZ 0x0001b53f
PUSH ECX
PUSH dword ptr [EBP + -0x80]
PUSH dword ptr [EBP + 0xffffff74]
PUSH dword ptr [EBP + 0xffffff70]
CALL dword ptr [EAX + 0x24]
MOV ECX,dword ptr [EBP + -0x68]
MOV EAX,dword ptr [ECX + 0x4]
ADD ESP,0xc
PUSH EDI
PUSH dword ptr [ESI + 0x28]
PUSH dword ptr [ESI + 0x24]
CALL dword ptr [EAX + 0x24]
MOV EDX,dword ptr [EBP + -0x80]
ADD EDX,0x10
ADD ESP,0x10
MOV EDI,EDX
MOV EAX,dword ptr [ESI + 0x1c]
MOV EDX,dword ptr [ESI + 0x20]
MOV dword ptr [EBP + -0x78],EAX
MOV EAX,dword ptr [ESI + 0x24]
MOV dword ptr [EBP + -0x74],EDX
MOV dword ptr [EBP + 0xffffff38],EAX
MOV EAX,dword ptr [ESI + 0x28]
MOV dword ptr [EBP + 0xffffff2c],EAX
MOV ECX,dword ptr [EBP + 0xffffff60]
ADD dword ptr [EBP + 0xffffff5c],ECX
ADD ESI,0x30
CMP dword ptr [EBP + 0xffffff48],ESI
JBE 0x0001b3fa
MOV EAX,dword ptr [ESI]
MOV ECX,dword ptr [ESI + 0x8]
MOV dword ptr [EBP + 0xffffff64],EAX
ADD EAX,dword ptr [ESI + 0x4]
LEA EDX,[EAX + 0xc]
MOV dword ptr [EBP + 0xffffff60],EDX
TEST ECX,ECX
JZ 0x0001b3a0
CMP dword ptr [ESI + 0x2c],0x0
JNZ 0x0001b22a
PUSH EAX
PUSH dword ptr [EBP + 0xffffff60]
PUSH dword ptr [EBP + 0xffffff5c]
PUSH EDI
CALL 0x00013130
ADD EDI,dword ptr [EBP + 0xffffff60]
ADD ESP,0x10
JMP 0x0001b382
MOV EAX,dword ptr [EBP + 0xffffff28]
MOV EDX,EDI
PUSH ECX
MOV dword ptr [EBP + -0x68],EAX
MOV EAX,dword ptr [EBP + 0xffffff7c]
SUB EDX,EAX
PUSH EDX
MOV ESI,EDX
MOV EDI,EDX
PUSH EAX
SAR EDI,0x1f
PUSH dword ptr [EBP + 0xffffff58]
MOV dword ptr [EBP + -0x78],EDX
CALL 0x00013130
POP EAX
PUSH dword ptr [EBP + 0xffffff7c]
CALL 0x00013948
POP EAX
PUSH dword ptr [EBP + -0x70]
CALL 0x00013948
ADD ESP,0x10
CMP dword ptr [EBP + 0xffffff6c],EDI
MOV EDX,dword ptr [EBP + -0x78]
MOV dword ptr [EBX + 0xbb8],ESI
MOV dword ptr [EBX + 0xbbc],EDI
JZ 0x0001b49b
MOV EAX,dword ptr [EBP + -0x60]
MOV EAX,dword ptr [EAX + 0x54]
TEST EAX,EAX
JZ 0x0001b474
PUSH EDI
PUSH ESI
PUSH EAX
PUSH dword ptr [EBP + -0x68]
CALL 0x00013590
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00018e0e
PUSH EAX
LEA EAX,[EBX + 0xffff2644]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
PUSH EAX
PUSH dword ptr [EBP + -0x60]
PUSH dword ptr [EBP + -0x68]
PUSH 0x0
CALL 0x0002d3a0
ADD ESP,0x14
JMP 0x0001ae52
CMP dword ptr [EBP + 0xffffff68],EDX
JNZ 0x0001b454
JMP 0x0001ae4f
MOV EAX,dword ptr [EBP + -0x78]
CMP dword ptr [EBP + 0xffffff70],EAX
JNZ 0x0001b2a0
MOV EAX,dword ptr [EBP + 0xffffff2c]
CMP dword ptr [ESI + 0x28],EAX
JNZ 0x0001b2a0
MOV EAX,dword ptr [EBP + 0xffffff38]
CMP dword ptr [ESI + 0x24],EAX
JNZ 0x0001b2a0
PUSH EAX
MOV EAX,dword ptr [EBP + 0xffffff4c]
PUSH EDI
PUSH dword ptr [EBP + 0xffffff54]
PUSH dword ptr [EBP + 0xffffff50]
CALL EAX
MOV EDI,dword ptr [EBP + -0x68]
ADD ESP,0xc
MOV EAX,dword ptr [EDI + 0x4]
PUSH dword ptr [EBP + 0xffffff40]
PUSH 0x0
PUSH 0x0
CALL dword ptr [EAX + 0x30]
MOV EAX,dword ptr [EDI + 0x4]
ADD ESP,0xc
PUSH dword ptr [EBP + 0xffffff44]
PUSH dword ptr [EBP + 0xffffff34]
PUSH dword ptr [EBP + 0xffffff30]
CALL dword ptr [EAX + 0x30]
MOV EAX,dword ptr [ESI + 0xc]
ADD ESP,0xc
PUSH dword ptr [EBP + 0xffffff64]
PUSH EAX
PUSH dword ptr [EBP + 0xffffff3c]
CALL 0x00013130
ADD ESP,0x10
MOV EDI,dword ptr [EBP + -0x80]
JMP 0x0001b382
PUSH EDX
PUSH dword ptr [EBP + -0x80]
PUSH dword ptr [EBP + 0xffffff74]
PUSH dword ptr [EBP + 0xffffff70]
CALL dword ptr [EAX + 0x30]
MOV EAX,dword ptr [EBP + -0x80]
MOV ECX,dword ptr [EBP + -0x68]
ADD ESP,0xc
ADD EAX,0x4
MOV EDX,dword ptr [ECX + 0x4]
PUSH EAX
PUSH dword ptr [ESI + 0x28]
PUSH dword ptr [ESI + 0x24]
CALL dword ptr [EDX + 0x30]
ADD ESP,0x10
JMP 0x0001b382
LEA EAX,[EBX + 0xffff2608]
PUSH ECX
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
ADD ESP,0x10
JMP 0x0001ae12
MOV EAX,dword ptr [EBP + -0x68]
MOV ECX,dword ptr [EBP + 0xffffff70]
MOV dword ptr [EBP + 0xffffff7c],EAX
MOV EAX,dword ptr [EAX]
MOV dword ptr [EBP + -0x68],ECX
CMP EAX,EDX
JZ 0x0001b602
CMP dword ptr [EBP + -0x80],0x0
MOV EAX,dword ptr [EBP + -0x68]
JZ 0x0001b5d4
MOV dword ptr [EAX + 0x2c],0x1
MOV dword ptr [EAX + 0x8],0x101
MOV EAX,dword ptr [EBP + 0xffffff7c]
MOV dword ptr [EAX + 0x2c],0x1
MOV dword ptr [EAX + 0x8],0x101
JMP 0x0001afcd
CMP dword ptr [EAX + 0x4],0x0
JNZ 0x0001afcd
MOV EAX,dword ptr [EBP + 0xffffff5c]
TEST EAX,EAX
JZ 0x0001afcd
CMP dword ptr [EAX + 0x8],0x0
JNZ 0x0001afcd
MOV dword ptr [EAX + 0x8],0x100
JMP 0x0001afcd
PUSH EDX
PUSH EAX
PUSH dword ptr [EBP + 0xffffff44]
PUSH dword ptr [EBP + 0xffffff60]
CALL 0x000131d0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0001b5a4
MOV EAX,dword ptr [EBP + 0xffffff7c]
MOV EDI,dword ptr [EAX + 0x28]
MOV ESI,dword ptr [EAX + 0x24]
MOV EAX,EDI
OR EAX,ESI
JZ 0x0001b5a4
MOV EAX,dword ptr [EBP + -0x68]
MOV ECX,dword ptr [EAX + 0x24]
MOV EDX,dword ptr [EAX + 0x28]
MOV dword ptr [EBP + 0xffffff60],EDX
OR EDX,ECX
MOV dword ptr [EBP + 0xffffff70],ECX
JZ 0x0001b5a4
MOV EAX,0xfffffff0
CMP EAX,ESI
MOV EAX,0xffffffff
MOV EDX,EAX
SBB EDX,EDI
JC 0x0001b681
MOV EAX,ESI
MOV EDX,EDI
ADD EAX,0xf
ADC EDX,0x0
AND EAX,0xfffffff0
MOV ECX,EDX
MOV EDX,ECX
MOV ECX,dword ptr [EBP + -0x68]
CMP EAX,dword ptr [ECX + 0x1c]
SBB EDX,dword ptr [ECX + 0x20]
JC 0x0001b5a4
MOV EAX,dword ptr [EBP + -0x68]
MOV ECX,dword ptr [EBP + 0xffffff70]
MOV EDX,EDI
MOV dword ptr [EAX + 0x8],0x0
MOV EAX,dword ptr [EBP + 0xffffff60]
CMP ESI,ECX
SBB EDX,EAX
JNC 0x0001b6ab
MOV EDX,dword ptr [EBP + 0xffffff7c]
MOV dword ptr [EDX + 0x24],ECX
MOV dword ptr [EDX + 0x28],EAX
MOV dword ptr [EBP + 0xffffff50],0x1
CMP dword ptr [EBP + -0x80],0x0
JZ 0x0001afcd
MOV EAX,dword ptr [EBP + 0xffffff7c]
MOV dword ptr [EAX + 0x2c],0x1
JMP 0x0001afcd
PUSH EAX
LEA EAX,[EBX + 0xffff2448]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
ADD ESP,0x10
JMP 0x0001ae12
PUSH EAX
LEA EAX,[EBX + 0xfffef203]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
POP EDX
POP ECX
PUSH EDI
PUSH EAX
CALL 0x0002c8e0
CMP byte ptr [ECX + 0xd],0x41
JNZ 0x0001acbe
CMP byte ptr [ECX + 0xe],0x24
JNZ 0x0001acbe
CMP byte ptr [ECX + 0xf],0x1
JNZ 0x0001acbe
MOVZX EAX,byte ptr [ECX + 0x10]
CMP AL,0x32
JZ 0x0001b75c
CMP AL,0x33
JNZ 0x0001b743
ADD dword ptr [EBP + -0x80],0x1
JMP 0x0001acbe
MOV dword ptr [EBP + -0x70],0x0
JMP 0x0001ae41
PUSH EAX
LEA EAX,[EBX + 0xffff24ac]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
ADD ESP,0x10
JMP 0x0001ae12
ADD dword ptr [EBP + 0xffffff5c],0x1
JMP 0x0001acbe
PUSH EAX
LEA EAX,[EBX + 0xffff2478]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
ADD ESP,0x10
JMP 0x0001ae12
SUB ESP,0xc
PUSH EDI
ADD EDI,0x4
CALL dword ptr [EAX + 0x28]
MOV dword ptr [EBP + 0xffffff64],EAX
MOV EAX,dword ptr [EBP + 0xffffff70]
MOV dword ptr [EBP + 0xffffff7c],EDX
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP],EDI
CALL dword ptr [EAX + 0x28]
ADD ESP,0x10
MOV ECX,dword ptr [EBP + 0xffffff64]
JMP 0x0001ad20
LEA EAX,[EBX + 0xffff2414]
PUSH EDX
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013200
ADD ESP,0x10
JMP 0x0001ae12
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Type propagation algorithm not settling */\n\nint __regparm3 FUN_00018920(void *param_1,size_t *param_2,int param_3)\n\n{\n  int *piVar1;\n  char cVar2;\n  byte bVar3;\n  int *piVar4;\n  undefined *puVar5;\n  void *pvVar6;\n  size_t sVar7;\n  code *pcVar8;\n  size_t *psVar9;\n  size_t *psVar10;\n  size_t *psVar11;\n  int iVar12;\n  undefined4 uVar13;\n  undefined4 uVar14;\n  FILE *__s;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  uint uVar17;\n  int iVar18;\n  int *piVar19;\n  undefined *puVar20;\n  int iVar21;\n  size_t sVar22;\n  size_t sVar23;\n  int *piVar24;\n  char *pcVar25;\n  void *pvVar26;\n  uint uVar27;\n  size_t sVar28;\n  size_t sVar29;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  size_t extraout_ECX_01;\n  size_t extraout_ECX_02;\n  size_t sVar30;\n  int iVar31;\n  void *pvVar32;\n  uint uVar33;\n  int *piVar34;\n  undefined4 *puVar35;\n  byte *pbVar36;\n  uint uVar37;\n  size_t *psVar38;\n  uint uVar39;\n  uint uVar40;\n  byte *pbVar41;\n  undefined4 *puVar42;\n  size_t *psVar43;\n  uint uVar44;\n  undefined1 *puVar45;\n  bool bVar46;\n  bool bVar47;\n  byte bVar48;\n  undefined8 uVar49;\n  longlong lVar50;\n  longlong lVar51;\n  void *pvVar52;\n  size_t sVar53;\n  void *__dest;\n  size_t sVar54;\n  size_t sVar55;\n  uint local_bc;\n  uint local_b8;\n  void *local_b4;\n  size_t *local_a8;\n  int local_a4;\n  int local_8c;\n  int *local_84;\n  uint local_7c;\n  uint local_78;\n  size_t *local_74;\n  size_t *local_6c;\n  int local_68;\n  int *local_64;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  int *local_34;\n  undefined4 local_30;\n  undefined4 uStack_14;\n  \n  bVar48 = 0;\n  uStack_14 = 0x1892b;\n  iVar12 = *(int *)(*(int *)((int)param_1 + 4) + 8);\n  if ((iVar12 != *(int *)(((int *)param_2)[1] + 8) && iVar12 != 2) &&\n     (*(int *)(((int *)param_2)[1] + 8) != 2)) {\n    uVar13 = dcgettext(0,"Unable to change endianness of input file(s)",5);\n    FUN_0002c910(uVar13);\n    return 0;\n  }\n  iVar12 = bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7);\n  if (iVar12 == 0) {\n    FUN_0002d3a0(0,param_2,0,0);\n    return 0;\n  }\n  if (*(int *)((int)param_1 + 0x60) == 0) {\n    uVar13 = FUN_0002d2a0(param_1);\n    pcVar25 = "error: the input file \'%s\' has no sections";\n    goto LAB_00018f38;\n  }\n  if ((*(undefined4 **)((int)param_1 + 4))[1] != 5) {\n    if ((DAT_00040b44 != 1) && ((DAT_00040b44 & 1) != 0)) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\nLAB_00018f38:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }\n    if (DAT_00040b40 != 0) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      goto LAB_00018f38;\n    }\n  }\n  if (DAT_00040bd0 != 0) {\n    uVar13 = **(undefined4 **)((int)param_1 + 4);\n    uVar14 = *(undefined4 *)((int *)param_2)[1];\n    iVar12 = *param_2;\n    uVar15 = FUN_0002d2a0(param_1);\n    pcVar25 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n    printf(pcVar25,uVar15,uVar13,iVar12,uVar14);\n  }\n  iVar12 = 0;\n  iVar31 = 0;\n  if (DAT_00040aec == 0) {\n    uVar39 = DAT_00040b88;\n    iVar31 = DAT_00040b8c;\n    if (DAT_00040b90 == 0) {\n      uVar39 = *(uint *)((int)param_1 + 0x70);\n      iVar31 = *(int *)((int)param_1 + 0x74);\n    }\n    iVar12 = uVar39 + DAT_00040b98;\n    iVar31 = iVar31 + DAT_00040b9c + (uint)CARRY4(uVar39,DAT_00040b98);\n  }\n  if ((*(byte *)((int *)param_2 + 10) & 7) != 3) {\n    uVar39 = ~DAT_00040b5c & *(uint *)(((int *)param_2)[1] + 0x10) &\n             (*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff | DAT_00040b60);\n    if (DAT_00040bb0 == 7) {\n      uVar39 = uVar39 & 0xfffffffe;\n    }\n    iVar12 = bfd_set_start_address(param_2,iVar12,iVar31);\n    if ((iVar12 == 0) || (iVar12 = bfd_set_file_flags(param_2,uVar39), iVar12 == 0))\n    goto LAB_00018b70;\n  }\n  uVar13 = bfd_get_arch(param_1);\n  uVar14 = bfd_get_mach(param_1);\n  if (param_3 != 0) {\n    iVar12 = bfd_get_arch_info(param_1);\n    if ((iVar12 == 0) || (iVar12 = bfd_get_arch_info(param_1), *(int *)(iVar12 + 0xc) == 0)) {\n      uVar13 = *(undefined4 *)(param_3 + 0xc);\n      uVar14 = *(undefined4 *)(param_3 + 0x10);\n    }\n    else {\n      uVar15 = FUN_0002d2a0(param_1);\n      uVar16 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n      FUN_0002c910(uVar16,uVar15);\n    }\n  }\n  iVar12 = (**(code **)(((int *)param_2)[1] + 0x154))(param_2,uVar13,uVar14);\n  if (iVar12 == 0) {\n    if ((*(byte *)((int)param_1 + 0x2b) & 4) != 0) {\nLAB_00018b20:\n      iVar12 = bfd_get_arch(param_1);\n      if (iVar12 == 0) {\n        uVar13 = FUN_0002d2a0(param_1);\n        pcVar25 = "Unable to recognise the format of the input file `%s\'";\n      }\n      else {\n        uVar13 = bfd_get_mach(param_1);\n        uVar14 = bfd_get_arch(param_1);\n        uVar13 = bfd_printable_arch_mach(uVar14,uVar13);\n        pcVar25 = "Output file cannot represent architecture `%s\'";\n      }\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }\n    iVar12 = bfd_get_arch(param_1);\n    iVar31 = bfd_get_arch(param_2);\n    if (iVar12 != iVar31) goto LAB_00018b20;\n  }\n  iVar12 = bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7);\n  if (iVar12 == 0) {\nLAB_00018b70:\n    FUN_0002d3a0(0,param_1,0,0);\n    return 0;\n  }\n  uVar39 = ((undefined4 *)((int *)param_2)[1])[1];\n  bVar46 = uVar39 < 2;\n  bVar47 = uVar39 == 2;\n  if (bVar47) {\n    iVar12 = 4;\n    pbVar36 = *(byte **)((int *)param_2)[1];\n    pbVar41 = &DAT_0002f16a;\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar46 = *pbVar36 < *pbVar41;\n      bVar47 = *pbVar36 == *pbVar41;\n      pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n      pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n    } while (bVar47);\n    if ((!bVar46 && !bVar47) == bVar46) {\n      iVar12 = ((int *)param_2)[0x28];\n      uVar39 = (*(undefined4 **)((int)param_1 + 4))[1];\n      bVar46 = uVar39 < 2;\n      bVar47 = uVar39 == 2;\n      if (bVar47) {\n        iVar31 = 4;\n        pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4);\n        pbVar41 = &DAT_0002f16a;\n        do {\n          if (iVar31 == 0) break;\n          iVar31 = iVar31 + -1;\n          bVar46 = *pbVar36 < *pbVar41;\n          bVar47 = *pbVar36 == *pbVar41;\n          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n        } while (bVar47);\n        if ((!bVar46 && !bVar47) == bVar46) {\n          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);\n          puVar42 = (undefined4 *)(iVar12 + 0x7c);\n          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }\n        }\n      }\n      uVar39 = DAT_000402b4;\n      if ((DAT_000402b4 & DAT_000402b0) == 0xffffffff) {\n        DAT_000402b0 = 0x200;\n        DAT_000402b4 = 0;\n      }\n      else {\n        *(uint *)(iVar12 + 0xb4) = DAT_000402b0;\n        *(uint *)(iVar12 + 0xb8) = uVar39;\n      }\n      uVar39 = DAT_000402ac;\n      if ((DAT_000402ac & DAT_000402a8) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a8;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_000402a4;\n      if ((DAT_000402a4 & DAT_000402a0) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a0;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_0004029c;\n      if ((DAT_0004029c & DAT_00040298) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xa4) = DAT_00040298;\n        *(uint *)(iVar12 + 0xa8) = uVar39;\n      }\n      uVar39 = DAT_00040294;\n      local_64 = (int *)DAT_00040290;\n      if ((DAT_00040290 & DAT_00040294) == 0xffffffff) {\n        DAT_00040290 = 0x1000;\n        uVar39 = 0;\n        DAT_00040294 = 0;\n        local_64 = (int *)0x1000;\n      }\n      else {\n        *(uint *)(iVar12 + 0xac) = DAT_00040290;\n        *(uint *)(iVar12 + 0xb0) = uVar39;\n      }\n      uVar17 = DAT_0004028c;\n      if ((DAT_0004028c & DAT_00040288) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040288;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      uVar17 = DAT_00040284;\n      if ((DAT_00040284 & DAT_00040280) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040280;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      if (DAT_0004027c != -1) {\n        *(short *)(iVar12 + 0xd8) = DAT_0004027c;\n      }\n      if (DAT_0004027a != -1) {\n        *(short *)(iVar12 + 0xc4) = DAT_0004027a;\n      }\n      if (DAT_00040278 != -1) {\n        *(short *)(iVar12 + 0xc6) = DAT_00040278;\n      }\n      if (uVar39 < DAT_000402b4 || uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0)) {\n        sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4);\n        sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294);\n        uVar13 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n        FUN_0002c910(uVar13,&local_4c,&local_34);\n      }\n    }\n  }\n  piVar19 = DAT_00040bdc;\n  if (DAT_00040bdc != (int *)0x0) {\n    free(DAT_00040bdc);\n  }\n  if (piVar19 != DAT_00040bd8) {\n    free(DAT_00040bd8);\n  }\n  DAT_00040bdc = (int *)0x0;\n  DAT_00040bd8 = (int *)0x0;\n  iVar12 = (**(code **)(*(int *)((int)param_1 + 4) + 0x104))(param_1);\n  if (iVar12 < 0) goto LAB_00018b70;\n  DAT_00040bd8 = (int *)xmalloc(iVar12);\n  DAT_00040bdc = DAT_00040bd8;\n  local_8c = (**(code **)(*(int *)((int)param_1 + 4) + 0x108))(param_1,DAT_00040bd8);\n  if (local_8c < 0) goto LAB_00018b70;\n  if (local_8c == 0) {\n    free(DAT_00040bdc);\n    DAT_00040bdc = (int *)0x0;\n    DAT_00040bd8 = (int *)0x0;\n  }\n  bfd_map_over_sections(param_1,FUN_00017af0,param_2);\n  puVar35 = DAT_00040b58;\n  if ((DAT_00040aec == 0) &&\n     (iVar12 = (**(code **)(((int *)param_2)[1] + 0xbc))(param_1,param_2), puVar35 = DAT_00040b58,\n     iVar12 == 0)) {\n    DAT_00040bc8 = 1;\n    uVar13 = dcgettext(0,"error in private header data",5);\n    FUN_0002d3a0(0,param_1,0,uVar13);\n    puVar35 = DAT_00040b58;\n  }\n  for (; puVar42 = DAT_00040b54, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)*puVar35) {\n    uVar39 = 0x128;\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      uVar39 = *(uint *)(iVar12 + 0x20) | 0x100;\n    }\n    iVar12 = bfd_get_section_by_name(param_2,puVar35[1]);\n    if (iVar12 != 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t add section \'%s\'";\nLAB_00019591:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n      return 0;\n    }\n    iVar12 = bfd_make_section_with_flags(param_2,puVar35[1],uVar39 | 0x100000);\n    puVar35[5] = iVar12;\n    if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t create section `%s\'";\n      goto LAB_00019591;\n    }\n    iVar12 = bfd_set_section_size(param_2,iVar12,puVar35[3],0);\n    if (iVar12 == 0) goto LAB_00019d5e;\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x14);\n      uVar14 = *(undefined4 *)(iVar12 + 0x10);\n      *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      *(undefined4 *)(iVar31 + 0x24) = uVar14;\n      *(undefined4 *)(iVar31 + 0x28) = uVar13;\n      *(undefined4 *)(iVar31 + 0x1c) = uVar14;\n      *(undefined4 *)(iVar31 + 0x20) = uVar13;\n    }\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x18);\n      *(undefined4 *)(iVar31 + 0x28) = *(undefined4 *)(iVar12 + 0x1c);\n      *(undefined4 *)(iVar31 + 0x24) = uVar13;\n    }\n  }\n  for (; local_6c = param_2, puVar42 != (undefined4 *)0x0; puVar42 = (undefined4 *)*puVar42) {\n    iVar12 = bfd_get_section_by_name(param_1,puVar42[1]);\n    puVar42[5] = iVar12;\n    if (iVar12 == 0) {\n      uVar13 = puVar42[1];\n      pcVar25 = "error: %s not found, can\'t be updated";\n      goto LAB_00018f38;\n    }\n    psVar43 = *(size_t **)(iVar12 + 0x54);\n    iVar12 = bfd_set_section_size(param_2,psVar43,puVar42[3],0);\n    if (iVar12 == 0) goto LAB_00019fa0;\n  }\n  if ((((DAT_00040bc4 != 0) &&\n       (iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0)) &&\n      (DAT_00040bc4 != 0)) &&\n     ((*(int *)(*(int *)((int)param_1 + 4) + 4) == 5 && (iVar31 = FUN_000176d0(), iVar31 != 0)))) {\n    uVar39 = *(uint *)(iVar12 + 0x30);\n    sVar22 = *(size_t *)(iVar12 + 0x2c);\n    if (uVar39 == 0 && sVar22 == 0) {\n      uVar13 = dcgettext(0,"warning: note section is empty",5,sVar22);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n      DAT_00040bc4 = 0;\n    }\n    else {\n      iVar31 = bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22);\n      pvVar6 = DAT_00040bc0;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"warning: could not load note section",5,0);\n        FUN_0002d3a0(0,param_1,iVar12,uVar13);\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n      }\n      else {\n        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);\n        sVar23 = extraout_ECX_01;\n        pvVar26 = param_1;\n        if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar52 = (void *)0x30;\n        sVar53 = sVar23;\n        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);\n        local_74 = (size_t *)xcalloc(uVar13);\n        local_bc = 0;\n        sVar54 = 0;\n        local_b8 = 0;\n        sVar55 = 0;\n        local_84 = (int *)0x0;\n        local_a8 = (size_t *)0x0;\n        local_a4 = 0;\n        pvVar26 = pvVar6;\n        psVar43 = local_74;\n        local_7c = sVar22;\n        local_78 = uVar39;\n        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }\n        if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        DAT_00040bb8 = 0;\n        DAT_00040bbc = 0;\n      }\n    }\n  }\nLAB_00018e0e:\n  param_2 = local_6c;\n  iVar31 = DAT_00040b4c;\n  for (puVar35 = DAT_00040b50; DAT_00040b4c = iVar31, puVar35 != (undefined4 *)0x0;\n      puVar35 = (undefined4 *)*puVar35) {\n    iVar12 = bfd_get_section_by_name(param_1,puVar35[1]);\n    if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      uVar14 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n      FUN_0002d3a0(0,param_1,0,uVar14,uVar13);\n    }\n    else {\n      if ((*(byte *)(iVar12 + 0x15) & 1) == 0) {\n        pcVar25 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar22 = *(size_t *)(iVar12 + 0x2c);\n        iVar31 = *(int *)(iVar12 + 0x30);\n        if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar25 = "can\'t dump section - it is empty";\n      }\n      uVar13 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n    }\nLAB_00018eb1:\n    iVar31 = DAT_00040b4c;\n  }\n  if (iVar31 != 0) {\n    iVar12 = bfd_get_section_by_name(local_6c,".gnu_debuglink");\n    if (iVar12 == 0) {\n      iVar31 = bfd_create_gnu_debuglink_section(local_6c,DAT_00040b4c);\n      iVar12 = DAT_00040b4c;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,local_6c,0,uVar13,iVar12);\n        return 0;\n      }\n      if (*(int *)(local_6c[1] + 4) == 2) {\n        iVar12 = local_6c[0x18];\n        iVar18 = 0;\n        if (iVar12 == 0) {\nLAB_0001aa69:\n          uVar39 = 0x1000;\n          iVar12 = 0;\n        }\n        else {\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(iVar31 + 0x24) = uVar39;\n        *(int *)(iVar31 + 0x28) = iVar12;\n        *(uint *)(iVar31 + 0x1c) = uVar39;\n        *(int *)(iVar31 + 0x20) = iVar12;\n        *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      }\n    }\n    else {\n      iVar12 = *local_6c;\n      uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n      FUN_0002c910(uVar13,iVar12);\n      DAT_00040b4c = 0;\n      iVar31 = 0;\n    }\n  }\n  sVar22 = local_6c[0x1a];\n  if ((sVar22 == 0) || (DAT_00040b78 == 0 && DAT_00040b70 == 0)) {\n    local_b8 = 0;\n    local_bc = 0;\n    local_b4 = (void *)0x0;\n    local_a8 = (size_t *)0x0;\n    uVar39 = local_bc;\n    uVar17 = local_b8;\n  }\n  else {\n    local_a8 = (size_t *)xmalloc(sVar22 * 4);\n    local_34 = (int *)local_a8;\n    bfd_map_over_sections(local_6c,FUN_00016800,&local_34);\n    qsort(local_a8,sVar22,4,FUN_00016820);\n    sVar23 = sVar22 * 8;\n    local_b4 = (void *)xmalloc(sVar23);\n    memset(local_b4,0,sVar23);\n    if ((DAT_00040b78 == 0) || (sVar22 == 1)) {\n      local_b8 = 0;\n      local_bc = 0;\n    }\n    else {\n      local_b8 = 0;\n      local_bc = 0;\n      local_6c = (size_t *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (size_t *)((int)local_6c + 1);\n        iVar12 = *local_64;\n        uVar39 = local_bc;\n        uVar17 = local_b8;\n        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }\n        local_b8 = uVar17;\n        local_bc = uVar39;\n        local_64 = local_64 + 1;\n      } while ((size_t *)(sVar22 - 1) != local_6c);\n    }\n    uVar39 = local_bc;\n    uVar17 = local_b8;\n    if (DAT_00040b70 != 0) {\n      iVar12 = ((int *)local_a8)[sVar22 - 1];\n      uVar27 = *(uint *)(iVar12 + 0x24);\n      uVar37 = uVar27 + *(uint *)(iVar12 + 0x2c);\n      uVar44 = *(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +\n               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c));\n      if (uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)) {\n        iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           );\n        if (iVar12 == 0) {\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }\n        else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }\n      }\n    }\n  }\n  local_b8 = uVar17;\n  local_bc = uVar39;\n  iVar12 = 0;\n  if (DAT_00040b48 != 0) {\n    iVar12 = FUN_0001c9c0(param_1,DAT_00040bdc,local_8c,0);\n  }\n  if (DAT_00040bb0 - 2U < 6) {\nLAB_0001962a:\n    if (DAT_00040bb0 != 7) goto LAB_0001962f;\n  }\n  else {\n    if (DAT_00040b30 == 0 && DAT_00040bac == 0) {\n      iVar18 = htab_elements(DAT_00040b2c);\n      if ((((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&\n         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))))\n      goto LAB_00019e4d;\n      goto LAB_0001962a;\n    }\nLAB_0001962f:\n    bfd_set_error(0);\n    bfd_map_over_sections(param_1,FUN_000187a0,DAT_00040bdc);\n    iVar18 = bfd_get_error();\n    if (iVar18 != 0) {\n      DAT_00040bc8 = 1;\n      return 0;\n    }\n  }\n  piVar19 = (int *)xmalloc((DAT_00040b04 + local_8c) * 4 + 4);\n  local_84 = DAT_00040bdc;\n  uVar39 = *(uint *)((int)param_1 + 0x28);\n  DAT_00040bd8 = piVar19;\n  if (local_8c != 0) {\n    piVar1 = DAT_00040bdc + local_8c;\n    local_8c = 0;\n    puVar20 = PTR__bfd_std_section_0003ffc8 + 0xc0;\n    do {\n      iVar18 = DAT_00040b04;\n      piVar4 = (int *)*local_84;\n      uVar17 = piVar4[4];\n      piVar24 = (int *)piVar4[1];\n      puVar5 = (undefined *)piVar4[5];\n      if (((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) &&\n         (pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0)) {\n        local_6c = (size_t *)0x0;\n        piVar34 = DAT_00040b08;\n        while (iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0) {\n          local_6c = (size_t *)((int)local_6c + 1);\n          piVar34 = (int *)*piVar34;\n          if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar25);\n        piVar34[5] = (int)"";\n        piVar34 = piVar19 + local_8c;\n        local_8c = local_8c + 1;\n        iVar18 = FUN_00017920();\n        *piVar34 = iVar18;\n      }\nLAB_000197a8:\n      iVar18 = htab_elements(DAT_00040b10);\n      piVar34 = piVar24;\n      if ((iVar18 != 0) || (DAT_00040be0 != (undefined4 *)0x0)) {\n        local_30 = 0;\n        local_34 = piVar24;\n        iVar18 = htab_find(DAT_00040b10,&local_34);\n        if (((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)) {\n          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }\n        }\n        piVar4[1] = (int)piVar34;\n      }\n      pcVar25 = DAT_00040af8;\n      cVar2 = *(char *)(*(int *)((int)param_1 + 4) + 0x18);\n      if ((char)*piVar34 == cVar2) {\n        if (DAT_00040b3c == 0) {\n          if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }\nLAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }\n      }\n      else {\n        if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))\n        goto LAB_0001982b;\nLAB_00019ab1:\n        sVar22 = strlen(pcVar25);\n        sVar23 = strlen((char *)piVar34);\n        piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n        local_6c = (size_t *)((int)piVar24 + 1);\n        *(char *)piVar24 = *(char *)(param_2[1] + 0x18);\nLAB_00019858:\n        pcVar25 = DAT_00040af8;\n        if (DAT_00040af8 != (char *)0x0) {\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }\n        strcpy((char *)local_6c,(char *)piVar34);\n        piVar4[1] = (int)piVar24;\n        piVar34 = piVar24;\n      }\n      if (DAT_00040bb0 == 7) goto LAB_00019928;\n      if ((uVar17 & 0x20) == 0) {\n        if (((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)) {\n          if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;\n        }\n        else {\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;\n      }\n      else {\n        iVar18 = FUN_000179c0();\n        if (iVar18 != 0) {\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }\nLAB_0001994f:\n        iVar18 = FUN_00017a30();\n        if (iVar18 == 0) {\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }\n      }\n      local_84 = local_84 + 1;\n    } while (piVar1 != local_84);\n  }\n  local_6c = (size_t *)DAT_00040b08;\n  if ((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) {\n    iVar18 = 0;\n    do {\n      pcVar25 = (char *)local_6c[5];\n      if (pcVar25 == (char *)0x0) {\n        iVar21 = FUN_00017920();\n        piVar19[local_8c] = iVar21;\n        local_8c = local_8c + 1;\n      }\n      else if (*pcVar25 != '\0') {\n        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    /* WARNING: Subroutine does not return */\n        FUN_0002c8e0(uVar13,pcVar25);\n      }\n      iVar18 = iVar18 + 1;\n      local_6c = (size_t *)*local_6c;\n    } while (iVar18 < DAT_00040b04);\n  }\n  piVar19[local_8c] = 0;\n  if ((DAT_00040b48 != 0) && (iVar12 != 0)) {\n    iVar18 = ((undefined4 *)param_2[1])[1];\n    if ((iVar18 == 2) || (iVar18 == 5)) {\n      iVar12 = FUN_0002c240(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34);\n      if (iVar12 != 0) {\n        iVar12 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n        iVar18 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n        if ((((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)) {\n          pcVar25 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }\n        uVar13 = dcgettext(0,pcVar25,5,iVar12);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n      }\n    }\n    else {\n      uVar13 = *(undefined4 *)param_2[1];\n      uVar14 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n    }\n    DAT_00040bc8 = 1;\n    return 0;\n  }\nLAB_00019e4d:\n  bfd_set_symtab(param_2,DAT_00040bd8,local_8c);\n  bfd_map_over_sections(param_1,FUN_00018500,param_2);\n  bfd_map_over_sections(param_1,FUN_00018070,param_2);\n  for (puVar35 = DAT_00040b58; psVar43 = param_2, puVar42 = DAT_00040b54,\n      puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)*puVar35) {\n    iVar12 = bfd_set_section_contents(param_2,puVar35[5],puVar35[4],0,0,puVar35[3],0);\n    if (iVar12 == 0) {\nLAB_00019d5e:\n      FUN_0002d3a0(0,param_2,puVar35[5],0);\n      return 0;\n    }\n  }\n  while( true ) {\n    if (puVar42 == (undefined4 *)0x0) {\n      uVar39 = 0;\n      if (DAT_00040bc4 != 0) {\n        uVar39 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n        if (((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))) {\n          if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }\n        }\n        else {\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        psVar43 = param_2;\n      }\n      if ((DAT_00040b4c != 0) &&\n         (iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0)) {\n        uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,param_2,0,uVar13,iVar12);\n        return 0;\n      }\n      if (DAT_00040b78 != 0 || DAT_00040b70 != 0) {\n        uVar39 = 0x2000;\n        if (local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc) {\n          uVar39 = local_b8;\n        }\n        piVar19 = (int *)xmalloc(uVar39);\n        iVar12 = (uint)DAT_00040b74 * 0x1010101;\n        if (uVar39 < 4) {\n          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }\n        }\n        else {\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }\n        iVar12 = param_2[0x1a];\n        if (iVar12 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);\n        }\n      }\n      iVar12 = (**(code **)(param_2[1] + 0xa8))(param_1,param_2);\n      if (iVar12 == 0) {\n        uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n        return 0;\n      }\n      if ((DAT_00040b64 != 0) &&\n         (iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0)) {\n        uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)\n        ;\n        FUN_0002c910(uVar13,iVar12);\n        if (*(int *)(param_2[1] + 4) != 5) {\n          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          FUN_0002c910(uVar13);\n          return 1;\n        }\n        uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)\n        ;\n        FUN_0002c910(uVar13);\n        *(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64;\n      }\n      return 1;\n    }\n    psVar43 = *(size_t **)(puVar42[5] + 0x54);\n    iVar12 = bfd_set_section_contents(param_2,psVar43,puVar42[4],0,0,puVar42[3],0);\n    local_6c = param_2;\n    if (iVar12 == 0) break;\n    puVar42 = (undefined4 *)*puVar42;\n  }\nLAB_00019fa0:\n  FUN_0002d3a0(0,local_6c,psVar43,0);\n  return iVar12;\nLAB_0001b1a6:\n  if ((undefined1 *)((int)pvVar32 + sVar54) <= puVar45) goto LAB_0001b1aa;\n  *puVar45 = (char)uVar17;\n  if (uVar17 == 0) goto LAB_0001b1aa;\n  uVar17 = uVar17 >> 8;\n  puVar45 = puVar45 + 1;\n  goto LAB_0001b1a6;\nLAB_0001b1aa:\n  bVar46 = true;\n  psVar9[0xe] = 0;\n  goto LAB_0001afd1;\n}\n\n" comment comment (function_definition "int __regparm3 FUN_00018920(void *param_1,size_t *param_2,int param_3)\n\n{\n  int *piVar1;\n  char cVar2;\n  byte bVar3;\n  int *piVar4;\n  undefined *puVar5;\n  void *pvVar6;\n  size_t sVar7;\n  code *pcVar8;\n  size_t *psVar9;\n  size_t *psVar10;\n  size_t *psVar11;\n  int iVar12;\n  undefined4 uVar13;\n  undefined4 uVar14;\n  FILE *__s;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  uint uVar17;\n  int iVar18;\n  int *piVar19;\n  undefined *puVar20;\n  int iVar21;\n  size_t sVar22;\n  size_t sVar23;\n  int *piVar24;\n  char *pcVar25;\n  void *pvVar26;\n  uint uVar27;\n  size_t sVar28;\n  size_t sVar29;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  size_t extraout_ECX_01;\n  size_t extraout_ECX_02;\n  size_t sVar30;\n  int iVar31;\n  void *pvVar32;\n  uint uVar33;\n  int *piVar34;\n  undefined4 *puVar35;\n  byte *pbVar36;\n  uint uVar37;\n  size_t *psVar38;\n  uint uVar39;\n  uint uVar40;\n  byte *pbVar41;\n  undefined4 *puVar42;\n  size_t *psVar43;\n  uint uVar44;\n  undefined1 *puVar45;\n  bool bVar46;\n  bool bVar47;\n  byte bVar48;\n  undefined8 uVar49;\n  longlong lVar50;\n  longlong lVar51;\n  void *pvVar52;\n  size_t sVar53;\n  void *__dest;\n  size_t sVar54;\n  size_t sVar55;\n  uint local_bc;\n  uint local_b8;\n  void *local_b4;\n  size_t *local_a8;\n  int local_a4;\n  int local_8c;\n  int *local_84;\n  uint local_7c;\n  uint local_78;\n  size_t *local_74;\n  size_t *local_6c;\n  int local_68;\n  int *local_64;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  int *local_34;\n  undefined4 local_30;\n  undefined4 uStack_14;\n  \n  bVar48 = 0;\n  uStack_14 = 0x1892b;\n  iVar12 = *(int *)(*(int *)((int)param_1 + 4) + 8);\n  if ((iVar12 != *(int *)(((int *)param_2)[1] + 8) && iVar12 != 2) &&\n     (*(int *)(((int *)param_2)[1] + 8) != 2)) {\n    uVar13 = dcgettext(0,"Unable to change endianness of input file(s)",5);\n    FUN_0002c910(uVar13);\n    return 0;\n  }\n  iVar12 = bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7);\n  if (iVar12 == 0) {\n    FUN_0002d3a0(0,param_2,0,0);\n    return 0;\n  }\n  if (*(int *)((int)param_1 + 0x60) == 0) {\n    uVar13 = FUN_0002d2a0(param_1);\n    pcVar25 = "error: the input file \'%s\' has no sections";\n    goto LAB_00018f38;\n  }\n  if ((*(undefined4 **)((int)param_1 + 4))[1] != 5) {\n    if ((DAT_00040b44 != 1) && ((DAT_00040b44 & 1) != 0)) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\nLAB_00018f38:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }\n    if (DAT_00040b40 != 0) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      goto LAB_00018f38;\n    }\n  }\n  if (DAT_00040bd0 != 0) {\n    uVar13 = **(undefined4 **)((int)param_1 + 4);\n    uVar14 = *(undefined4 *)((int *)param_2)[1];\n    iVar12 = *param_2;\n    uVar15 = FUN_0002d2a0(param_1);\n    pcVar25 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n    printf(pcVar25,uVar15,uVar13,iVar12,uVar14);\n  }\n  iVar12 = 0;\n  iVar31 = 0;\n  if (DAT_00040aec == 0) {\n    uVar39 = DAT_00040b88;\n    iVar31 = DAT_00040b8c;\n    if (DAT_00040b90 == 0) {\n      uVar39 = *(uint *)((int)param_1 + 0x70);\n      iVar31 = *(int *)((int)param_1 + 0x74);\n    }\n    iVar12 = uVar39 + DAT_00040b98;\n    iVar31 = iVar31 + DAT_00040b9c + (uint)CARRY4(uVar39,DAT_00040b98);\n  }\n  if ((*(byte *)((int *)param_2 + 10) & 7) != 3) {\n    uVar39 = ~DAT_00040b5c & *(uint *)(((int *)param_2)[1] + 0x10) &\n             (*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff | DAT_00040b60);\n    if (DAT_00040bb0 == 7) {\n      uVar39 = uVar39 & 0xfffffffe;\n    }\n    iVar12 = bfd_set_start_address(param_2,iVar12,iVar31);\n    if ((iVar12 == 0) || (iVar12 = bfd_set_file_flags(param_2,uVar39), iVar12 == 0))\n    goto LAB_00018b70;\n  }\n  uVar13 = bfd_get_arch(param_1);\n  uVar14 = bfd_get_mach(param_1);\n  if (param_3 != 0) {\n    iVar12 = bfd_get_arch_info(param_1);\n    if ((iVar12 == 0) || (iVar12 = bfd_get_arch_info(param_1), *(int *)(iVar12 + 0xc) == 0)) {\n      uVar13 = *(undefined4 *)(param_3 + 0xc);\n      uVar14 = *(undefined4 *)(param_3 + 0x10);\n    }\n    else {\n      uVar15 = FUN_0002d2a0(param_1);\n      uVar16 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n      FUN_0002c910(uVar16,uVar15);\n    }\n  }\n  iVar12 = (**(code **)(((int *)param_2)[1] + 0x154))(param_2,uVar13,uVar14);\n  if (iVar12 == 0) {\n    if ((*(byte *)((int)param_1 + 0x2b) & 4) != 0) {\nLAB_00018b20:\n      iVar12 = bfd_get_arch(param_1);\n      if (iVar12 == 0) {\n        uVar13 = FUN_0002d2a0(param_1);\n        pcVar25 = "Unable to recognise the format of the input file `%s\'";\n      }\n      else {\n        uVar13 = bfd_get_mach(param_1);\n        uVar14 = bfd_get_arch(param_1);\n        uVar13 = bfd_printable_arch_mach(uVar14,uVar13);\n        pcVar25 = "Output file cannot represent architecture `%s\'";\n      }\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }\n    iVar12 = bfd_get_arch(param_1);\n    iVar31 = bfd_get_arch(param_2);\n    if (iVar12 != iVar31) goto LAB_00018b20;\n  }\n  iVar12 = bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7);\n  if (iVar12 == 0) {\nLAB_00018b70:\n    FUN_0002d3a0(0,param_1,0,0);\n    return 0;\n  }\n  uVar39 = ((undefined4 *)((int *)param_2)[1])[1];\n  bVar46 = uVar39 < 2;\n  bVar47 = uVar39 == 2;\n  if (bVar47) {\n    iVar12 = 4;\n    pbVar36 = *(byte **)((int *)param_2)[1];\n    pbVar41 = &DAT_0002f16a;\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar46 = *pbVar36 < *pbVar41;\n      bVar47 = *pbVar36 == *pbVar41;\n      pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n      pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n    } while (bVar47);\n    if ((!bVar46 && !bVar47) == bVar46) {\n      iVar12 = ((int *)param_2)[0x28];\n      uVar39 = (*(undefined4 **)((int)param_1 + 4))[1];\n      bVar46 = uVar39 < 2;\n      bVar47 = uVar39 == 2;\n      if (bVar47) {\n        iVar31 = 4;\n        pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4);\n        pbVar41 = &DAT_0002f16a;\n        do {\n          if (iVar31 == 0) break;\n          iVar31 = iVar31 + -1;\n          bVar46 = *pbVar36 < *pbVar41;\n          bVar47 = *pbVar36 == *pbVar41;\n          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n        } while (bVar47);\n        if ((!bVar46 && !bVar47) == bVar46) {\n          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);\n          puVar42 = (undefined4 *)(iVar12 + 0x7c);\n          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }\n        }\n      }\n      uVar39 = DAT_000402b4;\n      if ((DAT_000402b4 & DAT_000402b0) == 0xffffffff) {\n        DAT_000402b0 = 0x200;\n        DAT_000402b4 = 0;\n      }\n      else {\n        *(uint *)(iVar12 + 0xb4) = DAT_000402b0;\n        *(uint *)(iVar12 + 0xb8) = uVar39;\n      }\n      uVar39 = DAT_000402ac;\n      if ((DAT_000402ac & DAT_000402a8) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a8;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_000402a4;\n      if ((DAT_000402a4 & DAT_000402a0) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a0;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_0004029c;\n      if ((DAT_0004029c & DAT_00040298) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xa4) = DAT_00040298;\n        *(uint *)(iVar12 + 0xa8) = uVar39;\n      }\n      uVar39 = DAT_00040294;\n      local_64 = (int *)DAT_00040290;\n      if ((DAT_00040290 & DAT_00040294) == 0xffffffff) {\n        DAT_00040290 = 0x1000;\n        uVar39 = 0;\n        DAT_00040294 = 0;\n        local_64 = (int *)0x1000;\n      }\n      else {\n        *(uint *)(iVar12 + 0xac) = DAT_00040290;\n        *(uint *)(iVar12 + 0xb0) = uVar39;\n      }\n      uVar17 = DAT_0004028c;\n      if ((DAT_0004028c & DAT_00040288) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040288;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      uVar17 = DAT_00040284;\n      if ((DAT_00040284 & DAT_00040280) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040280;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      if (DAT_0004027c != -1) {\n        *(short *)(iVar12 + 0xd8) = DAT_0004027c;\n      }\n      if (DAT_0004027a != -1) {\n        *(short *)(iVar12 + 0xc4) = DAT_0004027a;\n      }\n      if (DAT_00040278 != -1) {\n        *(short *)(iVar12 + 0xc6) = DAT_00040278;\n      }\n      if (uVar39 < DAT_000402b4 || uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0)) {\n        sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4);\n        sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294);\n        uVar13 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n        FUN_0002c910(uVar13,&local_4c,&local_34);\n      }\n    }\n  }\n  piVar19 = DAT_00040bdc;\n  if (DAT_00040bdc != (int *)0x0) {\n    free(DAT_00040bdc);\n  }\n  if (piVar19 != DAT_00040bd8) {\n    free(DAT_00040bd8);\n  }\n  DAT_00040bdc = (int *)0x0;\n  DAT_00040bd8 = (int *)0x0;\n  iVar12 = (**(code **)(*(int *)((int)param_1 + 4) + 0x104))(param_1);\n  if (iVar12 < 0) goto LAB_00018b70;\n  DAT_00040bd8 = (int *)xmalloc(iVar12);\n  DAT_00040bdc = DAT_00040bd8;\n  local_8c = (**(code **)(*(int *)((int)param_1 + 4) + 0x108))(param_1,DAT_00040bd8);\n  if (local_8c < 0) goto LAB_00018b70;\n  if (local_8c == 0) {\n    free(DAT_00040bdc);\n    DAT_00040bdc = (int *)0x0;\n    DAT_00040bd8 = (int *)0x0;\n  }\n  bfd_map_over_sections(param_1,FUN_00017af0,param_2);\n  puVar35 = DAT_00040b58;\n  if ((DAT_00040aec == 0) &&\n     (iVar12 = (**(code **)(((int *)param_2)[1] + 0xbc))(param_1,param_2), puVar35 = DAT_00040b58,\n     iVar12 == 0)) {\n    DAT_00040bc8 = 1;\n    uVar13 = dcgettext(0,"error in private header data",5);\n    FUN_0002d3a0(0,param_1,0,uVar13);\n    puVar35 = DAT_00040b58;\n  }\n  for (; puVar42 = DAT_00040b54, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)*puVar35) {\n    uVar39 = 0x128;\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      uVar39 = *(uint *)(iVar12 + 0x20) | 0x100;\n    }\n    iVar12 = bfd_get_section_by_name(param_2,puVar35[1]);\n    if (iVar12 != 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t add section \'%s\'";\nLAB_00019591:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n      return 0;\n    }\n    iVar12 = bfd_make_section_with_flags(param_2,puVar35[1],uVar39 | 0x100000);\n    puVar35[5] = iVar12;\n    if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t create section `%s\'";\n      goto LAB_00019591;\n    }\n    iVar12 = bfd_set_section_size(param_2,iVar12,puVar35[3],0);\n    if (iVar12 == 0) goto LAB_00019d5e;\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x14);\n      uVar14 = *(undefined4 *)(iVar12 + 0x10);\n      *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      *(undefined4 *)(iVar31 + 0x24) = uVar14;\n      *(undefined4 *)(iVar31 + 0x28) = uVar13;\n      *(undefined4 *)(iVar31 + 0x1c) = uVar14;\n      *(undefined4 *)(iVar31 + 0x20) = uVar13;\n    }\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x18);\n      *(undefined4 *)(iVar31 + 0x28) = *(undefined4 *)(iVar12 + 0x1c);\n      *(undefined4 *)(iVar31 + 0x24) = uVar13;\n    }\n  }\n  for (; local_6c = param_2, puVar42 != (undefined4 *)0x0; puVar42 = (undefined4 *)*puVar42) {\n    iVar12 = bfd_get_section_by_name(param_1,puVar42[1]);\n    puVar42[5] = iVar12;\n    if (iVar12 == 0) {\n      uVar13 = puVar42[1];\n      pcVar25 = "error: %s not found, can\'t be updated";\n      goto LAB_00018f38;\n    }\n    psVar43 = *(size_t **)(iVar12 + 0x54);\n    iVar12 = bfd_set_section_size(param_2,psVar43,puVar42[3],0);\n    if (iVar12 == 0) goto LAB_00019fa0;\n  }\n  if ((((DAT_00040bc4 != 0) &&\n       (iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0)) &&\n      (DAT_00040bc4 != 0)) &&\n     ((*(int *)(*(int *)((int)param_1 + 4) + 4) == 5 && (iVar31 = FUN_000176d0(), iVar31 != 0)))) {\n    uVar39 = *(uint *)(iVar12 + 0x30);\n    sVar22 = *(size_t *)(iVar12 + 0x2c);\n    if (uVar39 == 0 && sVar22 == 0) {\n      uVar13 = dcgettext(0,"warning: note section is empty",5,sVar22);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n      DAT_00040bc4 = 0;\n    }\n    else {\n      iVar31 = bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22);\n      pvVar6 = DAT_00040bc0;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"warning: could not load note section",5,0);\n        FUN_0002d3a0(0,param_1,iVar12,uVar13);\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n      }\n      else {\n        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);\n        sVar23 = extraout_ECX_01;\n        pvVar26 = param_1;\n        if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar52 = (void *)0x30;\n        sVar53 = sVar23;\n        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);\n        local_74 = (size_t *)xcalloc(uVar13);\n        local_bc = 0;\n        sVar54 = 0;\n        local_b8 = 0;\n        sVar55 = 0;\n        local_84 = (int *)0x0;\n        local_a8 = (size_t *)0x0;\n        local_a4 = 0;\n        pvVar26 = pvVar6;\n        psVar43 = local_74;\n        local_7c = sVar22;\n        local_78 = uVar39;\n        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }\n        if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        DAT_00040bb8 = 0;\n        DAT_00040bbc = 0;\n      }\n    }\n  }\nLAB_00018e0e:\n  param_2 = local_6c;\n  iVar31 = DAT_00040b4c;\n  for (puVar35 = DAT_00040b50; DAT_00040b4c = iVar31, puVar35 != (undefined4 *)0x0;\n      puVar35 = (undefined4 *)*puVar35) {\n    iVar12 = bfd_get_section_by_name(param_1,puVar35[1]);\n    if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      uVar14 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n      FUN_0002d3a0(0,param_1,0,uVar14,uVar13);\n    }\n    else {\n      if ((*(byte *)(iVar12 + 0x15) & 1) == 0) {\n        pcVar25 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar22 = *(size_t *)(iVar12 + 0x2c);\n        iVar31 = *(int *)(iVar12 + 0x30);\n        if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar25 = "can\'t dump section - it is empty";\n      }\n      uVar13 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n    }\nLAB_00018eb1:\n    iVar31 = DAT_00040b4c;\n  }\n  if (iVar31 != 0) {\n    iVar12 = bfd_get_section_by_name(local_6c,".gnu_debuglink");\n    if (iVar12 == 0) {\n      iVar31 = bfd_create_gnu_debuglink_section(local_6c,DAT_00040b4c);\n      iVar12 = DAT_00040b4c;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,local_6c,0,uVar13,iVar12);\n        return 0;\n      }\n      if (*(int *)(local_6c[1] + 4) == 2) {\n        iVar12 = local_6c[0x18];\n        iVar18 = 0;\n        if (iVar12 == 0) {\nLAB_0001aa69:\n          uVar39 = 0x1000;\n          iVar12 = 0;\n        }\n        else {\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(iVar31 + 0x24) = uVar39;\n        *(int *)(iVar31 + 0x28) = iVar12;\n        *(uint *)(iVar31 + 0x1c) = uVar39;\n        *(int *)(iVar31 + 0x20) = iVar12;\n        *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      }\n    }\n    else {\n      iVar12 = *local_6c;\n      uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n      FUN_0002c910(uVar13,iVar12);\n      DAT_00040b4c = 0;\n      iVar31 = 0;\n    }\n  }\n  sVar22 = local_6c[0x1a];\n  if ((sVar22 == 0) || (DAT_00040b78 == 0 && DAT_00040b70 == 0)) {\n    local_b8 = 0;\n    local_bc = 0;\n    local_b4 = (void *)0x0;\n    local_a8 = (size_t *)0x0;\n    uVar39 = local_bc;\n    uVar17 = local_b8;\n  }\n  else {\n    local_a8 = (size_t *)xmalloc(sVar22 * 4);\n    local_34 = (int *)local_a8;\n    bfd_map_over_sections(local_6c,FUN_00016800,&local_34);\n    qsort(local_a8,sVar22,4,FUN_00016820);\n    sVar23 = sVar22 * 8;\n    local_b4 = (void *)xmalloc(sVar23);\n    memset(local_b4,0,sVar23);\n    if ((DAT_00040b78 == 0) || (sVar22 == 1)) {\n      local_b8 = 0;\n      local_bc = 0;\n    }\n    else {\n      local_b8 = 0;\n      local_bc = 0;\n      local_6c = (size_t *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (size_t *)((int)local_6c + 1);\n        iVar12 = *local_64;\n        uVar39 = local_bc;\n        uVar17 = local_b8;\n        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }\n        local_b8 = uVar17;\n        local_bc = uVar39;\n        local_64 = local_64 + 1;\n      } while ((size_t *)(sVar22 - 1) != local_6c);\n    }\n    uVar39 = local_bc;\n    uVar17 = local_b8;\n    if (DAT_00040b70 != 0) {\n      iVar12 = ((int *)local_a8)[sVar22 - 1];\n      uVar27 = *(uint *)(iVar12 + 0x24);\n      uVar37 = uVar27 + *(uint *)(iVar12 + 0x2c);\n      uVar44 = *(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +\n               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c));\n      if (uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)) {\n        iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           );\n        if (iVar12 == 0) {\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }\n        else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }\n      }\n    }\n  }\n  local_b8 = uVar17;\n  local_bc = uVar39;\n  iVar12 = 0;\n  if (DAT_00040b48 != 0) {\n    iVar12 = FUN_0001c9c0(param_1,DAT_00040bdc,local_8c,0);\n  }\n  if (DAT_00040bb0 - 2U < 6) {\nLAB_0001962a:\n    if (DAT_00040bb0 != 7) goto LAB_0001962f;\n  }\n  else {\n    if (DAT_00040b30 == 0 && DAT_00040bac == 0) {\n      iVar18 = htab_elements(DAT_00040b2c);\n      if ((((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&\n         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))))\n      goto LAB_00019e4d;\n      goto LAB_0001962a;\n    }\nLAB_0001962f:\n    bfd_set_error(0);\n    bfd_map_over_sections(param_1,FUN_000187a0,DAT_00040bdc);\n    iVar18 = bfd_get_error();\n    if (iVar18 != 0) {\n      DAT_00040bc8 = 1;\n      return 0;\n    }\n  }\n  piVar19 = (int *)xmalloc((DAT_00040b04 + local_8c) * 4 + 4);\n  local_84 = DAT_00040bdc;\n  uVar39 = *(uint *)((int)param_1 + 0x28);\n  DAT_00040bd8 = piVar19;\n  if (local_8c != 0) {\n    piVar1 = DAT_00040bdc + local_8c;\n    local_8c = 0;\n    puVar20 = PTR__bfd_std_section_0003ffc8 + 0xc0;\n    do {\n      iVar18 = DAT_00040b04;\n      piVar4 = (int *)*local_84;\n      uVar17 = piVar4[4];\n      piVar24 = (int *)piVar4[1];\n      puVar5 = (undefined *)piVar4[5];\n      if (((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) &&\n         (pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0)) {\n        local_6c = (size_t *)0x0;\n        piVar34 = DAT_00040b08;\n        while (iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0) {\n          local_6c = (size_t *)((int)local_6c + 1);\n          piVar34 = (int *)*piVar34;\n          if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar25);\n        piVar34[5] = (int)"";\n        piVar34 = piVar19 + local_8c;\n        local_8c = local_8c + 1;\n        iVar18 = FUN_00017920();\n        *piVar34 = iVar18;\n      }\nLAB_000197a8:\n      iVar18 = htab_elements(DAT_00040b10);\n      piVar34 = piVar24;\n      if ((iVar18 != 0) || (DAT_00040be0 != (undefined4 *)0x0)) {\n        local_30 = 0;\n        local_34 = piVar24;\n        iVar18 = htab_find(DAT_00040b10,&local_34);\n        if (((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)) {\n          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }\n        }\n        piVar4[1] = (int)piVar34;\n      }\n      pcVar25 = DAT_00040af8;\n      cVar2 = *(char *)(*(int *)((int)param_1 + 4) + 0x18);\n      if ((char)*piVar34 == cVar2) {\n        if (DAT_00040b3c == 0) {\n          if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }\nLAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }\n      }\n      else {\n        if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))\n        goto LAB_0001982b;\nLAB_00019ab1:\n        sVar22 = strlen(pcVar25);\n        sVar23 = strlen((char *)piVar34);\n        piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n        local_6c = (size_t *)((int)piVar24 + 1);\n        *(char *)piVar24 = *(char *)(param_2[1] + 0x18);\nLAB_00019858:\n        pcVar25 = DAT_00040af8;\n        if (DAT_00040af8 != (char *)0x0) {\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }\n        strcpy((char *)local_6c,(char *)piVar34);\n        piVar4[1] = (int)piVar24;\n        piVar34 = piVar24;\n      }\n      if (DAT_00040bb0 == 7) goto LAB_00019928;\n      if ((uVar17 & 0x20) == 0) {\n        if (((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)) {\n          if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;\n        }\n        else {\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;\n      }\n      else {\n        iVar18 = FUN_000179c0();\n        if (iVar18 != 0) {\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }\nLAB_0001994f:\n        iVar18 = FUN_00017a30();\n        if (iVar18 == 0) {\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }\n      }\n      local_84 = local_84 + 1;\n    } while (piVar1 != local_84);\n  }\n  local_6c = (size_t *)DAT_00040b08;\n  if ((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) {\n    iVar18 = 0;\n    do {\n      pcVar25 = (char *)local_6c[5];\n      if (pcVar25 == (char *)0x0) {\n        iVar21 = FUN_00017920();\n        piVar19[local_8c] = iVar21;\n        local_8c = local_8c + 1;\n      }\n      else if (*pcVar25 != '\0') {\n        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    /* WARNING: Subroutine does not return */\n        FUN_0002c8e0(uVar13,pcVar25);\n      }\n      iVar18 = iVar18 + 1;\n      local_6c = (size_t *)*local_6c;\n    } while (iVar18 < DAT_00040b04);\n  }\n  piVar19[local_8c] = 0;\n  if ((DAT_00040b48 != 0) && (iVar12 != 0)) {\n    iVar18 = ((undefined4 *)param_2[1])[1];\n    if ((iVar18 == 2) || (iVar18 == 5)) {\n      iVar12 = FUN_0002c240(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34);\n      if (iVar12 != 0) {\n        iVar12 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n        iVar18 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n        if ((((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)) {\n          pcVar25 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }\n        uVar13 = dcgettext(0,pcVar25,5,iVar12);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n      }\n    }\n    else {\n      uVar13 = *(undefined4 *)param_2[1];\n      uVar14 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n    }\n    DAT_00040bc8 = 1;\n    return 0;\n  }\nLAB_00019e4d:\n  bfd_set_symtab(param_2,DAT_00040bd8,local_8c);\n  bfd_map_over_sections(param_1,FUN_00018500,param_2);\n  bfd_map_over_sections(param_1,FUN_00018070,param_2);\n  for (puVar35 = DAT_00040b58; psVar43 = param_2, puVar42 = DAT_00040b54,\n      puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)*puVar35) {\n    iVar12 = bfd_set_section_contents(param_2,puVar35[5],puVar35[4],0,0,puVar35[3],0);\n    if (iVar12 == 0) {\nLAB_00019d5e:\n      FUN_0002d3a0(0,param_2,puVar35[5],0);\n      return 0;\n    }\n  }\n  while( true ) {\n    if (puVar42 == (undefined4 *)0x0) {\n      uVar39 = 0;\n      if (DAT_00040bc4 != 0) {\n        uVar39 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n        if (((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))) {\n          if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }\n        }\n        else {\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        psVar43 = param_2;\n      }\n      if ((DAT_00040b4c != 0) &&\n         (iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0)) {\n        uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,param_2,0,uVar13,iVar12);\n        return 0;\n      }\n      if (DAT_00040b78 != 0 || DAT_00040b70 != 0) {\n        uVar39 = 0x2000;\n        if (local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc) {\n          uVar39 = local_b8;\n        }\n        piVar19 = (int *)xmalloc(uVar39);\n        iVar12 = (uint)DAT_00040b74 * 0x1010101;\n        if (uVar39 < 4) {\n          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }\n        }\n        else {\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }\n        iVar12 = param_2[0x1a];\n        if (iVar12 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);\n        }\n      }\n      iVar12 = (**(code **)(param_2[1] + 0xa8))(param_1,param_2);\n      if (iVar12 == 0) {\n        uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n        return 0;\n      }\n      if ((DAT_00040b64 != 0) &&\n         (iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0)) {\n        uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)\n        ;\n        FUN_0002c910(uVar13,iVar12);\n        if (*(int *)(param_2[1] + 4) != 5) {\n          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          FUN_0002c910(uVar13);\n          return 1;\n        }\n        uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)\n        ;\n        FUN_0002c910(uVar13);\n        *(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64;\n      }\n      return 1;\n    }\n    psVar43 = *(size_t **)(puVar42[5] + 0x54);\n    iVar12 = bfd_set_section_contents(param_2,psVar43,puVar42[4],0,0,puVar42[3],0);\n    local_6c = param_2;\n    if (iVar12 == 0) break;\n    puVar42 = (undefined4 *)*puVar42;\n  }\nLAB_00019fa0:\n  FUN_0002d3a0(0,local_6c,psVar43,0);\n  return iVar12;\nLAB_0001b1a6:\n  if ((undefined1 *)((int)pvVar32 + sVar54) <= puVar45) goto LAB_0001b1aa;\n  *puVar45 = (char)uVar17;\n  if (uVar17 == 0) goto LAB_0001b1aa;\n  uVar17 = uVar17 >> 8;\n  puVar45 = puVar45 + 1;\n  goto LAB_0001b1a6;\nLAB_0001b1aa:\n  bVar46 = true;\n  psVar9[0xe] = 0;\n  goto LAB_0001afd1;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00018920(void *param_1,size_t *param_2,int param_3)" identifier (parameter_list "(void *param_1,size_t *param_2,int param_3)" ( (parameter_declaration "void *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "size_t *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  char cVar2;\n  byte bVar3;\n  int *piVar4;\n  undefined *puVar5;\n  void *pvVar6;\n  size_t sVar7;\n  code *pcVar8;\n  size_t *psVar9;\n  size_t *psVar10;\n  size_t *psVar11;\n  int iVar12;\n  undefined4 uVar13;\n  undefined4 uVar14;\n  FILE *__s;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  uint uVar17;\n  int iVar18;\n  int *piVar19;\n  undefined *puVar20;\n  int iVar21;\n  size_t sVar22;\n  size_t sVar23;\n  int *piVar24;\n  char *pcVar25;\n  void *pvVar26;\n  uint uVar27;\n  size_t sVar28;\n  size_t sVar29;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  size_t extraout_ECX_01;\n  size_t extraout_ECX_02;\n  size_t sVar30;\n  int iVar31;\n  void *pvVar32;\n  uint uVar33;\n  int *piVar34;\n  undefined4 *puVar35;\n  byte *pbVar36;\n  uint uVar37;\n  size_t *psVar38;\n  uint uVar39;\n  uint uVar40;\n  byte *pbVar41;\n  undefined4 *puVar42;\n  size_t *psVar43;\n  uint uVar44;\n  undefined1 *puVar45;\n  bool bVar46;\n  bool bVar47;\n  byte bVar48;\n  undefined8 uVar49;\n  longlong lVar50;\n  longlong lVar51;\n  void *pvVar52;\n  size_t sVar53;\n  void *__dest;\n  size_t sVar54;\n  size_t sVar55;\n  uint local_bc;\n  uint local_b8;\n  void *local_b4;\n  size_t *local_a8;\n  int local_a4;\n  int local_8c;\n  int *local_84;\n  uint local_7c;\n  uint local_78;\n  size_t *local_74;\n  size_t *local_6c;\n  int local_68;\n  int *local_64;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  int *local_34;\n  undefined4 local_30;\n  undefined4 uStack_14;\n  \n  bVar48 = 0;\n  uStack_14 = 0x1892b;\n  iVar12 = *(int *)(*(int *)((int)param_1 + 4) + 8);\n  if ((iVar12 != *(int *)(((int *)param_2)[1] + 8) && iVar12 != 2) &&\n     (*(int *)(((int *)param_2)[1] + 8) != 2)) {\n    uVar13 = dcgettext(0,"Unable to change endianness of input file(s)",5);\n    FUN_0002c910(uVar13);\n    return 0;\n  }\n  iVar12 = bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7);\n  if (iVar12 == 0) {\n    FUN_0002d3a0(0,param_2,0,0);\n    return 0;\n  }\n  if (*(int *)((int)param_1 + 0x60) == 0) {\n    uVar13 = FUN_0002d2a0(param_1);\n    pcVar25 = "error: the input file \'%s\' has no sections";\n    goto LAB_00018f38;\n  }\n  if ((*(undefined4 **)((int)param_1 + 4))[1] != 5) {\n    if ((DAT_00040b44 != 1) && ((DAT_00040b44 & 1) != 0)) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\nLAB_00018f38:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }\n    if (DAT_00040b40 != 0) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      goto LAB_00018f38;\n    }\n  }\n  if (DAT_00040bd0 != 0) {\n    uVar13 = **(undefined4 **)((int)param_1 + 4);\n    uVar14 = *(undefined4 *)((int *)param_2)[1];\n    iVar12 = *param_2;\n    uVar15 = FUN_0002d2a0(param_1);\n    pcVar25 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n    printf(pcVar25,uVar15,uVar13,iVar12,uVar14);\n  }\n  iVar12 = 0;\n  iVar31 = 0;\n  if (DAT_00040aec == 0) {\n    uVar39 = DAT_00040b88;\n    iVar31 = DAT_00040b8c;\n    if (DAT_00040b90 == 0) {\n      uVar39 = *(uint *)((int)param_1 + 0x70);\n      iVar31 = *(int *)((int)param_1 + 0x74);\n    }\n    iVar12 = uVar39 + DAT_00040b98;\n    iVar31 = iVar31 + DAT_00040b9c + (uint)CARRY4(uVar39,DAT_00040b98);\n  }\n  if ((*(byte *)((int *)param_2 + 10) & 7) != 3) {\n    uVar39 = ~DAT_00040b5c & *(uint *)(((int *)param_2)[1] + 0x10) &\n             (*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff | DAT_00040b60);\n    if (DAT_00040bb0 == 7) {\n      uVar39 = uVar39 & 0xfffffffe;\n    }\n    iVar12 = bfd_set_start_address(param_2,iVar12,iVar31);\n    if ((iVar12 == 0) || (iVar12 = bfd_set_file_flags(param_2,uVar39), iVar12 == 0))\n    goto LAB_00018b70;\n  }\n  uVar13 = bfd_get_arch(param_1);\n  uVar14 = bfd_get_mach(param_1);\n  if (param_3 != 0) {\n    iVar12 = bfd_get_arch_info(param_1);\n    if ((iVar12 == 0) || (iVar12 = bfd_get_arch_info(param_1), *(int *)(iVar12 + 0xc) == 0)) {\n      uVar13 = *(undefined4 *)(param_3 + 0xc);\n      uVar14 = *(undefined4 *)(param_3 + 0x10);\n    }\n    else {\n      uVar15 = FUN_0002d2a0(param_1);\n      uVar16 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n      FUN_0002c910(uVar16,uVar15);\n    }\n  }\n  iVar12 = (**(code **)(((int *)param_2)[1] + 0x154))(param_2,uVar13,uVar14);\n  if (iVar12 == 0) {\n    if ((*(byte *)((int)param_1 + 0x2b) & 4) != 0) {\nLAB_00018b20:\n      iVar12 = bfd_get_arch(param_1);\n      if (iVar12 == 0) {\n        uVar13 = FUN_0002d2a0(param_1);\n        pcVar25 = "Unable to recognise the format of the input file `%s\'";\n      }\n      else {\n        uVar13 = bfd_get_mach(param_1);\n        uVar14 = bfd_get_arch(param_1);\n        uVar13 = bfd_printable_arch_mach(uVar14,uVar13);\n        pcVar25 = "Output file cannot represent architecture `%s\'";\n      }\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }\n    iVar12 = bfd_get_arch(param_1);\n    iVar31 = bfd_get_arch(param_2);\n    if (iVar12 != iVar31) goto LAB_00018b20;\n  }\n  iVar12 = bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7);\n  if (iVar12 == 0) {\nLAB_00018b70:\n    FUN_0002d3a0(0,param_1,0,0);\n    return 0;\n  }\n  uVar39 = ((undefined4 *)((int *)param_2)[1])[1];\n  bVar46 = uVar39 < 2;\n  bVar47 = uVar39 == 2;\n  if (bVar47) {\n    iVar12 = 4;\n    pbVar36 = *(byte **)((int *)param_2)[1];\n    pbVar41 = &DAT_0002f16a;\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar46 = *pbVar36 < *pbVar41;\n      bVar47 = *pbVar36 == *pbVar41;\n      pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n      pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n    } while (bVar47);\n    if ((!bVar46 && !bVar47) == bVar46) {\n      iVar12 = ((int *)param_2)[0x28];\n      uVar39 = (*(undefined4 **)((int)param_1 + 4))[1];\n      bVar46 = uVar39 < 2;\n      bVar47 = uVar39 == 2;\n      if (bVar47) {\n        iVar31 = 4;\n        pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4);\n        pbVar41 = &DAT_0002f16a;\n        do {\n          if (iVar31 == 0) break;\n          iVar31 = iVar31 + -1;\n          bVar46 = *pbVar36 < *pbVar41;\n          bVar47 = *pbVar36 == *pbVar41;\n          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n        } while (bVar47);\n        if ((!bVar46 && !bVar47) == bVar46) {\n          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);\n          puVar42 = (undefined4 *)(iVar12 + 0x7c);\n          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }\n        }\n      }\n      uVar39 = DAT_000402b4;\n      if ((DAT_000402b4 & DAT_000402b0) == 0xffffffff) {\n        DAT_000402b0 = 0x200;\n        DAT_000402b4 = 0;\n      }\n      else {\n        *(uint *)(iVar12 + 0xb4) = DAT_000402b0;\n        *(uint *)(iVar12 + 0xb8) = uVar39;\n      }\n      uVar39 = DAT_000402ac;\n      if ((DAT_000402ac & DAT_000402a8) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a8;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_000402a4;\n      if ((DAT_000402a4 & DAT_000402a0) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a0;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_0004029c;\n      if ((DAT_0004029c & DAT_00040298) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xa4) = DAT_00040298;\n        *(uint *)(iVar12 + 0xa8) = uVar39;\n      }\n      uVar39 = DAT_00040294;\n      local_64 = (int *)DAT_00040290;\n      if ((DAT_00040290 & DAT_00040294) == 0xffffffff) {\n        DAT_00040290 = 0x1000;\n        uVar39 = 0;\n        DAT_00040294 = 0;\n        local_64 = (int *)0x1000;\n      }\n      else {\n        *(uint *)(iVar12 + 0xac) = DAT_00040290;\n        *(uint *)(iVar12 + 0xb0) = uVar39;\n      }\n      uVar17 = DAT_0004028c;\n      if ((DAT_0004028c & DAT_00040288) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040288;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      uVar17 = DAT_00040284;\n      if ((DAT_00040284 & DAT_00040280) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040280;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      if (DAT_0004027c != -1) {\n        *(short *)(iVar12 + 0xd8) = DAT_0004027c;\n      }\n      if (DAT_0004027a != -1) {\n        *(short *)(iVar12 + 0xc4) = DAT_0004027a;\n      }\n      if (DAT_00040278 != -1) {\n        *(short *)(iVar12 + 0xc6) = DAT_00040278;\n      }\n      if (uVar39 < DAT_000402b4 || uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0)) {\n        sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4);\n        sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294);\n        uVar13 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n        FUN_0002c910(uVar13,&local_4c,&local_34);\n      }\n    }\n  }\n  piVar19 = DAT_00040bdc;\n  if (DAT_00040bdc != (int *)0x0) {\n    free(DAT_00040bdc);\n  }\n  if (piVar19 != DAT_00040bd8) {\n    free(DAT_00040bd8);\n  }\n  DAT_00040bdc = (int *)0x0;\n  DAT_00040bd8 = (int *)0x0;\n  iVar12 = (**(code **)(*(int *)((int)param_1 + 4) + 0x104))(param_1);\n  if (iVar12 < 0) goto LAB_00018b70;\n  DAT_00040bd8 = (int *)xmalloc(iVar12);\n  DAT_00040bdc = DAT_00040bd8;\n  local_8c = (**(code **)(*(int *)((int)param_1 + 4) + 0x108))(param_1,DAT_00040bd8);\n  if (local_8c < 0) goto LAB_00018b70;\n  if (local_8c == 0) {\n    free(DAT_00040bdc);\n    DAT_00040bdc = (int *)0x0;\n    DAT_00040bd8 = (int *)0x0;\n  }\n  bfd_map_over_sections(param_1,FUN_00017af0,param_2);\n  puVar35 = DAT_00040b58;\n  if ((DAT_00040aec == 0) &&\n     (iVar12 = (**(code **)(((int *)param_2)[1] + 0xbc))(param_1,param_2), puVar35 = DAT_00040b58,\n     iVar12 == 0)) {\n    DAT_00040bc8 = 1;\n    uVar13 = dcgettext(0,"error in private header data",5);\n    FUN_0002d3a0(0,param_1,0,uVar13);\n    puVar35 = DAT_00040b58;\n  }\n  for (; puVar42 = DAT_00040b54, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)*puVar35) {\n    uVar39 = 0x128;\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      uVar39 = *(uint *)(iVar12 + 0x20) | 0x100;\n    }\n    iVar12 = bfd_get_section_by_name(param_2,puVar35[1]);\n    if (iVar12 != 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t add section \'%s\'";\nLAB_00019591:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n      return 0;\n    }\n    iVar12 = bfd_make_section_with_flags(param_2,puVar35[1],uVar39 | 0x100000);\n    puVar35[5] = iVar12;\n    if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t create section `%s\'";\n      goto LAB_00019591;\n    }\n    iVar12 = bfd_set_section_size(param_2,iVar12,puVar35[3],0);\n    if (iVar12 == 0) goto LAB_00019d5e;\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x14);\n      uVar14 = *(undefined4 *)(iVar12 + 0x10);\n      *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      *(undefined4 *)(iVar31 + 0x24) = uVar14;\n      *(undefined4 *)(iVar31 + 0x28) = uVar13;\n      *(undefined4 *)(iVar31 + 0x1c) = uVar14;\n      *(undefined4 *)(iVar31 + 0x20) = uVar13;\n    }\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x18);\n      *(undefined4 *)(iVar31 + 0x28) = *(undefined4 *)(iVar12 + 0x1c);\n      *(undefined4 *)(iVar31 + 0x24) = uVar13;\n    }\n  }\n  for (; local_6c = param_2, puVar42 != (undefined4 *)0x0; puVar42 = (undefined4 *)*puVar42) {\n    iVar12 = bfd_get_section_by_name(param_1,puVar42[1]);\n    puVar42[5] = iVar12;\n    if (iVar12 == 0) {\n      uVar13 = puVar42[1];\n      pcVar25 = "error: %s not found, can\'t be updated";\n      goto LAB_00018f38;\n    }\n    psVar43 = *(size_t **)(iVar12 + 0x54);\n    iVar12 = bfd_set_section_size(param_2,psVar43,puVar42[3],0);\n    if (iVar12 == 0) goto LAB_00019fa0;\n  }\n  if ((((DAT_00040bc4 != 0) &&\n       (iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0)) &&\n      (DAT_00040bc4 != 0)) &&\n     ((*(int *)(*(int *)((int)param_1 + 4) + 4) == 5 && (iVar31 = FUN_000176d0(), iVar31 != 0)))) {\n    uVar39 = *(uint *)(iVar12 + 0x30);\n    sVar22 = *(size_t *)(iVar12 + 0x2c);\n    if (uVar39 == 0 && sVar22 == 0) {\n      uVar13 = dcgettext(0,"warning: note section is empty",5,sVar22);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n      DAT_00040bc4 = 0;\n    }\n    else {\n      iVar31 = bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22);\n      pvVar6 = DAT_00040bc0;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"warning: could not load note section",5,0);\n        FUN_0002d3a0(0,param_1,iVar12,uVar13);\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n      }\n      else {\n        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);\n        sVar23 = extraout_ECX_01;\n        pvVar26 = param_1;\n        if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar52 = (void *)0x30;\n        sVar53 = sVar23;\n        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);\n        local_74 = (size_t *)xcalloc(uVar13);\n        local_bc = 0;\n        sVar54 = 0;\n        local_b8 = 0;\n        sVar55 = 0;\n        local_84 = (int *)0x0;\n        local_a8 = (size_t *)0x0;\n        local_a4 = 0;\n        pvVar26 = pvVar6;\n        psVar43 = local_74;\n        local_7c = sVar22;\n        local_78 = uVar39;\n        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }\n        if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        DAT_00040bb8 = 0;\n        DAT_00040bbc = 0;\n      }\n    }\n  }\nLAB_00018e0e:\n  param_2 = local_6c;\n  iVar31 = DAT_00040b4c;\n  for (puVar35 = DAT_00040b50; DAT_00040b4c = iVar31, puVar35 != (undefined4 *)0x0;\n      puVar35 = (undefined4 *)*puVar35) {\n    iVar12 = bfd_get_section_by_name(param_1,puVar35[1]);\n    if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      uVar14 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n      FUN_0002d3a0(0,param_1,0,uVar14,uVar13);\n    }\n    else {\n      if ((*(byte *)(iVar12 + 0x15) & 1) == 0) {\n        pcVar25 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar22 = *(size_t *)(iVar12 + 0x2c);\n        iVar31 = *(int *)(iVar12 + 0x30);\n        if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar25 = "can\'t dump section - it is empty";\n      }\n      uVar13 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n    }\nLAB_00018eb1:\n    iVar31 = DAT_00040b4c;\n  }\n  if (iVar31 != 0) {\n    iVar12 = bfd_get_section_by_name(local_6c,".gnu_debuglink");\n    if (iVar12 == 0) {\n      iVar31 = bfd_create_gnu_debuglink_section(local_6c,DAT_00040b4c);\n      iVar12 = DAT_00040b4c;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,local_6c,0,uVar13,iVar12);\n        return 0;\n      }\n      if (*(int *)(local_6c[1] + 4) == 2) {\n        iVar12 = local_6c[0x18];\n        iVar18 = 0;\n        if (iVar12 == 0) {\nLAB_0001aa69:\n          uVar39 = 0x1000;\n          iVar12 = 0;\n        }\n        else {\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(iVar31 + 0x24) = uVar39;\n        *(int *)(iVar31 + 0x28) = iVar12;\n        *(uint *)(iVar31 + 0x1c) = uVar39;\n        *(int *)(iVar31 + 0x20) = iVar12;\n        *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      }\n    }\n    else {\n      iVar12 = *local_6c;\n      uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n      FUN_0002c910(uVar13,iVar12);\n      DAT_00040b4c = 0;\n      iVar31 = 0;\n    }\n  }\n  sVar22 = local_6c[0x1a];\n  if ((sVar22 == 0) || (DAT_00040b78 == 0 && DAT_00040b70 == 0)) {\n    local_b8 = 0;\n    local_bc = 0;\n    local_b4 = (void *)0x0;\n    local_a8 = (size_t *)0x0;\n    uVar39 = local_bc;\n    uVar17 = local_b8;\n  }\n  else {\n    local_a8 = (size_t *)xmalloc(sVar22 * 4);\n    local_34 = (int *)local_a8;\n    bfd_map_over_sections(local_6c,FUN_00016800,&local_34);\n    qsort(local_a8,sVar22,4,FUN_00016820);\n    sVar23 = sVar22 * 8;\n    local_b4 = (void *)xmalloc(sVar23);\n    memset(local_b4,0,sVar23);\n    if ((DAT_00040b78 == 0) || (sVar22 == 1)) {\n      local_b8 = 0;\n      local_bc = 0;\n    }\n    else {\n      local_b8 = 0;\n      local_bc = 0;\n      local_6c = (size_t *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (size_t *)((int)local_6c + 1);\n        iVar12 = *local_64;\n        uVar39 = local_bc;\n        uVar17 = local_b8;\n        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }\n        local_b8 = uVar17;\n        local_bc = uVar39;\n        local_64 = local_64 + 1;\n      } while ((size_t *)(sVar22 - 1) != local_6c);\n    }\n    uVar39 = local_bc;\n    uVar17 = local_b8;\n    if (DAT_00040b70 != 0) {\n      iVar12 = ((int *)local_a8)[sVar22 - 1];\n      uVar27 = *(uint *)(iVar12 + 0x24);\n      uVar37 = uVar27 + *(uint *)(iVar12 + 0x2c);\n      uVar44 = *(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +\n               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c));\n      if (uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)) {\n        iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           );\n        if (iVar12 == 0) {\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }\n        else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }\n      }\n    }\n  }\n  local_b8 = uVar17;\n  local_bc = uVar39;\n  iVar12 = 0;\n  if (DAT_00040b48 != 0) {\n    iVar12 = FUN_0001c9c0(param_1,DAT_00040bdc,local_8c,0);\n  }\n  if (DAT_00040bb0 - 2U < 6) {\nLAB_0001962a:\n    if (DAT_00040bb0 != 7) goto LAB_0001962f;\n  }\n  else {\n    if (DAT_00040b30 == 0 && DAT_00040bac == 0) {\n      iVar18 = htab_elements(DAT_00040b2c);\n      if ((((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&\n         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))))\n      goto LAB_00019e4d;\n      goto LAB_0001962a;\n    }\nLAB_0001962f:\n    bfd_set_error(0);\n    bfd_map_over_sections(param_1,FUN_000187a0,DAT_00040bdc);\n    iVar18 = bfd_get_error();\n    if (iVar18 != 0) {\n      DAT_00040bc8 = 1;\n      return 0;\n    }\n  }\n  piVar19 = (int *)xmalloc((DAT_00040b04 + local_8c) * 4 + 4);\n  local_84 = DAT_00040bdc;\n  uVar39 = *(uint *)((int)param_1 + 0x28);\n  DAT_00040bd8 = piVar19;\n  if (local_8c != 0) {\n    piVar1 = DAT_00040bdc + local_8c;\n    local_8c = 0;\n    puVar20 = PTR__bfd_std_section_0003ffc8 + 0xc0;\n    do {\n      iVar18 = DAT_00040b04;\n      piVar4 = (int *)*local_84;\n      uVar17 = piVar4[4];\n      piVar24 = (int *)piVar4[1];\n      puVar5 = (undefined *)piVar4[5];\n      if (((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) &&\n         (pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0)) {\n        local_6c = (size_t *)0x0;\n        piVar34 = DAT_00040b08;\n        while (iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0) {\n          local_6c = (size_t *)((int)local_6c + 1);\n          piVar34 = (int *)*piVar34;\n          if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar25);\n        piVar34[5] = (int)"";\n        piVar34 = piVar19 + local_8c;\n        local_8c = local_8c + 1;\n        iVar18 = FUN_00017920();\n        *piVar34 = iVar18;\n      }\nLAB_000197a8:\n      iVar18 = htab_elements(DAT_00040b10);\n      piVar34 = piVar24;\n      if ((iVar18 != 0) || (DAT_00040be0 != (undefined4 *)0x0)) {\n        local_30 = 0;\n        local_34 = piVar24;\n        iVar18 = htab_find(DAT_00040b10,&local_34);\n        if (((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)) {\n          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }\n        }\n        piVar4[1] = (int)piVar34;\n      }\n      pcVar25 = DAT_00040af8;\n      cVar2 = *(char *)(*(int *)((int)param_1 + 4) + 0x18);\n      if ((char)*piVar34 == cVar2) {\n        if (DAT_00040b3c == 0) {\n          if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }\nLAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }\n      }\n      else {\n        if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))\n        goto LAB_0001982b;\nLAB_00019ab1:\n        sVar22 = strlen(pcVar25);\n        sVar23 = strlen((char *)piVar34);\n        piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n        local_6c = (size_t *)((int)piVar24 + 1);\n        *(char *)piVar24 = *(char *)(param_2[1] + 0x18);\nLAB_00019858:\n        pcVar25 = DAT_00040af8;\n        if (DAT_00040af8 != (char *)0x0) {\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }\n        strcpy((char *)local_6c,(char *)piVar34);\n        piVar4[1] = (int)piVar24;\n        piVar34 = piVar24;\n      }\n      if (DAT_00040bb0 == 7) goto LAB_00019928;\n      if ((uVar17 & 0x20) == 0) {\n        if (((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)) {\n          if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;\n        }\n        else {\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;\n      }\n      else {\n        iVar18 = FUN_000179c0();\n        if (iVar18 != 0) {\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }\nLAB_0001994f:\n        iVar18 = FUN_00017a30();\n        if (iVar18 == 0) {\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }\n      }\n      local_84 = local_84 + 1;\n    } while (piVar1 != local_84);\n  }\n  local_6c = (size_t *)DAT_00040b08;\n  if ((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) {\n    iVar18 = 0;\n    do {\n      pcVar25 = (char *)local_6c[5];\n      if (pcVar25 == (char *)0x0) {\n        iVar21 = FUN_00017920();\n        piVar19[local_8c] = iVar21;\n        local_8c = local_8c + 1;\n      }\n      else if (*pcVar25 != '\0') {\n        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    /* WARNING: Subroutine does not return */\n        FUN_0002c8e0(uVar13,pcVar25);\n      }\n      iVar18 = iVar18 + 1;\n      local_6c = (size_t *)*local_6c;\n    } while (iVar18 < DAT_00040b04);\n  }\n  piVar19[local_8c] = 0;\n  if ((DAT_00040b48 != 0) && (iVar12 != 0)) {\n    iVar18 = ((undefined4 *)param_2[1])[1];\n    if ((iVar18 == 2) || (iVar18 == 5)) {\n      iVar12 = FUN_0002c240(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34);\n      if (iVar12 != 0) {\n        iVar12 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n        iVar18 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n        if ((((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)) {\n          pcVar25 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }\n        uVar13 = dcgettext(0,pcVar25,5,iVar12);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n      }\n    }\n    else {\n      uVar13 = *(undefined4 *)param_2[1];\n      uVar14 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n    }\n    DAT_00040bc8 = 1;\n    return 0;\n  }\nLAB_00019e4d:\n  bfd_set_symtab(param_2,DAT_00040bd8,local_8c);\n  bfd_map_over_sections(param_1,FUN_00018500,param_2);\n  bfd_map_over_sections(param_1,FUN_00018070,param_2);\n  for (puVar35 = DAT_00040b58; psVar43 = param_2, puVar42 = DAT_00040b54,\n      puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)*puVar35) {\n    iVar12 = bfd_set_section_contents(param_2,puVar35[5],puVar35[4],0,0,puVar35[3],0);\n    if (iVar12 == 0) {\nLAB_00019d5e:\n      FUN_0002d3a0(0,param_2,puVar35[5],0);\n      return 0;\n    }\n  }\n  while( true ) {\n    if (puVar42 == (undefined4 *)0x0) {\n      uVar39 = 0;\n      if (DAT_00040bc4 != 0) {\n        uVar39 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n        if (((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))) {\n          if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }\n        }\n        else {\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        psVar43 = param_2;\n      }\n      if ((DAT_00040b4c != 0) &&\n         (iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0)) {\n        uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,param_2,0,uVar13,iVar12);\n        return 0;\n      }\n      if (DAT_00040b78 != 0 || DAT_00040b70 != 0) {\n        uVar39 = 0x2000;\n        if (local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc) {\n          uVar39 = local_b8;\n        }\n        piVar19 = (int *)xmalloc(uVar39);\n        iVar12 = (uint)DAT_00040b74 * 0x1010101;\n        if (uVar39 < 4) {\n          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }\n        }\n        else {\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }\n        iVar12 = param_2[0x1a];\n        if (iVar12 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);\n        }\n      }\n      iVar12 = (**(code **)(param_2[1] + 0xa8))(param_1,param_2);\n      if (iVar12 == 0) {\n        uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n        return 0;\n      }\n      if ((DAT_00040b64 != 0) &&\n         (iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0)) {\n        uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)\n        ;\n        FUN_0002c910(uVar13,iVar12);\n        if (*(int *)(param_2[1] + 4) != 5) {\n          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          FUN_0002c910(uVar13);\n          return 1;\n        }\n        uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)\n        ;\n        FUN_0002c910(uVar13);\n        *(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64;\n      }\n      return 1;\n    }\n    psVar43 = *(size_t **)(puVar42[5] + 0x54);\n    iVar12 = bfd_set_section_contents(param_2,psVar43,puVar42[4],0,0,puVar42[3],0);\n    local_6c = param_2;\n    if (iVar12 == 0) break;\n    puVar42 = (undefined4 *)*puVar42;\n  }\nLAB_00019fa0:\n  FUN_0002d3a0(0,local_6c,psVar43,0);\n  return iVar12;\nLAB_0001b1a6:\n  if ((undefined1 *)((int)pvVar32 + sVar54) <= puVar45) goto LAB_0001b1aa;\n  *puVar45 = (char)uVar17;\n  if (uVar17 == 0) goto LAB_0001b1aa;\n  uVar17 = uVar17 >> 8;\n  puVar45 = puVar45 + 1;\n  goto LAB_0001b1a6;\nLAB_0001b1aa:\n  bVar46 = true;\n  psVar9[0xe] = 0;\n  goto LAB_0001afd1;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "void *pvVar6;" primitive_type (pointer_declarator "*pvVar6" * identifier) ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "size_t *psVar9;" primitive_type (pointer_declarator "*psVar9" * identifier) ;) (declaration "size_t *psVar10;" primitive_type (pointer_declarator "*psVar10" * identifier) ;) (declaration "size_t *psVar11;" primitive_type (pointer_declarator "*psVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "FILE *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "size_t sVar22;" primitive_type identifier ;) (declaration "size_t sVar23;" primitive_type identifier ;) (declaration "int *piVar24;" primitive_type (pointer_declarator "*piVar24" * identifier) ;) (declaration "char *pcVar25;" primitive_type (pointer_declarator "*pcVar25" * identifier) ;) (declaration "void *pvVar26;" primitive_type (pointer_declarator "*pvVar26" * identifier) ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "size_t sVar28;" primitive_type identifier ;) (declaration "size_t sVar29;" primitive_type identifier ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_00;" type_identifier identifier ;) (declaration "size_t extraout_ECX_01;" primitive_type identifier ;) (declaration "size_t extraout_ECX_02;" primitive_type identifier ;) (declaration "size_t sVar30;" primitive_type identifier ;) (declaration "int iVar31;" primitive_type identifier ;) (declaration "void *pvVar32;" primitive_type (pointer_declarator "*pvVar32" * identifier) ;) (declaration "uint uVar33;" type_identifier identifier ;) (declaration "int *piVar34;" primitive_type (pointer_declarator "*piVar34" * identifier) ;) (declaration "undefined4 *puVar35;" type_identifier (pointer_declarator "*puVar35" * identifier) ;) (declaration "byte *pbVar36;" type_identifier (pointer_declarator "*pbVar36" * identifier) ;) (declaration "uint uVar37;" type_identifier identifier ;) (declaration "size_t *psVar38;" primitive_type (pointer_declarator "*psVar38" * identifier) ;) (declaration "uint uVar39;" type_identifier identifier ;) (declaration "uint uVar40;" type_identifier identifier ;) (declaration "byte *pbVar41;" type_identifier (pointer_declarator "*pbVar41" * identifier) ;) (declaration "undefined4 *puVar42;" type_identifier (pointer_declarator "*puVar42" * identifier) ;) (declaration "size_t *psVar43;" primitive_type (pointer_declarator "*psVar43" * identifier) ;) (declaration "uint uVar44;" type_identifier identifier ;) (declaration "undefined1 *puVar45;" type_identifier (pointer_declarator "*puVar45" * identifier) ;) (declaration "bool bVar46;" primitive_type identifier ;) (declaration "bool bVar47;" primitive_type identifier ;) (declaration "byte bVar48;" type_identifier identifier ;) (declaration "undefined8 uVar49;" type_identifier identifier ;) (declaration "longlong lVar50;" type_identifier identifier ;) (declaration "longlong lVar51;" type_identifier identifier ;) (declaration "void *pvVar52;" primitive_type (pointer_declarator "*pvVar52" * identifier) ;) (declaration "size_t sVar53;" primitive_type identifier ;) (declaration "void *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "size_t sVar54;" primitive_type identifier ;) (declaration "size_t sVar55;" primitive_type identifier ;) (declaration "uint local_bc;" type_identifier identifier ;) (declaration "uint local_b8;" type_identifier identifier ;) (declaration "void *local_b4;" primitive_type (pointer_declarator "*local_b4" * identifier) ;) (declaration "size_t *local_a8;" primitive_type (pointer_declarator "*local_a8" * identifier) ;) (declaration "int local_a4;" primitive_type identifier ;) (declaration "int local_8c;" primitive_type identifier ;) (declaration "int *local_84;" primitive_type (pointer_declarator "*local_84" * identifier) ;) (declaration "uint local_7c;" type_identifier identifier ;) (declaration "uint local_78;" type_identifier identifier ;) (declaration "size_t *local_74;" primitive_type (pointer_declarator "*local_74" * identifier) ;) (declaration "size_t *local_6c;" primitive_type (pointer_declarator "*local_6c" * identifier) ;) (declaration "int local_68;" primitive_type identifier ;) (declaration "int *local_64;" primitive_type (pointer_declarator "*local_64" * identifier) ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "int *local_34;" primitive_type (pointer_declarator "*local_34" * identifier) ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar48 = 0;" (assignment_expression "bVar48 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x1892b;" (assignment_expression "uStack_14 = 0x1892b" identifier = number_literal) ;) (expression_statement "iVar12 = *(int *)(*(int *)((int)param_1 + 4) + 8);" (assignment_expression "iVar12 = *(int *)(*(int *)((int)param_1 + 4) + 8)" identifier = (pointer_expression "*(int *)(*(int *)((int)param_1 + 4) + 8)" * (cast_expression "(int *)(*(int *)((int)param_1 + 4) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 8)" ( (binary_expression "*(int *)((int)param_1 + 4) + 8" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if ((iVar12 != *(int *)(((int *)param_2)[1] + 8) && iVar12 != 2) &&\n     (*(int *)(((int *)param_2)[1] + 8) != 2)) {\n    uVar13 = dcgettext(0,"Unable to change endianness of input file(s)",5);\n    FUN_0002c910(uVar13);\n    return 0;\n  }" if (parenthesized_expression "((iVar12 != *(int *)(((int *)param_2)[1] + 8) && iVar12 != 2) &&\n     (*(int *)(((int *)param_2)[1] + 8) != 2))" ( (binary_expression "(iVar12 != *(int *)(((int *)param_2)[1] + 8) && iVar12 != 2) &&\n     (*(int *)(((int *)param_2)[1] + 8) != 2)" (parenthesized_expression "(iVar12 != *(int *)(((int *)param_2)[1] + 8) && iVar12 != 2)" ( (binary_expression "iVar12 != *(int *)(((int *)param_2)[1] + 8) && iVar12 != 2" (binary_expression "iVar12 != *(int *)(((int *)param_2)[1] + 8)" identifier != (pointer_expression "*(int *)(((int *)param_2)[1] + 8)" * (cast_expression "(int *)(((int *)param_2)[1] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int *)param_2)[1] + 8)" ( (binary_expression "((int *)param_2)[1] + 8" (subscript_expression "((int *)param_2)[1]" (parenthesized_expression "((int *)param_2)" ( (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) + number_literal) ))))) && (binary_expression "iVar12 != 2" identifier != number_literal)) )) && (parenthesized_expression "(*(int *)(((int *)param_2)[1] + 8) != 2)" ( (binary_expression "*(int *)(((int *)param_2)[1] + 8) != 2" (pointer_expression "*(int *)(((int *)param_2)[1] + 8)" * (cast_expression "(int *)(((int *)param_2)[1] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int *)param_2)[1] + 8)" ( (binary_expression "((int *)param_2)[1] + 8" (subscript_expression "((int *)param_2)[1]" (parenthesized_expression "((int *)param_2)" ( (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n    uVar13 = dcgettext(0,"Unable to change endianness of input file(s)",5);\n    FUN_0002c910(uVar13);\n    return 0;\n  }" { (expression_statement "uVar13 = dcgettext(0,"Unable to change endianness of input file(s)",5);" (assignment_expression "uVar13 = 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_0002c910(uVar13);" (call_expression "FUN_0002c910(uVar13)" identifier (argument_list "(uVar13)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar12 = bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7);" (assignment_expression "iVar12 = bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7)" identifier = (call_expression "bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7)" identifier (argument_list "(param_2,*(byte *)((int)param_1 + 0x28) & 7)" ( identifier , (binary_expression "*(byte *)((int)param_1 + 0x28) & 7" (pointer_expression "*(byte *)((int)param_1 + 0x28)" * (cast_expression "(byte *)((int)param_1 + 0x28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x28)" ( (binary_expression "(int)param_1 + 0x28" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )))) ;) (if_statement "if (iVar12 == 0) {\n    FUN_0002d3a0(0,param_2,0,0);\n    return 0;\n  }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_0002d3a0(0,param_2,0,0);\n    return 0;\n  }" { (expression_statement "FUN_0002d3a0(0,param_2,0,0);" (call_expression "FUN_0002d3a0(0,param_2,0,0)" identifier (argument_list "(0,param_2,0,0)" ( number_literal , identifier , number_literal , number_literal ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*(int *)((int)param_1 + 0x60) == 0) {\n    uVar13 = FUN_0002d2a0(param_1);\n    pcVar25 = "error: the input file \'%s\' has no sections";\n    goto LAB_00018f38;\n  }" if (parenthesized_expression "(*(int *)((int)param_1 + 0x60) == 0)" ( (binary_expression "*(int *)((int)param_1 + 0x60) == 0" (pointer_expression "*(int *)((int)param_1 + 0x60)" * (cast_expression "(int *)((int)param_1 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x60)" ( (binary_expression "(int)param_1 + 0x60" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n    uVar13 = FUN_0002d2a0(param_1);\n    pcVar25 = "error: the input file \'%s\' has no sections";\n    goto LAB_00018f38;\n  }" { (expression_statement "uVar13 = FUN_0002d2a0(param_1);" (assignment_expression "uVar13 = FUN_0002d2a0(param_1)" identifier = (call_expression "FUN_0002d2a0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "pcVar25 = "error: the input file \'%s\' has no sections";" (assignment_expression "pcVar25 = "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 ")) ;) (goto_statement "goto LAB_00018f38;" goto statement_identifier ;) })) (if_statement "if ((*(undefined4 **)((int)param_1 + 4))[1] != 5) {\n    if ((DAT_00040b44 != 1) && ((DAT_00040b44 & 1) != 0)) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\nLAB_00018f38:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }\n    if (DAT_00040b40 != 0) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      goto LAB_00018f38;\n    }\n  }" if (parenthesized_expression "((*(undefined4 **)((int)param_1 + 4))[1] != 5)" ( (binary_expression "(*(undefined4 **)((int)param_1 + 4))[1] != 5" (subscript_expression "(*(undefined4 **)((int)param_1 + 4))[1]" (parenthesized_expression "(*(undefined4 **)((int)param_1 + 4))" ( (pointer_expression "*(undefined4 **)((int)param_1 + 4)" * (cast_expression "(undefined4 **)((int)param_1 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )) [ number_literal ]) != number_literal) )) (compound_statement "{\n    if ((DAT_00040b44 != 1) && ((DAT_00040b44 & 1) != 0)) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\nLAB_00018f38:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }\n    if (DAT_00040b40 != 0) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      goto LAB_00018f38;\n    }\n  }" { (if_statement "if ((DAT_00040b44 != 1) && ((DAT_00040b44 & 1) != 0)) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\nLAB_00018f38:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }" if (parenthesized_expression "((DAT_00040b44 != 1) && ((DAT_00040b44 & 1) != 0))" ( (binary_expression "(DAT_00040b44 != 1) && ((DAT_00040b44 & 1) != 0)" (parenthesized_expression "(DAT_00040b44 != 1)" ( (binary_expression "DAT_00040b44 != 1" identifier != number_literal) )) && (parenthesized_expression "((DAT_00040b44 & 1) != 0)" ( (binary_expression "(DAT_00040b44 & 1) != 0" (parenthesized_expression "(DAT_00040b44 & 1)" ( (binary_expression "DAT_00040b44 & 1" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\nLAB_00018f38:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }" { (expression_statement "uVar13 = FUN_0002d2a0(param_1);" (assignment_expression "uVar13 = FUN_0002d2a0(param_1)" identifier = (call_expression "FUN_0002d2a0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "pcVar25 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";" (assignment_expression "pcVar25 = "--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_00018f38:\n      uVar14 = dcgettext(0,pcVar25,5);" statement_identifier : (expression_statement "uVar14 = dcgettext(0,pcVar25,5);" (assignment_expression "uVar14 = dcgettext(0,pcVar25,5)" identifier = (call_expression "dcgettext(0,pcVar25,5)" identifier (argument_list "(0,pcVar25,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_0002c910(uVar14,uVar13);" (call_expression "FUN_0002c910(uVar14,uVar13)" identifier (argument_list "(uVar14,uVar13)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (DAT_00040b40 != 0) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      goto LAB_00018f38;\n    }" if (parenthesized_expression "(DAT_00040b40 != 0)" ( (binary_expression "DAT_00040b40 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      goto LAB_00018f38;\n    }" { (expression_statement "uVar13 = FUN_0002d2a0(param_1);" (assignment_expression "uVar13 = FUN_0002d2a0(param_1)" identifier = (call_expression "FUN_0002d2a0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "pcVar25 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";" (assignment_expression "pcVar25 = "--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 ")) ;) (goto_statement "goto LAB_00018f38;" goto statement_identifier ;) })) })) (if_statement "if (DAT_00040bd0 != 0) {\n    uVar13 = **(undefined4 **)((int)param_1 + 4);\n    uVar14 = *(undefined4 *)((int *)param_2)[1];\n    iVar12 = *param_2;\n    uVar15 = FUN_0002d2a0(param_1);\n    pcVar25 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n    printf(pcVar25,uVar15,uVar13,iVar12,uVar14);\n  }" if (parenthesized_expression "(DAT_00040bd0 != 0)" ( (binary_expression "DAT_00040bd0 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar13 = **(undefined4 **)((int)param_1 + 4);\n    uVar14 = *(undefined4 *)((int *)param_2)[1];\n    iVar12 = *param_2;\n    uVar15 = FUN_0002d2a0(param_1);\n    pcVar25 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n    printf(pcVar25,uVar15,uVar13,iVar12,uVar14);\n  }" { (expression_statement "uVar13 = **(undefined4 **)((int)param_1 + 4);" (assignment_expression "uVar13 = **(undefined4 **)((int)param_1 + 4)" identifier = (pointer_expression "**(undefined4 **)((int)param_1 + 4)" * (pointer_expression "*(undefined4 **)((int)param_1 + 4)" * (cast_expression "(undefined4 **)((int)param_1 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "uVar14 = *(undefined4 *)((int *)param_2)[1];" (assignment_expression "uVar14 = *(undefined4 *)((int *)param_2)[1]" identifier = (pointer_expression "*(undefined4 *)((int *)param_2)[1]" * (cast_expression "(undefined4 *)((int *)param_2)[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "((int *)param_2)[1]" (parenthesized_expression "((int *)param_2)" ( (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])))) ;) (expression_statement "iVar12 = *param_2;" (assignment_expression "iVar12 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar15 = FUN_0002d2a0(param_1);" (assignment_expression "uVar15 = FUN_0002d2a0(param_1)" identifier = (call_expression "FUN_0002d2a0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "pcVar25 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);" (assignment_expression "pcVar25 = (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(pcVar25,uVar15,uVar13,iVar12,uVar14);" (call_expression "printf(pcVar25,uVar15,uVar13,iVar12,uVar14)" identifier (argument_list "(pcVar25,uVar15,uVar13,iVar12,uVar14)" ( identifier , identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "iVar31 = 0;" (assignment_expression "iVar31 = 0" identifier = number_literal) ;) (if_statement "if (DAT_00040aec == 0) {\n    uVar39 = DAT_00040b88;\n    iVar31 = DAT_00040b8c;\n    if (DAT_00040b90 == 0) {\n      uVar39 = *(uint *)((int)param_1 + 0x70);\n      iVar31 = *(int *)((int)param_1 + 0x74);\n    }\n    iVar12 = uVar39 + DAT_00040b98;\n    iVar31 = iVar31 + DAT_00040b9c + (uint)CARRY4(uVar39,DAT_00040b98);\n  }" if (parenthesized_expression "(DAT_00040aec == 0)" ( (binary_expression "DAT_00040aec == 0" identifier == number_literal) )) (compound_statement "{\n    uVar39 = DAT_00040b88;\n    iVar31 = DAT_00040b8c;\n    if (DAT_00040b90 == 0) {\n      uVar39 = *(uint *)((int)param_1 + 0x70);\n      iVar31 = *(int *)((int)param_1 + 0x74);\n    }\n    iVar12 = uVar39 + DAT_00040b98;\n    iVar31 = iVar31 + DAT_00040b9c + (uint)CARRY4(uVar39,DAT_00040b98);\n  }" { (expression_statement "uVar39 = DAT_00040b88;" (assignment_expression "uVar39 = DAT_00040b88" identifier = identifier) ;) (expression_statement "iVar31 = DAT_00040b8c;" (assignment_expression "iVar31 = DAT_00040b8c" identifier = identifier) ;) (if_statement "if (DAT_00040b90 == 0) {\n      uVar39 = *(uint *)((int)param_1 + 0x70);\n      iVar31 = *(int *)((int)param_1 + 0x74);\n    }" if (parenthesized_expression "(DAT_00040b90 == 0)" ( (binary_expression "DAT_00040b90 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar39 = *(uint *)((int)param_1 + 0x70);\n      iVar31 = *(int *)((int)param_1 + 0x74);\n    }" { (expression_statement "uVar39 = *(uint *)((int)param_1 + 0x70);" (assignment_expression "uVar39 = *(uint *)((int)param_1 + 0x70)" identifier = (pointer_expression "*(uint *)((int)param_1 + 0x70)" * (cast_expression "(uint *)((int)param_1 + 0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x70)" ( (binary_expression "(int)param_1 + 0x70" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar31 = *(int *)((int)param_1 + 0x74);" (assignment_expression "iVar31 = *(int *)((int)param_1 + 0x74)" identifier = (pointer_expression "*(int *)((int)param_1 + 0x74)" * (cast_expression "(int *)((int)param_1 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x74)" ( (binary_expression "(int)param_1 + 0x74" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) })) (expression_statement "iVar12 = uVar39 + DAT_00040b98;" (assignment_expression "iVar12 = uVar39 + DAT_00040b98" identifier = (binary_expression "uVar39 + DAT_00040b98" identifier + identifier)) ;) (expression_statement "iVar31 = iVar31 + DAT_00040b9c + (uint)CARRY4(uVar39,DAT_00040b98);" (assignment_expression "iVar31 = iVar31 + DAT_00040b9c + (uint)CARRY4(uVar39,DAT_00040b98)" identifier = (binary_expression "iVar31 + DAT_00040b9c + (uint)CARRY4(uVar39,DAT_00040b98)" (binary_expression "iVar31 + DAT_00040b9c" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar39,DAT_00040b98)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar39,DAT_00040b98)" identifier (argument_list "(uVar39,DAT_00040b98)" ( identifier , identifier )))))) ;) })) (if_statement "if ((*(byte *)((int *)param_2 + 10) & 7) != 3) {\n    uVar39 = ~DAT_00040b5c & *(uint *)(((int *)param_2)[1] + 0x10) &\n             (*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff | DAT_00040b60);\n    if (DAT_00040bb0 == 7) {\n      uVar39 = uVar39 & 0xfffffffe;\n    }\n    iVar12 = bfd_set_start_address(param_2,iVar12,iVar31);\n    if ((iVar12 == 0) || (iVar12 = bfd_set_file_flags(param_2,uVar39), iVar12 == 0))\n    goto LAB_00018b70;\n  }" if (parenthesized_expression "((*(byte *)((int *)param_2 + 10) & 7) != 3)" ( (binary_expression "(*(byte *)((int *)param_2 + 10) & 7) != 3" (parenthesized_expression "(*(byte *)((int *)param_2 + 10) & 7)" ( (binary_expression "*(byte *)((int *)param_2 + 10) & 7" (pointer_expression "*(byte *)((int *)param_2 + 10)" * (cast_expression "(byte *)((int *)param_2 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int *)param_2 + 10)" ( (binary_expression "(int *)param_2 + 10" (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar39 = ~DAT_00040b5c & *(uint *)(((int *)param_2)[1] + 0x10) &\n             (*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff | DAT_00040b60);\n    if (DAT_00040bb0 == 7) {\n      uVar39 = uVar39 & 0xfffffffe;\n    }\n    iVar12 = bfd_set_start_address(param_2,iVar12,iVar31);\n    if ((iVar12 == 0) || (iVar12 = bfd_set_file_flags(param_2,uVar39), iVar12 == 0))\n    goto LAB_00018b70;\n  }" { (expression_statement "uVar39 = ~DAT_00040b5c & *(uint *)(((int *)param_2)[1] + 0x10) &\n             (*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff | DAT_00040b60);" (assignment_expression "uVar39 = ~DAT_00040b5c & *(uint *)(((int *)param_2)[1] + 0x10) &\n             (*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff | DAT_00040b60)" identifier = (binary_expression "~DAT_00040b5c & *(uint *)(((int *)param_2)[1] + 0x10) &\n             (*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff | DAT_00040b60)" (binary_expression "~DAT_00040b5c & *(uint *)(((int *)param_2)[1] + 0x10)" (unary_expression "~DAT_00040b5c" ~ identifier) & (pointer_expression "*(uint *)(((int *)param_2)[1] + 0x10)" * (cast_expression "(uint *)(((int *)param_2)[1] + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int *)param_2)[1] + 0x10)" ( (binary_expression "((int *)param_2)[1] + 0x10" (subscript_expression "((int *)param_2)[1]" (parenthesized_expression "((int *)param_2)" ( (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) + number_literal) ))))) & (parenthesized_expression "(*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff | DAT_00040b60)" ( (binary_expression "*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff | DAT_00040b60" (binary_expression "*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff" (binary_expression "*(uint *)((int)param_1 + 0x28) >> 5" (pointer_expression "*(uint *)((int)param_1 + 0x28)" * (cast_expression "(uint *)((int)param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x28)" ( (binary_expression "(int)param_1 + 0x28" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) >> number_literal) & number_literal) | identifier) )))) ;) (if_statement "if (DAT_00040bb0 == 7) {\n      uVar39 = uVar39 & 0xfffffffe;\n    }" if (parenthesized_expression "(DAT_00040bb0 == 7)" ( (binary_expression "DAT_00040bb0 == 7" identifier == number_literal) )) (compound_statement "{\n      uVar39 = uVar39 & 0xfffffffe;\n    }" { (expression_statement "uVar39 = uVar39 & 0xfffffffe;" (assignment_expression "uVar39 = uVar39 & 0xfffffffe" identifier = (binary_expression "uVar39 & 0xfffffffe" identifier & number_literal)) ;) })) (expression_statement "iVar12 = bfd_set_start_address(param_2,iVar12,iVar31);" (assignment_expression "iVar12 = bfd_set_start_address(param_2,iVar12,iVar31)" identifier = (call_expression "bfd_set_start_address(param_2,iVar12,iVar31)" identifier (argument_list "(param_2,iVar12,iVar31)" ( identifier , identifier , identifier )))) ;) (if_statement "if ((iVar12 == 0) || (iVar12 = bfd_set_file_flags(param_2,uVar39), iVar12 == 0))\n    goto LAB_00018b70;" if (parenthesized_expression "((iVar12 == 0) || (iVar12 = bfd_set_file_flags(param_2,uVar39), iVar12 == 0))" ( (binary_expression "(iVar12 == 0) || (iVar12 = bfd_set_file_flags(param_2,uVar39), iVar12 == 0)" (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar12 = bfd_set_file_flags(param_2,uVar39), iVar12 == 0)" ( (comma_expression "iVar12 = bfd_set_file_flags(param_2,uVar39), iVar12 == 0" (assignment_expression "iVar12 = bfd_set_file_flags(param_2,uVar39)" identifier = (call_expression "bfd_set_file_flags(param_2,uVar39)" identifier (argument_list "(param_2,uVar39)" ( identifier , identifier )))) , (binary_expression "iVar12 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_00018b70;" goto statement_identifier ;)) })) (expression_statement "uVar13 = bfd_get_arch(param_1);" (assignment_expression "uVar13 = bfd_get_arch(param_1)" identifier = (call_expression "bfd_get_arch(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "uVar14 = bfd_get_mach(param_1);" (assignment_expression "uVar14 = 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    iVar12 = bfd_get_arch_info(param_1);\n    if ((iVar12 == 0) || (iVar12 = bfd_get_arch_info(param_1), *(int *)(iVar12 + 0xc) == 0)) {\n      uVar13 = *(undefined4 *)(param_3 + 0xc);\n      uVar14 = *(undefined4 *)(param_3 + 0x10);\n    }\n    else {\n      uVar15 = FUN_0002d2a0(param_1);\n      uVar16 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n      FUN_0002c910(uVar16,uVar15);\n    }\n  }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar12 = bfd_get_arch_info(param_1);\n    if ((iVar12 == 0) || (iVar12 = bfd_get_arch_info(param_1), *(int *)(iVar12 + 0xc) == 0)) {\n      uVar13 = *(undefined4 *)(param_3 + 0xc);\n      uVar14 = *(undefined4 *)(param_3 + 0x10);\n    }\n    else {\n      uVar15 = FUN_0002d2a0(param_1);\n      uVar16 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n      FUN_0002c910(uVar16,uVar15);\n    }\n  }" { (expression_statement "iVar12 = bfd_get_arch_info(param_1);" (assignment_expression "iVar12 = bfd_get_arch_info(param_1)" identifier = (call_expression "bfd_get_arch_info(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if ((iVar12 == 0) || (iVar12 = bfd_get_arch_info(param_1), *(int *)(iVar12 + 0xc) == 0)) {\n      uVar13 = *(undefined4 *)(param_3 + 0xc);\n      uVar14 = *(undefined4 *)(param_3 + 0x10);\n    }\n    else {\n      uVar15 = FUN_0002d2a0(param_1);\n      uVar16 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n      FUN_0002c910(uVar16,uVar15);\n    }" if (parenthesized_expression "((iVar12 == 0) || (iVar12 = bfd_get_arch_info(param_1), *(int *)(iVar12 + 0xc) == 0))" ( (binary_expression "(iVar12 == 0) || (iVar12 = bfd_get_arch_info(param_1), *(int *)(iVar12 + 0xc) == 0)" (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar12 = bfd_get_arch_info(param_1), *(int *)(iVar12 + 0xc) == 0)" ( (comma_expression "iVar12 = bfd_get_arch_info(param_1), *(int *)(iVar12 + 0xc) == 0" (assignment_expression "iVar12 = bfd_get_arch_info(param_1)" identifier = (call_expression "bfd_get_arch_info(param_1)" identifier (argument_list "(param_1)" ( identifier )))) , (binary_expression "*(int *)(iVar12 + 0xc) == 0" (pointer_expression "*(int *)(iVar12 + 0xc)" * (cast_expression "(int *)(iVar12 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc)" ( (binary_expression "iVar12 + 0xc" identifier + number_literal) )))) == number_literal)) ))) )) (compound_statement "{\n      uVar13 = *(undefined4 *)(param_3 + 0xc);\n      uVar14 = *(undefined4 *)(param_3 + 0x10);\n    }" { (expression_statement "uVar13 = *(undefined4 *)(param_3 + 0xc);" (assignment_expression "uVar13 = *(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 "uVar14 = *(undefined4 *)(param_3 + 0x10);" (assignment_expression "uVar14 = *(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      uVar15 = FUN_0002d2a0(param_1);\n      uVar16 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n      FUN_0002c910(uVar16,uVar15);\n    }" else (compound_statement "{\n      uVar15 = FUN_0002d2a0(param_1);\n      uVar16 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n      FUN_0002c910(uVar16,uVar15);\n    }" { (expression_statement "uVar15 = FUN_0002d2a0(param_1);" (assignment_expression "uVar15 = FUN_0002d2a0(param_1)" identifier = (call_expression "FUN_0002d2a0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "uVar16 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);" (assignment_expression "uVar16 = 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_0002c910(uVar16,uVar15);" (call_expression "FUN_0002c910(uVar16,uVar15)" identifier (argument_list "(uVar16,uVar15)" ( identifier , identifier ))) ;) }))) })) (expression_statement "iVar12 = (**(code **)(((int *)param_2)[1] + 0x154))(param_2,uVar13,uVar14);" (assignment_expression "iVar12 = (**(code **)(((int *)param_2)[1] + 0x154))(param_2,uVar13,uVar14)" identifier = (call_expression "(**(code **)(((int *)param_2)[1] + 0x154))(param_2,uVar13,uVar14)" (parenthesized_expression "(**(code **)(((int *)param_2)[1] + 0x154))" ( (pointer_expression "**(code **)(((int *)param_2)[1] + 0x154)" * (pointer_expression "*(code **)(((int *)param_2)[1] + 0x154)" * (cast_expression "(code **)(((int *)param_2)[1] + 0x154)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(((int *)param_2)[1] + 0x154)" ( (binary_expression "((int *)param_2)[1] + 0x154" (subscript_expression "((int *)param_2)[1]" (parenthesized_expression "((int *)param_2)" ( (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_2,uVar13,uVar14)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar12 == 0) {\n    if ((*(byte *)((int)param_1 + 0x2b) & 4) != 0) {\nLAB_00018b20:\n      iVar12 = bfd_get_arch(param_1);\n      if (iVar12 == 0) {\n        uVar13 = FUN_0002d2a0(param_1);\n        pcVar25 = "Unable to recognise the format of the input file `%s\'";\n      }\n      else {\n        uVar13 = bfd_get_mach(param_1);\n        uVar14 = bfd_get_arch(param_1);\n        uVar13 = bfd_printable_arch_mach(uVar14,uVar13);\n        pcVar25 = "Output file cannot represent architecture `%s\'";\n      }\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }\n    iVar12 = bfd_get_arch(param_1);\n    iVar31 = bfd_get_arch(param_2);\n    if (iVar12 != iVar31) goto LAB_00018b20;\n  }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n    if ((*(byte *)((int)param_1 + 0x2b) & 4) != 0) {\nLAB_00018b20:\n      iVar12 = bfd_get_arch(param_1);\n      if (iVar12 == 0) {\n        uVar13 = FUN_0002d2a0(param_1);\n        pcVar25 = "Unable to recognise the format of the input file `%s\'";\n      }\n      else {\n        uVar13 = bfd_get_mach(param_1);\n        uVar14 = bfd_get_arch(param_1);\n        uVar13 = bfd_printable_arch_mach(uVar14,uVar13);\n        pcVar25 = "Output file cannot represent architecture `%s\'";\n      }\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }\n    iVar12 = bfd_get_arch(param_1);\n    iVar31 = bfd_get_arch(param_2);\n    if (iVar12 != iVar31) goto LAB_00018b20;\n  }" { (if_statement "if ((*(byte *)((int)param_1 + 0x2b) & 4) != 0) {\nLAB_00018b20:\n      iVar12 = bfd_get_arch(param_1);\n      if (iVar12 == 0) {\n        uVar13 = FUN_0002d2a0(param_1);\n        pcVar25 = "Unable to recognise the format of the input file `%s\'";\n      }\n      else {\n        uVar13 = bfd_get_mach(param_1);\n        uVar14 = bfd_get_arch(param_1);\n        uVar13 = bfd_printable_arch_mach(uVar14,uVar13);\n        pcVar25 = "Output file cannot represent architecture `%s\'";\n      }\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }" if (parenthesized_expression "((*(byte *)((int)param_1 + 0x2b) & 4) != 0)" ( (binary_expression "(*(byte *)((int)param_1 + 0x2b) & 4) != 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x2b) & 4)" ( (binary_expression "*(byte *)((int)param_1 + 0x2b) & 4" (pointer_expression "*(byte *)((int)param_1 + 0x2b)" * (cast_expression "(byte *)((int)param_1 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x2b)" ( (binary_expression "(int)param_1 + 0x2b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_00018b20:\n      iVar12 = bfd_get_arch(param_1);\n      if (iVar12 == 0) {\n        uVar13 = FUN_0002d2a0(param_1);\n        pcVar25 = "Unable to recognise the format of the input file `%s\'";\n      }\n      else {\n        uVar13 = bfd_get_mach(param_1);\n        uVar14 = bfd_get_arch(param_1);\n        uVar13 = bfd_printable_arch_mach(uVar14,uVar13);\n        pcVar25 = "Output file cannot represent architecture `%s\'";\n      }\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }" { (labeled_statement "LAB_00018b20:\n      iVar12 = bfd_get_arch(param_1);" statement_identifier : (expression_statement "iVar12 = bfd_get_arch(param_1);" (assignment_expression "iVar12 = bfd_get_arch(param_1)" identifier = (call_expression "bfd_get_arch(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;)) (if_statement "if (iVar12 == 0) {\n        uVar13 = FUN_0002d2a0(param_1);\n        pcVar25 = "Unable to recognise the format of the input file `%s\'";\n      }\n      else {\n        uVar13 = bfd_get_mach(param_1);\n        uVar14 = bfd_get_arch(param_1);\n        uVar13 = bfd_printable_arch_mach(uVar14,uVar13);\n        pcVar25 = "Output file cannot represent architecture `%s\'";\n      }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar13 = FUN_0002d2a0(param_1);\n        pcVar25 = "Unable to recognise the format of the input file `%s\'";\n      }" { (expression_statement "uVar13 = FUN_0002d2a0(param_1);" (assignment_expression "uVar13 = FUN_0002d2a0(param_1)" identifier = (call_expression "FUN_0002d2a0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "pcVar25 = "Unable to recognise the format of the input file `%s\'";" (assignment_expression "pcVar25 = "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        uVar13 = bfd_get_mach(param_1);\n        uVar14 = bfd_get_arch(param_1);\n        uVar13 = bfd_printable_arch_mach(uVar14,uVar13);\n        pcVar25 = "Output file cannot represent architecture `%s\'";\n      }" else (compound_statement "{\n        uVar13 = bfd_get_mach(param_1);\n        uVar14 = bfd_get_arch(param_1);\n        uVar13 = bfd_printable_arch_mach(uVar14,uVar13);\n        pcVar25 = "Output file cannot represent architecture `%s\'";\n      }" { (expression_statement "uVar13 = bfd_get_mach(param_1);" (assignment_expression "uVar13 = bfd_get_mach(param_1)" identifier = (call_expression "bfd_get_mach(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "uVar14 = bfd_get_arch(param_1);" (assignment_expression "uVar14 = bfd_get_arch(param_1)" identifier = (call_expression "bfd_get_arch(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "uVar13 = bfd_printable_arch_mach(uVar14,uVar13);" (assignment_expression "uVar13 = bfd_printable_arch_mach(uVar14,uVar13)" identifier = (call_expression "bfd_printable_arch_mach(uVar14,uVar13)" identifier (argument_list "(uVar14,uVar13)" ( identifier , identifier )))) ;) (expression_statement "pcVar25 = "Output file cannot represent architecture `%s\'";" (assignment_expression "pcVar25 = "Output file cannot represent architecture `%s\'"" identifier = (string_literal ""Output file cannot represent architecture `%s\'"" " string_content escape_sequence ")) ;) }))) (expression_statement "uVar14 = dcgettext(0,pcVar25,5);" (assignment_expression "uVar14 = dcgettext(0,pcVar25,5)" identifier = (call_expression "dcgettext(0,pcVar25,5)" identifier (argument_list "(0,pcVar25,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_0002c910(uVar14,uVar13);" (call_expression "FUN_0002c910(uVar14,uVar13)" identifier (argument_list "(uVar14,uVar13)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar12 = bfd_get_arch(param_1);" (assignment_expression "iVar12 = bfd_get_arch(param_1)" identifier = (call_expression "bfd_get_arch(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "iVar31 = bfd_get_arch(param_2);" (assignment_expression "iVar31 = bfd_get_arch(param_2)" identifier = (call_expression "bfd_get_arch(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar12 != iVar31) goto LAB_00018b20;" if (parenthesized_expression "(iVar12 != iVar31)" ( (binary_expression "iVar12 != iVar31" identifier != identifier) )) (goto_statement "goto LAB_00018b20;" goto statement_identifier ;)) })) (expression_statement "iVar12 = bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7);" (assignment_expression "iVar12 = bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7)" identifier = (call_expression "bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7)" identifier (argument_list "(param_2,*(byte *)((int)param_1 + 0x28) & 7)" ( identifier , (binary_expression "*(byte *)((int)param_1 + 0x28) & 7" (pointer_expression "*(byte *)((int)param_1 + 0x28)" * (cast_expression "(byte *)((int)param_1 + 0x28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x28)" ( (binary_expression "(int)param_1 + 0x28" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )))) ;) (if_statement "if (iVar12 == 0) {\nLAB_00018b70:\n    FUN_0002d3a0(0,param_1,0,0);\n    return 0;\n  }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00018b70:\n    FUN_0002d3a0(0,param_1,0,0);\n    return 0;\n  }" { (labeled_statement "LAB_00018b70:\n    FUN_0002d3a0(0,param_1,0,0);" statement_identifier : (expression_statement "FUN_0002d3a0(0,param_1,0,0);" (call_expression "FUN_0002d3a0(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 "uVar39 = ((undefined4 *)((int *)param_2)[1])[1];" (assignment_expression "uVar39 = ((undefined4 *)((int *)param_2)[1])[1]" identifier = (subscript_expression "((undefined4 *)((int *)param_2)[1])[1]" (parenthesized_expression "((undefined4 *)((int *)param_2)[1])" ( (cast_expression "(undefined4 *)((int *)param_2)[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "((int *)param_2)[1]" (parenthesized_expression "((int *)param_2)" ( (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) )) [ number_literal ])) ;) (expression_statement "bVar46 = uVar39 < 2;" (assignment_expression "bVar46 = uVar39 < 2" identifier = (binary_expression "uVar39 < 2" identifier < number_literal)) ;) (expression_statement "bVar47 = uVar39 == 2;" (assignment_expression "bVar47 = uVar39 == 2" identifier = (binary_expression "uVar39 == 2" identifier == number_literal)) ;) (if_statement "if (bVar47) {\n    iVar12 = 4;\n    pbVar36 = *(byte **)((int *)param_2)[1];\n    pbVar41 = &DAT_0002f16a;\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar46 = *pbVar36 < *pbVar41;\n      bVar47 = *pbVar36 == *pbVar41;\n      pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n      pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n    } while (bVar47);\n    if ((!bVar46 && !bVar47) == bVar46) {\n      iVar12 = ((int *)param_2)[0x28];\n      uVar39 = (*(undefined4 **)((int)param_1 + 4))[1];\n      bVar46 = uVar39 < 2;\n      bVar47 = uVar39 == 2;\n      if (bVar47) {\n        iVar31 = 4;\n        pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4);\n        pbVar41 = &DAT_0002f16a;\n        do {\n          if (iVar31 == 0) break;\n          iVar31 = iVar31 + -1;\n          bVar46 = *pbVar36 < *pbVar41;\n          bVar47 = *pbVar36 == *pbVar41;\n          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n        } while (bVar47);\n        if ((!bVar46 && !bVar47) == bVar46) {\n          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);\n          puVar42 = (undefined4 *)(iVar12 + 0x7c);\n          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }\n        }\n      }\n      uVar39 = DAT_000402b4;\n      if ((DAT_000402b4 & DAT_000402b0) == 0xffffffff) {\n        DAT_000402b0 = 0x200;\n        DAT_000402b4 = 0;\n      }\n      else {\n        *(uint *)(iVar12 + 0xb4) = DAT_000402b0;\n        *(uint *)(iVar12 + 0xb8) = uVar39;\n      }\n      uVar39 = DAT_000402ac;\n      if ((DAT_000402ac & DAT_000402a8) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a8;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_000402a4;\n      if ((DAT_000402a4 & DAT_000402a0) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a0;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_0004029c;\n      if ((DAT_0004029c & DAT_00040298) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xa4) = DAT_00040298;\n        *(uint *)(iVar12 + 0xa8) = uVar39;\n      }\n      uVar39 = DAT_00040294;\n      local_64 = (int *)DAT_00040290;\n      if ((DAT_00040290 & DAT_00040294) == 0xffffffff) {\n        DAT_00040290 = 0x1000;\n        uVar39 = 0;\n        DAT_00040294 = 0;\n        local_64 = (int *)0x1000;\n      }\n      else {\n        *(uint *)(iVar12 + 0xac) = DAT_00040290;\n        *(uint *)(iVar12 + 0xb0) = uVar39;\n      }\n      uVar17 = DAT_0004028c;\n      if ((DAT_0004028c & DAT_00040288) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040288;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      uVar17 = DAT_00040284;\n      if ((DAT_00040284 & DAT_00040280) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040280;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      if (DAT_0004027c != -1) {\n        *(short *)(iVar12 + 0xd8) = DAT_0004027c;\n      }\n      if (DAT_0004027a != -1) {\n        *(short *)(iVar12 + 0xc4) = DAT_0004027a;\n      }\n      if (DAT_00040278 != -1) {\n        *(short *)(iVar12 + 0xc6) = DAT_00040278;\n      }\n      if (uVar39 < DAT_000402b4 || uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0)) {\n        sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4);\n        sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294);\n        uVar13 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n        FUN_0002c910(uVar13,&local_4c,&local_34);\n      }\n    }\n  }" if (parenthesized_expression "(bVar47)" ( identifier )) (compound_statement "{\n    iVar12 = 4;\n    pbVar36 = *(byte **)((int *)param_2)[1];\n    pbVar41 = &DAT_0002f16a;\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar46 = *pbVar36 < *pbVar41;\n      bVar47 = *pbVar36 == *pbVar41;\n      pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n      pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n    } while (bVar47);\n    if ((!bVar46 && !bVar47) == bVar46) {\n      iVar12 = ((int *)param_2)[0x28];\n      uVar39 = (*(undefined4 **)((int)param_1 + 4))[1];\n      bVar46 = uVar39 < 2;\n      bVar47 = uVar39 == 2;\n      if (bVar47) {\n        iVar31 = 4;\n        pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4);\n        pbVar41 = &DAT_0002f16a;\n        do {\n          if (iVar31 == 0) break;\n          iVar31 = iVar31 + -1;\n          bVar46 = *pbVar36 < *pbVar41;\n          bVar47 = *pbVar36 == *pbVar41;\n          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n        } while (bVar47);\n        if ((!bVar46 && !bVar47) == bVar46) {\n          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);\n          puVar42 = (undefined4 *)(iVar12 + 0x7c);\n          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }\n        }\n      }\n      uVar39 = DAT_000402b4;\n      if ((DAT_000402b4 & DAT_000402b0) == 0xffffffff) {\n        DAT_000402b0 = 0x200;\n        DAT_000402b4 = 0;\n      }\n      else {\n        *(uint *)(iVar12 + 0xb4) = DAT_000402b0;\n        *(uint *)(iVar12 + 0xb8) = uVar39;\n      }\n      uVar39 = DAT_000402ac;\n      if ((DAT_000402ac & DAT_000402a8) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a8;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_000402a4;\n      if ((DAT_000402a4 & DAT_000402a0) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a0;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_0004029c;\n      if ((DAT_0004029c & DAT_00040298) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xa4) = DAT_00040298;\n        *(uint *)(iVar12 + 0xa8) = uVar39;\n      }\n      uVar39 = DAT_00040294;\n      local_64 = (int *)DAT_00040290;\n      if ((DAT_00040290 & DAT_00040294) == 0xffffffff) {\n        DAT_00040290 = 0x1000;\n        uVar39 = 0;\n        DAT_00040294 = 0;\n        local_64 = (int *)0x1000;\n      }\n      else {\n        *(uint *)(iVar12 + 0xac) = DAT_00040290;\n        *(uint *)(iVar12 + 0xb0) = uVar39;\n      }\n      uVar17 = DAT_0004028c;\n      if ((DAT_0004028c & DAT_00040288) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040288;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      uVar17 = DAT_00040284;\n      if ((DAT_00040284 & DAT_00040280) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040280;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      if (DAT_0004027c != -1) {\n        *(short *)(iVar12 + 0xd8) = DAT_0004027c;\n      }\n      if (DAT_0004027a != -1) {\n        *(short *)(iVar12 + 0xc4) = DAT_0004027a;\n      }\n      if (DAT_00040278 != -1) {\n        *(short *)(iVar12 + 0xc6) = DAT_00040278;\n      }\n      if (uVar39 < DAT_000402b4 || uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0)) {\n        sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4);\n        sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294);\n        uVar13 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n        FUN_0002c910(uVar13,&local_4c,&local_34);\n      }\n    }\n  }" { (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" identifier = number_literal) ;) (expression_statement "pbVar36 = *(byte **)((int *)param_2)[1];" (assignment_expression "pbVar36 = *(byte **)((int *)param_2)[1]" identifier = (pointer_expression "*(byte **)((int *)param_2)[1]" * (cast_expression "(byte **)((int *)param_2)[1]" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "((int *)param_2)[1]" (parenthesized_expression "((int *)param_2)" ( (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])))) ;) (expression_statement "pbVar41 = &DAT_0002f16a;" (assignment_expression "pbVar41 = &DAT_0002f16a" identifier = (pointer_expression "&DAT_0002f16a" & identifier)) ;) (do_statement "do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar46 = *pbVar36 < *pbVar41;\n      bVar47 = *pbVar36 == *pbVar41;\n      pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n      pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n    } while (bVar47);" do (compound_statement "{\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar46 = *pbVar36 < *pbVar41;\n      bVar47 = *pbVar36 == *pbVar41;\n      pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n      pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n    }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar46 = *pbVar36 < *pbVar41;" (assignment_expression "bVar46 = *pbVar36 < *pbVar41" identifier = (binary_expression "*pbVar36 < *pbVar41" (pointer_expression "*pbVar36" * identifier) < (pointer_expression "*pbVar41" * identifier))) ;) (expression_statement "bVar47 = *pbVar36 == *pbVar41;" (assignment_expression "bVar47 = *pbVar36 == *pbVar41" identifier = (binary_expression "*pbVar36 == *pbVar41" (pointer_expression "*pbVar36" * identifier) == (pointer_expression "*pbVar41" * identifier))) ;) (expression_statement "pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;" (assignment_expression "pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1" identifier = (binary_expression "pbVar36 + (uint)bVar48 * -2 + 1" (binary_expression "pbVar36 + (uint)bVar48 * -2" identifier + (binary_expression "(uint)bVar48 * -2" (cast_expression "(uint)bVar48" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;" (assignment_expression "pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1" identifier = (binary_expression "pbVar41 + (uint)bVar48 * -2 + 1" (binary_expression "pbVar41 + (uint)bVar48 * -2" identifier + (binary_expression "(uint)bVar48 * -2" (cast_expression "(uint)bVar48" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar47)" ( identifier )) ;) (if_statement "if ((!bVar46 && !bVar47) == bVar46) {\n      iVar12 = ((int *)param_2)[0x28];\n      uVar39 = (*(undefined4 **)((int)param_1 + 4))[1];\n      bVar46 = uVar39 < 2;\n      bVar47 = uVar39 == 2;\n      if (bVar47) {\n        iVar31 = 4;\n        pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4);\n        pbVar41 = &DAT_0002f16a;\n        do {\n          if (iVar31 == 0) break;\n          iVar31 = iVar31 + -1;\n          bVar46 = *pbVar36 < *pbVar41;\n          bVar47 = *pbVar36 == *pbVar41;\n          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n        } while (bVar47);\n        if ((!bVar46 && !bVar47) == bVar46) {\n          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);\n          puVar42 = (undefined4 *)(iVar12 + 0x7c);\n          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }\n        }\n      }\n      uVar39 = DAT_000402b4;\n      if ((DAT_000402b4 & DAT_000402b0) == 0xffffffff) {\n        DAT_000402b0 = 0x200;\n        DAT_000402b4 = 0;\n      }\n      else {\n        *(uint *)(iVar12 + 0xb4) = DAT_000402b0;\n        *(uint *)(iVar12 + 0xb8) = uVar39;\n      }\n      uVar39 = DAT_000402ac;\n      if ((DAT_000402ac & DAT_000402a8) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a8;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_000402a4;\n      if ((DAT_000402a4 & DAT_000402a0) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a0;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_0004029c;\n      if ((DAT_0004029c & DAT_00040298) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xa4) = DAT_00040298;\n        *(uint *)(iVar12 + 0xa8) = uVar39;\n      }\n      uVar39 = DAT_00040294;\n      local_64 = (int *)DAT_00040290;\n      if ((DAT_00040290 & DAT_00040294) == 0xffffffff) {\n        DAT_00040290 = 0x1000;\n        uVar39 = 0;\n        DAT_00040294 = 0;\n        local_64 = (int *)0x1000;\n      }\n      else {\n        *(uint *)(iVar12 + 0xac) = DAT_00040290;\n        *(uint *)(iVar12 + 0xb0) = uVar39;\n      }\n      uVar17 = DAT_0004028c;\n      if ((DAT_0004028c & DAT_00040288) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040288;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      uVar17 = DAT_00040284;\n      if ((DAT_00040284 & DAT_00040280) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040280;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      if (DAT_0004027c != -1) {\n        *(short *)(iVar12 + 0xd8) = DAT_0004027c;\n      }\n      if (DAT_0004027a != -1) {\n        *(short *)(iVar12 + 0xc4) = DAT_0004027a;\n      }\n      if (DAT_00040278 != -1) {\n        *(short *)(iVar12 + 0xc6) = DAT_00040278;\n      }\n      if (uVar39 < DAT_000402b4 || uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0)) {\n        sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4);\n        sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294);\n        uVar13 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n        FUN_0002c910(uVar13,&local_4c,&local_34);\n      }\n    }" if (parenthesized_expression "((!bVar46 && !bVar47) == bVar46)" ( (binary_expression "(!bVar46 && !bVar47) == bVar46" (parenthesized_expression "(!bVar46 && !bVar47)" ( (binary_expression "!bVar46 && !bVar47" (unary_expression "!bVar46" ! identifier) && (unary_expression "!bVar47" ! identifier)) )) == identifier) )) (compound_statement "{\n      iVar12 = ((int *)param_2)[0x28];\n      uVar39 = (*(undefined4 **)((int)param_1 + 4))[1];\n      bVar46 = uVar39 < 2;\n      bVar47 = uVar39 == 2;\n      if (bVar47) {\n        iVar31 = 4;\n        pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4);\n        pbVar41 = &DAT_0002f16a;\n        do {\n          if (iVar31 == 0) break;\n          iVar31 = iVar31 + -1;\n          bVar46 = *pbVar36 < *pbVar41;\n          bVar47 = *pbVar36 == *pbVar41;\n          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n        } while (bVar47);\n        if ((!bVar46 && !bVar47) == bVar46) {\n          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);\n          puVar42 = (undefined4 *)(iVar12 + 0x7c);\n          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }\n        }\n      }\n      uVar39 = DAT_000402b4;\n      if ((DAT_000402b4 & DAT_000402b0) == 0xffffffff) {\n        DAT_000402b0 = 0x200;\n        DAT_000402b4 = 0;\n      }\n      else {\n        *(uint *)(iVar12 + 0xb4) = DAT_000402b0;\n        *(uint *)(iVar12 + 0xb8) = uVar39;\n      }\n      uVar39 = DAT_000402ac;\n      if ((DAT_000402ac & DAT_000402a8) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a8;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_000402a4;\n      if ((DAT_000402a4 & DAT_000402a0) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a0;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_0004029c;\n      if ((DAT_0004029c & DAT_00040298) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xa4) = DAT_00040298;\n        *(uint *)(iVar12 + 0xa8) = uVar39;\n      }\n      uVar39 = DAT_00040294;\n      local_64 = (int *)DAT_00040290;\n      if ((DAT_00040290 & DAT_00040294) == 0xffffffff) {\n        DAT_00040290 = 0x1000;\n        uVar39 = 0;\n        DAT_00040294 = 0;\n        local_64 = (int *)0x1000;\n      }\n      else {\n        *(uint *)(iVar12 + 0xac) = DAT_00040290;\n        *(uint *)(iVar12 + 0xb0) = uVar39;\n      }\n      uVar17 = DAT_0004028c;\n      if ((DAT_0004028c & DAT_00040288) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040288;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      uVar17 = DAT_00040284;\n      if ((DAT_00040284 & DAT_00040280) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040280;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      if (DAT_0004027c != -1) {\n        *(short *)(iVar12 + 0xd8) = DAT_0004027c;\n      }\n      if (DAT_0004027a != -1) {\n        *(short *)(iVar12 + 0xc4) = DAT_0004027a;\n      }\n      if (DAT_00040278 != -1) {\n        *(short *)(iVar12 + 0xc6) = DAT_00040278;\n      }\n      if (uVar39 < DAT_000402b4 || uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0)) {\n        sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4);\n        sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294);\n        uVar13 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n        FUN_0002c910(uVar13,&local_4c,&local_34);\n      }\n    }" { (expression_statement "iVar12 = ((int *)param_2)[0x28];" (assignment_expression "iVar12 = ((int *)param_2)[0x28]" identifier = (subscript_expression "((int *)param_2)[0x28]" (parenthesized_expression "((int *)param_2)" ( (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;) (expression_statement "uVar39 = (*(undefined4 **)((int)param_1 + 4))[1];" (assignment_expression "uVar39 = (*(undefined4 **)((int)param_1 + 4))[1]" identifier = (subscript_expression "(*(undefined4 **)((int)param_1 + 4))[1]" (parenthesized_expression "(*(undefined4 **)((int)param_1 + 4))" ( (pointer_expression "*(undefined4 **)((int)param_1 + 4)" * (cast_expression "(undefined4 **)((int)param_1 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )) [ number_literal ])) ;) (expression_statement "bVar46 = uVar39 < 2;" (assignment_expression "bVar46 = uVar39 < 2" identifier = (binary_expression "uVar39 < 2" identifier < number_literal)) ;) (expression_statement "bVar47 = uVar39 == 2;" (assignment_expression "bVar47 = uVar39 == 2" identifier = (binary_expression "uVar39 == 2" identifier == number_literal)) ;) (if_statement "if (bVar47) {\n        iVar31 = 4;\n        pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4);\n        pbVar41 = &DAT_0002f16a;\n        do {\n          if (iVar31 == 0) break;\n          iVar31 = iVar31 + -1;\n          bVar46 = *pbVar36 < *pbVar41;\n          bVar47 = *pbVar36 == *pbVar41;\n          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n        } while (bVar47);\n        if ((!bVar46 && !bVar47) == bVar46) {\n          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);\n          puVar42 = (undefined4 *)(iVar12 + 0x7c);\n          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }\n        }\n      }" if (parenthesized_expression "(bVar47)" ( identifier )) (compound_statement "{\n        iVar31 = 4;\n        pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4);\n        pbVar41 = &DAT_0002f16a;\n        do {\n          if (iVar31 == 0) break;\n          iVar31 = iVar31 + -1;\n          bVar46 = *pbVar36 < *pbVar41;\n          bVar47 = *pbVar36 == *pbVar41;\n          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n        } while (bVar47);\n        if ((!bVar46 && !bVar47) == bVar46) {\n          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);\n          puVar42 = (undefined4 *)(iVar12 + 0x7c);\n          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }\n        }\n      }" { (expression_statement "iVar31 = 4;" (assignment_expression "iVar31 = 4" identifier = number_literal) ;) (expression_statement "pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4);" (assignment_expression "pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4)" identifier = (cast_expression "(byte *)**(undefined4 **)((int)param_1 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)((int)param_1 + 4)" * (pointer_expression "*(undefined4 **)((int)param_1 + 4)" * (cast_expression "(undefined4 **)((int)param_1 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))))) ;) (expression_statement "pbVar41 = &DAT_0002f16a;" (assignment_expression "pbVar41 = &DAT_0002f16a" identifier = (pointer_expression "&DAT_0002f16a" & identifier)) ;) (do_statement "do {\n          if (iVar31 == 0) break;\n          iVar31 = iVar31 + -1;\n          bVar46 = *pbVar36 < *pbVar41;\n          bVar47 = *pbVar36 == *pbVar41;\n          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n        } while (bVar47);" do (compound_statement "{\n          if (iVar31 == 0) break;\n          iVar31 = iVar31 + -1;\n          bVar46 = *pbVar36 < *pbVar41;\n          bVar47 = *pbVar36 == *pbVar41;\n          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n        }" { (if_statement "if (iVar31 == 0) break;" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar31 = iVar31 + -1;" (assignment_expression "iVar31 = iVar31 + -1" identifier = (binary_expression "iVar31 + -1" identifier + number_literal)) ;) (expression_statement "bVar46 = *pbVar36 < *pbVar41;" (assignment_expression "bVar46 = *pbVar36 < *pbVar41" identifier = (binary_expression "*pbVar36 < *pbVar41" (pointer_expression "*pbVar36" * identifier) < (pointer_expression "*pbVar41" * identifier))) ;) (expression_statement "bVar47 = *pbVar36 == *pbVar41;" (assignment_expression "bVar47 = *pbVar36 == *pbVar41" identifier = (binary_expression "*pbVar36 == *pbVar41" (pointer_expression "*pbVar36" * identifier) == (pointer_expression "*pbVar41" * identifier))) ;) (expression_statement "pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;" (assignment_expression "pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1" identifier = (binary_expression "pbVar36 + (uint)bVar48 * -2 + 1" (binary_expression "pbVar36 + (uint)bVar48 * -2" identifier + (binary_expression "(uint)bVar48 * -2" (cast_expression "(uint)bVar48" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;" (assignment_expression "pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1" identifier = (binary_expression "pbVar41 + (uint)bVar48 * -2 + 1" (binary_expression "pbVar41 + (uint)bVar48 * -2" identifier + (binary_expression "(uint)bVar48 * -2" (cast_expression "(uint)bVar48" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar47)" ( identifier )) ;) (if_statement "if ((!bVar46 && !bVar47) == bVar46) {\n          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);\n          puVar42 = (undefined4 *)(iVar12 + 0x7c);\n          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }\n        }" if (parenthesized_expression "((!bVar46 && !bVar47) == bVar46)" ( (binary_expression "(!bVar46 && !bVar47) == bVar46" (parenthesized_expression "(!bVar46 && !bVar47)" ( (binary_expression "!bVar46 && !bVar47" (unary_expression "!bVar46" ! identifier) && (unary_expression "!bVar47" ! identifier)) )) == identifier) )) (compound_statement "{\n          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);\n          puVar42 = (undefined4 *)(iVar12 + 0x7c);\n          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }\n        }" { (expression_statement "puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);" (assignment_expression "puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c)" identifier = (cast_expression "(undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)param_1 + 0xa0) + 0x7c)" ( (binary_expression "*(int *)((int)param_1 + 0xa0) + 0x7c" (pointer_expression "*(int *)((int)param_1 + 0xa0)" * (cast_expression "(int *)((int)param_1 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0xa0)" ( (binary_expression "(int)param_1 + 0xa0" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar42 = (undefined4 *)(iVar12 + 0x7c);" (assignment_expression "puVar42 = (undefined4 *)(iVar12 + 0x7c)" identifier = (cast_expression "(undefined4 *)(iVar12 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x7c)" ( (binary_expression "iVar12 + 0x7c" identifier + number_literal) )))) ;) (for_statement "for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }" for ( (assignment_expression "iVar31 = 0x52" identifier = number_literal) ; (binary_expression "iVar31 != 0" identifier != number_literal) ; (assignment_expression "iVar31 = iVar31 + -1" identifier = (binary_expression "iVar31 + -1" identifier + number_literal)) ) (compound_statement "{\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }" { (expression_statement "*puVar42 = *puVar35;" (assignment_expression "*puVar42 = *puVar35" (pointer_expression "*puVar42" * identifier) = (pointer_expression "*puVar35" * identifier)) ;) (expression_statement "puVar35 = puVar35 + (uint)bVar48 * -2 + 1;" (assignment_expression "puVar35 = puVar35 + (uint)bVar48 * -2 + 1" identifier = (binary_expression "puVar35 + (uint)bVar48 * -2 + 1" (binary_expression "puVar35 + (uint)bVar48 * -2" identifier + (binary_expression "(uint)bVar48 * -2" (cast_expression "(uint)bVar48" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar42 = puVar42 + (uint)bVar48 * -2 + 1;" (assignment_expression "puVar42 = puVar42 + (uint)bVar48 * -2 + 1" identifier = (binary_expression "puVar42 + (uint)bVar48 * -2 + 1" (binary_expression "puVar42 + (uint)bVar48 * -2" identifier + (binary_expression "(uint)bVar48 * -2" (cast_expression "(uint)bVar48" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) })) })) (expression_statement "uVar39 = DAT_000402b4;" (assignment_expression "uVar39 = DAT_000402b4" identifier = identifier) ;) (if_statement "if ((DAT_000402b4 & DAT_000402b0) == 0xffffffff) {\n        DAT_000402b0 = 0x200;\n        DAT_000402b4 = 0;\n      }\n      else {\n        *(uint *)(iVar12 + 0xb4) = DAT_000402b0;\n        *(uint *)(iVar12 + 0xb8) = uVar39;\n      }" if (parenthesized_expression "((DAT_000402b4 & DAT_000402b0) == 0xffffffff)" ( (binary_expression "(DAT_000402b4 & DAT_000402b0) == 0xffffffff" (parenthesized_expression "(DAT_000402b4 & DAT_000402b0)" ( (binary_expression "DAT_000402b4 & DAT_000402b0" identifier & identifier) )) == number_literal) )) (compound_statement "{\n        DAT_000402b0 = 0x200;\n        DAT_000402b4 = 0;\n      }" { (expression_statement "DAT_000402b0 = 0x200;" (assignment_expression "DAT_000402b0 = 0x200" identifier = number_literal) ;) (expression_statement "DAT_000402b4 = 0;" (assignment_expression "DAT_000402b4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        *(uint *)(iVar12 + 0xb4) = DAT_000402b0;\n        *(uint *)(iVar12 + 0xb8) = uVar39;\n      }" else (compound_statement "{\n        *(uint *)(iVar12 + 0xb4) = DAT_000402b0;\n        *(uint *)(iVar12 + 0xb8) = uVar39;\n      }" { (expression_statement "*(uint *)(iVar12 + 0xb4) = DAT_000402b0;" (assignment_expression "*(uint *)(iVar12 + 0xb4) = DAT_000402b0" (pointer_expression "*(uint *)(iVar12 + 0xb4)" * (cast_expression "(uint *)(iVar12 + 0xb4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xb4)" ( (binary_expression "iVar12 + 0xb4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar12 + 0xb8) = uVar39;" (assignment_expression "*(uint *)(iVar12 + 0xb8) = uVar39" (pointer_expression "*(uint *)(iVar12 + 0xb8)" * (cast_expression "(uint *)(iVar12 + 0xb8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xb8)" ( (binary_expression "iVar12 + 0xb8" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "uVar39 = DAT_000402ac;" (assignment_expression "uVar39 = DAT_000402ac" identifier = identifier) ;) (if_statement "if ((DAT_000402ac & DAT_000402a8) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a8;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }" if (parenthesized_expression "((DAT_000402ac & DAT_000402a8) != 0xffffffff)" ( (binary_expression "(DAT_000402ac & DAT_000402a8) != 0xffffffff" (parenthesized_expression "(DAT_000402ac & DAT_000402a8)" ( (binary_expression "DAT_000402ac & DAT_000402a8" identifier & identifier) )) != number_literal) )) (compound_statement "{\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a8;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }" { (expression_statement "*(uint *)(iVar12 + 0xf4) = DAT_000402a8;" (assignment_expression "*(uint *)(iVar12 + 0xf4) = DAT_000402a8" (pointer_expression "*(uint *)(iVar12 + 0xf4)" * (cast_expression "(uint *)(iVar12 + 0xf4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xf4)" ( (binary_expression "iVar12 + 0xf4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar12 + 0xf8) = uVar39;" (assignment_expression "*(uint *)(iVar12 + 0xf8) = uVar39" (pointer_expression "*(uint *)(iVar12 + 0xf8)" * (cast_expression "(uint *)(iVar12 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xf8)" ( (binary_expression "iVar12 + 0xf8" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "uVar39 = DAT_000402a4;" (assignment_expression "uVar39 = DAT_000402a4" identifier = identifier) ;) (if_statement "if ((DAT_000402a4 & DAT_000402a0) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a0;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }" if (parenthesized_expression "((DAT_000402a4 & DAT_000402a0) != 0xffffffff)" ( (binary_expression "(DAT_000402a4 & DAT_000402a0) != 0xffffffff" (parenthesized_expression "(DAT_000402a4 & DAT_000402a0)" ( (binary_expression "DAT_000402a4 & DAT_000402a0" identifier & identifier) )) != number_literal) )) (compound_statement "{\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a0;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }" { (expression_statement "*(uint *)(iVar12 + 0xf4) = DAT_000402a0;" (assignment_expression "*(uint *)(iVar12 + 0xf4) = DAT_000402a0" (pointer_expression "*(uint *)(iVar12 + 0xf4)" * (cast_expression "(uint *)(iVar12 + 0xf4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xf4)" ( (binary_expression "iVar12 + 0xf4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar12 + 0xf8) = uVar39;" (assignment_expression "*(uint *)(iVar12 + 0xf8) = uVar39" (pointer_expression "*(uint *)(iVar12 + 0xf8)" * (cast_expression "(uint *)(iVar12 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xf8)" ( (binary_expression "iVar12 + 0xf8" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "uVar39 = DAT_0004029c;" (assignment_expression "uVar39 = DAT_0004029c" identifier = identifier) ;) (if_statement "if ((DAT_0004029c & DAT_00040298) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xa4) = DAT_00040298;\n        *(uint *)(iVar12 + 0xa8) = uVar39;\n      }" if (parenthesized_expression "((DAT_0004029c & DAT_00040298) != 0xffffffff)" ( (binary_expression "(DAT_0004029c & DAT_00040298) != 0xffffffff" (parenthesized_expression "(DAT_0004029c & DAT_00040298)" ( (binary_expression "DAT_0004029c & DAT_00040298" identifier & identifier) )) != number_literal) )) (compound_statement "{\n        *(uint *)(iVar12 + 0xa4) = DAT_00040298;\n        *(uint *)(iVar12 + 0xa8) = uVar39;\n      }" { (expression_statement "*(uint *)(iVar12 + 0xa4) = DAT_00040298;" (assignment_expression "*(uint *)(iVar12 + 0xa4) = DAT_00040298" (pointer_expression "*(uint *)(iVar12 + 0xa4)" * (cast_expression "(uint *)(iVar12 + 0xa4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xa4)" ( (binary_expression "iVar12 + 0xa4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar12 + 0xa8) = uVar39;" (assignment_expression "*(uint *)(iVar12 + 0xa8) = uVar39" (pointer_expression "*(uint *)(iVar12 + 0xa8)" * (cast_expression "(uint *)(iVar12 + 0xa8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xa8)" ( (binary_expression "iVar12 + 0xa8" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "uVar39 = DAT_00040294;" (assignment_expression "uVar39 = DAT_00040294" identifier = identifier) ;) (expression_statement "local_64 = (int *)DAT_00040290;" (assignment_expression "local_64 = (int *)DAT_00040290" identifier = (cast_expression "(int *)DAT_00040290" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((DAT_00040290 & DAT_00040294) == 0xffffffff) {\n        DAT_00040290 = 0x1000;\n        uVar39 = 0;\n        DAT_00040294 = 0;\n        local_64 = (int *)0x1000;\n      }\n      else {\n        *(uint *)(iVar12 + 0xac) = DAT_00040290;\n        *(uint *)(iVar12 + 0xb0) = uVar39;\n      }" if (parenthesized_expression "((DAT_00040290 & DAT_00040294) == 0xffffffff)" ( (binary_expression "(DAT_00040290 & DAT_00040294) == 0xffffffff" (parenthesized_expression "(DAT_00040290 & DAT_00040294)" ( (binary_expression "DAT_00040290 & DAT_00040294" identifier & identifier) )) == number_literal) )) (compound_statement "{\n        DAT_00040290 = 0x1000;\n        uVar39 = 0;\n        DAT_00040294 = 0;\n        local_64 = (int *)0x1000;\n      }" { (expression_statement "DAT_00040290 = 0x1000;" (assignment_expression "DAT_00040290 = 0x1000" identifier = number_literal) ;) (expression_statement "uVar39 = 0;" (assignment_expression "uVar39 = 0" identifier = number_literal) ;) (expression_statement "DAT_00040294 = 0;" (assignment_expression "DAT_00040294 = 0" identifier = number_literal) ;) (expression_statement "local_64 = (int *)0x1000;" (assignment_expression "local_64 = (int *)0x1000" identifier = (cast_expression "(int *)0x1000" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        *(uint *)(iVar12 + 0xac) = DAT_00040290;\n        *(uint *)(iVar12 + 0xb0) = uVar39;\n      }" else (compound_statement "{\n        *(uint *)(iVar12 + 0xac) = DAT_00040290;\n        *(uint *)(iVar12 + 0xb0) = uVar39;\n      }" { (expression_statement "*(uint *)(iVar12 + 0xac) = DAT_00040290;" (assignment_expression "*(uint *)(iVar12 + 0xac) = DAT_00040290" (pointer_expression "*(uint *)(iVar12 + 0xac)" * (cast_expression "(uint *)(iVar12 + 0xac)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xac)" ( (binary_expression "iVar12 + 0xac" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar12 + 0xb0) = uVar39;" (assignment_expression "*(uint *)(iVar12 + 0xb0) = uVar39" (pointer_expression "*(uint *)(iVar12 + 0xb0)" * (cast_expression "(uint *)(iVar12 + 0xb0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xb0)" ( (binary_expression "iVar12 + 0xb0" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "uVar17 = DAT_0004028c;" (assignment_expression "uVar17 = DAT_0004028c" identifier = identifier) ;) (if_statement "if ((DAT_0004028c & DAT_00040288) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040288;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }" if (parenthesized_expression "((DAT_0004028c & DAT_00040288) != 0xffffffff)" ( (binary_expression "(DAT_0004028c & DAT_00040288) != 0xffffffff" (parenthesized_expression "(DAT_0004028c & DAT_00040288)" ( (binary_expression "DAT_0004028c & DAT_00040288" identifier & identifier) )) != number_literal) )) (compound_statement "{\n        *(uint *)(iVar12 + 0xe4) = DAT_00040288;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }" { (expression_statement "*(uint *)(iVar12 + 0xe4) = DAT_00040288;" (assignment_expression "*(uint *)(iVar12 + 0xe4) = DAT_00040288" (pointer_expression "*(uint *)(iVar12 + 0xe4)" * (cast_expression "(uint *)(iVar12 + 0xe4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe4)" ( (binary_expression "iVar12 + 0xe4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar12 + 0xe8) = uVar17;" (assignment_expression "*(uint *)(iVar12 + 0xe8) = uVar17" (pointer_expression "*(uint *)(iVar12 + 0xe8)" * (cast_expression "(uint *)(iVar12 + 0xe8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe8)" ( (binary_expression "iVar12 + 0xe8" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "uVar17 = DAT_00040284;" (assignment_expression "uVar17 = DAT_00040284" identifier = identifier) ;) (if_statement "if ((DAT_00040284 & DAT_00040280) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040280;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }" if (parenthesized_expression "((DAT_00040284 & DAT_00040280) != 0xffffffff)" ( (binary_expression "(DAT_00040284 & DAT_00040280) != 0xffffffff" (parenthesized_expression "(DAT_00040284 & DAT_00040280)" ( (binary_expression "DAT_00040284 & DAT_00040280" identifier & identifier) )) != number_literal) )) (compound_statement "{\n        *(uint *)(iVar12 + 0xe4) = DAT_00040280;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }" { (expression_statement "*(uint *)(iVar12 + 0xe4) = DAT_00040280;" (assignment_expression "*(uint *)(iVar12 + 0xe4) = DAT_00040280" (pointer_expression "*(uint *)(iVar12 + 0xe4)" * (cast_expression "(uint *)(iVar12 + 0xe4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe4)" ( (binary_expression "iVar12 + 0xe4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar12 + 0xe8) = uVar17;" (assignment_expression "*(uint *)(iVar12 + 0xe8) = uVar17" (pointer_expression "*(uint *)(iVar12 + 0xe8)" * (cast_expression "(uint *)(iVar12 + 0xe8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe8)" ( (binary_expression "iVar12 + 0xe8" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (DAT_0004027c != -1) {\n        *(short *)(iVar12 + 0xd8) = DAT_0004027c;\n      }" if (parenthesized_expression "(DAT_0004027c != -1)" ( (binary_expression "DAT_0004027c != -1" identifier != number_literal) )) (compound_statement "{\n        *(short *)(iVar12 + 0xd8) = DAT_0004027c;\n      }" { (expression_statement "*(short *)(iVar12 + 0xd8) = DAT_0004027c;" (assignment_expression "*(short *)(iVar12 + 0xd8) = DAT_0004027c" (pointer_expression "*(short *)(iVar12 + 0xd8)" * (cast_expression "(short *)(iVar12 + 0xd8)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xd8)" ( (binary_expression "iVar12 + 0xd8" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (DAT_0004027a != -1) {\n        *(short *)(iVar12 + 0xc4) = DAT_0004027a;\n      }" if (parenthesized_expression "(DAT_0004027a != -1)" ( (binary_expression "DAT_0004027a != -1" identifier != number_literal) )) (compound_statement "{\n        *(short *)(iVar12 + 0xc4) = DAT_0004027a;\n      }" { (expression_statement "*(short *)(iVar12 + 0xc4) = DAT_0004027a;" (assignment_expression "*(short *)(iVar12 + 0xc4) = DAT_0004027a" (pointer_expression "*(short *)(iVar12 + 0xc4)" * (cast_expression "(short *)(iVar12 + 0xc4)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc4)" ( (binary_expression "iVar12 + 0xc4" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (DAT_00040278 != -1) {\n        *(short *)(iVar12 + 0xc6) = DAT_00040278;\n      }" if (parenthesized_expression "(DAT_00040278 != -1)" ( (binary_expression "DAT_00040278 != -1" identifier != number_literal) )) (compound_statement "{\n        *(short *)(iVar12 + 0xc6) = DAT_00040278;\n      }" { (expression_statement "*(short *)(iVar12 + 0xc6) = DAT_00040278;" (assignment_expression "*(short *)(iVar12 + 0xc6) = DAT_00040278" (pointer_expression "*(short *)(iVar12 + 0xc6)" * (cast_expression "(short *)(iVar12 + 0xc6)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc6)" ( (binary_expression "iVar12 + 0xc6" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (uVar39 < DAT_000402b4 || uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0)) {\n        sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4);\n        sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294);\n        uVar13 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n        FUN_0002c910(uVar13,&local_4c,&local_34);\n      }" if (parenthesized_expression "(uVar39 < DAT_000402b4 || uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0))" ( (binary_expression "uVar39 < DAT_000402b4 || uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0)" (binary_expression "uVar39 < DAT_000402b4" identifier < identifier) || (binary_expression "uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0)" (binary_expression "uVar39 - DAT_000402b4" identifier - identifier) < (call_expression "(uint)(local_64 < DAT_000402b0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_64 < DAT_000402b0)" ( (binary_expression "local_64 < DAT_000402b0" identifier < identifier) ))))) )) (compound_statement "{\n        sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4);\n        sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294);\n        uVar13 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n        FUN_0002c910(uVar13,&local_4c,&local_34);\n      }" { (expression_statement "sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4);" (call_expression "sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4)" identifier (argument_list "((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4)" ( (cast_expression "(char *)&local_4c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_4c" & identifier)) , (string_literal ""%016llx"" " string_content ") , identifier , identifier ))) ;) (expression_statement "sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294);" (call_expression "sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294)" identifier (argument_list "((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294)" ( (cast_expression "(char *)&local_34" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_34" & identifier)) , (string_literal ""%016llx"" " string_content ") , identifier , identifier ))) ;) (expression_statement "uVar13 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);" (assignment_expression "uVar13 = 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_0002c910(uVar13,&local_4c,&local_34);" (call_expression "FUN_0002c910(uVar13,&local_4c,&local_34)" identifier (argument_list "(uVar13,&local_4c,&local_34)" ( identifier , (pointer_expression "&local_4c" & identifier) , (pointer_expression "&local_34" & identifier) ))) ;) })) })) })) (expression_statement "piVar19 = DAT_00040bdc;" (assignment_expression "piVar19 = DAT_00040bdc" identifier = identifier) ;) (if_statement "if (DAT_00040bdc != (int *)0x0) {\n    free(DAT_00040bdc);\n  }" if (parenthesized_expression "(DAT_00040bdc != (int *)0x0)" ( (binary_expression "DAT_00040bdc != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    free(DAT_00040bdc);\n  }" { (expression_statement "free(DAT_00040bdc);" (call_expression "free(DAT_00040bdc)" identifier (argument_list "(DAT_00040bdc)" ( identifier ))) ;) })) (if_statement "if (piVar19 != DAT_00040bd8) {\n    free(DAT_00040bd8);\n  }" if (parenthesized_expression "(piVar19 != DAT_00040bd8)" ( (binary_expression "piVar19 != DAT_00040bd8" identifier != identifier) )) (compound_statement "{\n    free(DAT_00040bd8);\n  }" { (expression_statement "free(DAT_00040bd8);" (call_expression "free(DAT_00040bd8)" identifier (argument_list "(DAT_00040bd8)" ( identifier ))) ;) })) (expression_statement "DAT_00040bdc = (int *)0x0;" (assignment_expression "DAT_00040bdc = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00040bd8 = (int *)0x0;" (assignment_expression "DAT_00040bd8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar12 = (**(code **)(*(int *)((int)param_1 + 4) + 0x104))(param_1);" (assignment_expression "iVar12 = (**(code **)(*(int *)((int)param_1 + 4) + 0x104))(param_1)" identifier = (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x104))(param_1)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x104))" ( (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x104)" * (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x104)" * (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x104)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x104)" ( (binary_expression "*(int *)((int)param_1 + 4) + 0x104" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) )) (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar12 < 0) goto LAB_00018b70;" if (parenthesized_expression "(iVar12 < 0)" ( (binary_expression "iVar12 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00018b70;" goto statement_identifier ;)) (expression_statement "DAT_00040bd8 = (int *)xmalloc(iVar12);" (assignment_expression "DAT_00040bd8 = (int *)xmalloc(iVar12)" identifier = (cast_expression "(int *)xmalloc(iVar12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar12)" identifier (argument_list "(iVar12)" ( identifier ))))) ;) (expression_statement "DAT_00040bdc = DAT_00040bd8;" (assignment_expression "DAT_00040bdc = DAT_00040bd8" identifier = identifier) ;) (expression_statement "local_8c = (**(code **)(*(int *)((int)param_1 + 4) + 0x108))(param_1,DAT_00040bd8);" (assignment_expression "local_8c = (**(code **)(*(int *)((int)param_1 + 4) + 0x108))(param_1,DAT_00040bd8)" identifier = (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x108))(param_1,DAT_00040bd8)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x108))" ( (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x108)" * (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x108)" * (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x108)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x108)" ( (binary_expression "*(int *)((int)param_1 + 4) + 0x108" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) )) (argument_list "(param_1,DAT_00040bd8)" ( identifier , identifier )))) ;) (if_statement "if (local_8c < 0) goto LAB_00018b70;" if (parenthesized_expression "(local_8c < 0)" ( (binary_expression "local_8c < 0" identifier < number_literal) )) (goto_statement "goto LAB_00018b70;" goto statement_identifier ;)) (if_statement "if (local_8c == 0) {\n    free(DAT_00040bdc);\n    DAT_00040bdc = (int *)0x0;\n    DAT_00040bd8 = (int *)0x0;\n  }" if (parenthesized_expression "(local_8c == 0)" ( (binary_expression "local_8c == 0" identifier == number_literal) )) (compound_statement "{\n    free(DAT_00040bdc);\n    DAT_00040bdc = (int *)0x0;\n    DAT_00040bd8 = (int *)0x0;\n  }" { (expression_statement "free(DAT_00040bdc);" (call_expression "free(DAT_00040bdc)" identifier (argument_list "(DAT_00040bdc)" ( identifier ))) ;) (expression_statement "DAT_00040bdc = (int *)0x0;" (assignment_expression "DAT_00040bdc = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00040bd8 = (int *)0x0;" (assignment_expression "DAT_00040bd8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "bfd_map_over_sections(param_1,FUN_00017af0,param_2);" (call_expression "bfd_map_over_sections(param_1,FUN_00017af0,param_2)" identifier (argument_list "(param_1,FUN_00017af0,param_2)" ( identifier , identifier , identifier ))) ;) (expression_statement "puVar35 = DAT_00040b58;" (assignment_expression "puVar35 = DAT_00040b58" identifier = identifier) ;) (if_statement "if ((DAT_00040aec == 0) &&\n     (iVar12 = (**(code **)(((int *)param_2)[1] + 0xbc))(param_1,param_2), puVar35 = DAT_00040b58,\n     iVar12 == 0)) {\n    DAT_00040bc8 = 1;\n    uVar13 = dcgettext(0,"error in private header data",5);\n    FUN_0002d3a0(0,param_1,0,uVar13);\n    puVar35 = DAT_00040b58;\n  }" if (parenthesized_expression "((DAT_00040aec == 0) &&\n     (iVar12 = (**(code **)(((int *)param_2)[1] + 0xbc))(param_1,param_2), puVar35 = DAT_00040b58,\n     iVar12 == 0))" ( (binary_expression "(DAT_00040aec == 0) &&\n     (iVar12 = (**(code **)(((int *)param_2)[1] + 0xbc))(param_1,param_2), puVar35 = DAT_00040b58,\n     iVar12 == 0)" (parenthesized_expression "(DAT_00040aec == 0)" ( (binary_expression "DAT_00040aec == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar12 = (**(code **)(((int *)param_2)[1] + 0xbc))(param_1,param_2), puVar35 = DAT_00040b58,\n     iVar12 == 0)" ( (comma_expression "iVar12 = (**(code **)(((int *)param_2)[1] + 0xbc))(param_1,param_2), puVar35 = DAT_00040b58,\n     iVar12 == 0" (assignment_expression "iVar12 = (**(code **)(((int *)param_2)[1] + 0xbc))(param_1,param_2)" identifier = (call_expression "(**(code **)(((int *)param_2)[1] + 0xbc))(param_1,param_2)" (parenthesized_expression "(**(code **)(((int *)param_2)[1] + 0xbc))" ( (pointer_expression "**(code **)(((int *)param_2)[1] + 0xbc)" * (pointer_expression "*(code **)(((int *)param_2)[1] + 0xbc)" * (cast_expression "(code **)(((int *)param_2)[1] + 0xbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(((int *)param_2)[1] + 0xbc)" ( (binary_expression "((int *)param_2)[1] + 0xbc" (subscript_expression "((int *)param_2)[1]" (parenthesized_expression "((int *)param_2)" ( (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1,param_2)" ( identifier , identifier )))) , (comma_expression "puVar35 = DAT_00040b58,\n     iVar12 == 0" (assignment_expression "puVar35 = DAT_00040b58" identifier = identifier) , (binary_expression "iVar12 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n    DAT_00040bc8 = 1;\n    uVar13 = dcgettext(0,"error in private header data",5);\n    FUN_0002d3a0(0,param_1,0,uVar13);\n    puVar35 = DAT_00040b58;\n  }" { (expression_statement "DAT_00040bc8 = 1;" (assignment_expression "DAT_00040bc8 = 1" identifier = number_literal) ;) (expression_statement "uVar13 = dcgettext(0,"error in private header data",5);" (assignment_expression "uVar13 = 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_0002d3a0(0,param_1,0,uVar13);" (call_expression "FUN_0002d3a0(0,param_1,0,uVar13)" identifier (argument_list "(0,param_1,0,uVar13)" ( number_literal , identifier , number_literal , identifier ))) ;) (expression_statement "puVar35 = DAT_00040b58;" (assignment_expression "puVar35 = DAT_00040b58" identifier = identifier) ;) })) (for_statement "for (; puVar42 = DAT_00040b54, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)*puVar35) {\n    uVar39 = 0x128;\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      uVar39 = *(uint *)(iVar12 + 0x20) | 0x100;\n    }\n    iVar12 = bfd_get_section_by_name(param_2,puVar35[1]);\n    if (iVar12 != 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t add section \'%s\'";\nLAB_00019591:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n      return 0;\n    }\n    iVar12 = bfd_make_section_with_flags(param_2,puVar35[1],uVar39 | 0x100000);\n    puVar35[5] = iVar12;\n    if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t create section `%s\'";\n      goto LAB_00019591;\n    }\n    iVar12 = bfd_set_section_size(param_2,iVar12,puVar35[3],0);\n    if (iVar12 == 0) goto LAB_00019d5e;\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x14);\n      uVar14 = *(undefined4 *)(iVar12 + 0x10);\n      *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      *(undefined4 *)(iVar31 + 0x24) = uVar14;\n      *(undefined4 *)(iVar31 + 0x28) = uVar13;\n      *(undefined4 *)(iVar31 + 0x1c) = uVar14;\n      *(undefined4 *)(iVar31 + 0x20) = uVar13;\n    }\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x18);\n      *(undefined4 *)(iVar31 + 0x28) = *(undefined4 *)(iVar12 + 0x1c);\n      *(undefined4 *)(iVar31 + 0x24) = uVar13;\n    }\n  }" for ( ; (comma_expression "puVar42 = DAT_00040b54, puVar35 != (undefined4 *)0x0" (assignment_expression "puVar42 = DAT_00040b54" identifier = identifier) , (binary_expression "puVar35 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "puVar35 = (undefined4 *)*puVar35" identifier = (cast_expression "(undefined4 *)*puVar35" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar35" * identifier))) ) (compound_statement "{\n    uVar39 = 0x128;\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      uVar39 = *(uint *)(iVar12 + 0x20) | 0x100;\n    }\n    iVar12 = bfd_get_section_by_name(param_2,puVar35[1]);\n    if (iVar12 != 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t add section \'%s\'";\nLAB_00019591:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n      return 0;\n    }\n    iVar12 = bfd_make_section_with_flags(param_2,puVar35[1],uVar39 | 0x100000);\n    puVar35[5] = iVar12;\n    if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t create section `%s\'";\n      goto LAB_00019591;\n    }\n    iVar12 = bfd_set_section_size(param_2,iVar12,puVar35[3],0);\n    if (iVar12 == 0) goto LAB_00019d5e;\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x14);\n      uVar14 = *(undefined4 *)(iVar12 + 0x10);\n      *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      *(undefined4 *)(iVar31 + 0x24) = uVar14;\n      *(undefined4 *)(iVar31 + 0x28) = uVar13;\n      *(undefined4 *)(iVar31 + 0x1c) = uVar14;\n      *(undefined4 *)(iVar31 + 0x20) = uVar13;\n    }\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x18);\n      *(undefined4 *)(iVar31 + 0x28) = *(undefined4 *)(iVar12 + 0x1c);\n      *(undefined4 *)(iVar31 + 0x24) = uVar13;\n    }\n  }" { (expression_statement "uVar39 = 0x128;" (assignment_expression "uVar39 = 0x128" identifier = number_literal) ;) (expression_statement "iVar12 = FUN_00016a30();" (assignment_expression "iVar12 = FUN_00016a30()" identifier = (call_expression "FUN_00016a30()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar12 != 0) {\n      uVar39 = *(uint *)(iVar12 + 0x20) | 0x100;\n    }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar39 = *(uint *)(iVar12 + 0x20) | 0x100;\n    }" { (expression_statement "uVar39 = *(uint *)(iVar12 + 0x20) | 0x100;" (assignment_expression "uVar39 = *(uint *)(iVar12 + 0x20) | 0x100" identifier = (binary_expression "*(uint *)(iVar12 + 0x20) | 0x100" (pointer_expression "*(uint *)(iVar12 + 0x20)" * (cast_expression "(uint *)(iVar12 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) )))) | number_literal)) ;) })) (expression_statement "iVar12 = bfd_get_section_by_name(param_2,puVar35[1]);" (assignment_expression "iVar12 = bfd_get_section_by_name(param_2,puVar35[1])" identifier = (call_expression "bfd_get_section_by_name(param_2,puVar35[1])" identifier (argument_list "(param_2,puVar35[1])" ( identifier , (subscript_expression "puVar35[1]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar12 != 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t add section \'%s\'";\nLAB_00019591:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n      return 0;\n    }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t add section \'%s\'";\nLAB_00019591:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n      return 0;\n    }" { (expression_statement "uVar13 = puVar35[1];" (assignment_expression "uVar13 = puVar35[1]" identifier = (subscript_expression "puVar35[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar25 = "can\'t add section \'%s\'";" (assignment_expression "pcVar25 = "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 ")) ;) (labeled_statement "LAB_00019591:\n      uVar14 = dcgettext(0,pcVar25,5);" statement_identifier : (expression_statement "uVar14 = dcgettext(0,pcVar25,5);" (assignment_expression "uVar14 = dcgettext(0,pcVar25,5)" identifier = (call_expression "dcgettext(0,pcVar25,5)" identifier (argument_list "(0,pcVar25,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_0002d3a0(0,param_2,0,uVar14,uVar13);" (call_expression "FUN_0002d3a0(0,param_2,0,uVar14,uVar13)" identifier (argument_list "(0,param_2,0,uVar14,uVar13)" ( number_literal , identifier , number_literal , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar12 = bfd_make_section_with_flags(param_2,puVar35[1],uVar39 | 0x100000);" (assignment_expression "iVar12 = bfd_make_section_with_flags(param_2,puVar35[1],uVar39 | 0x100000)" identifier = (call_expression "bfd_make_section_with_flags(param_2,puVar35[1],uVar39 | 0x100000)" identifier (argument_list "(param_2,puVar35[1],uVar39 | 0x100000)" ( identifier , (subscript_expression "puVar35[1]" identifier [ number_literal ]) , (binary_expression "uVar39 | 0x100000" identifier | number_literal) )))) ;) (expression_statement "puVar35[5] = iVar12;" (assignment_expression "puVar35[5] = iVar12" (subscript_expression "puVar35[5]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t create section `%s\'";\n      goto LAB_00019591;\n    }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t create section `%s\'";\n      goto LAB_00019591;\n    }" { (expression_statement "uVar13 = puVar35[1];" (assignment_expression "uVar13 = puVar35[1]" identifier = (subscript_expression "puVar35[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar25 = "can\'t create section `%s\'";" (assignment_expression "pcVar25 = "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_00019591;" goto statement_identifier ;) })) (expression_statement "iVar12 = bfd_set_section_size(param_2,iVar12,puVar35[3],0);" (assignment_expression "iVar12 = bfd_set_section_size(param_2,iVar12,puVar35[3],0)" identifier = (call_expression "bfd_set_section_size(param_2,iVar12,puVar35[3],0)" identifier (argument_list "(param_2,iVar12,puVar35[3],0)" ( identifier , identifier , (subscript_expression "puVar35[3]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar12 == 0) goto LAB_00019d5e;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019d5e;" goto statement_identifier ;)) (expression_statement "iVar12 = FUN_00016a30();" (assignment_expression "iVar12 = FUN_00016a30()" identifier = (call_expression "FUN_00016a30()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x14);\n      uVar14 = *(undefined4 *)(iVar12 + 0x10);\n      *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      *(undefined4 *)(iVar31 + 0x24) = uVar14;\n      *(undefined4 *)(iVar31 + 0x28) = uVar13;\n      *(undefined4 *)(iVar31 + 0x1c) = uVar14;\n      *(undefined4 *)(iVar31 + 0x20) = uVar13;\n    }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x14);\n      uVar14 = *(undefined4 *)(iVar12 + 0x10);\n      *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      *(undefined4 *)(iVar31 + 0x24) = uVar14;\n      *(undefined4 *)(iVar31 + 0x28) = uVar13;\n      *(undefined4 *)(iVar31 + 0x1c) = uVar14;\n      *(undefined4 *)(iVar31 + 0x20) = uVar13;\n    }" { (expression_statement "iVar31 = puVar35[5];" (assignment_expression "iVar31 = puVar35[5]" identifier = (subscript_expression "puVar35[5]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = *(undefined4 *)(iVar12 + 0x14);" (assignment_expression "uVar13 = *(undefined4 *)(iVar12 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(iVar12 + 0x14)" * (cast_expression "(undefined4 *)(iVar12 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x14)" ( (binary_expression "iVar12 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = *(undefined4 *)(iVar12 + 0x10);" (assignment_expression "uVar14 = *(undefined4 *)(iVar12 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(iVar12 + 0x10)" * (cast_expression "(undefined4 *)(iVar12 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;" (assignment_expression "*(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1" (pointer_expression "*(byte *)(iVar31 + 0x18)" * (cast_expression "(byte *)(iVar31 + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x18)" ( (binary_expression "iVar31 + 0x18" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar31 + 0x18) | 1" (pointer_expression "*(byte *)(iVar31 + 0x18)" * (cast_expression "(byte *)(iVar31 + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x18)" ( (binary_expression "iVar31 + 0x18" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "*(undefined4 *)(iVar31 + 0x24) = uVar14;" (assignment_expression "*(undefined4 *)(iVar31 + 0x24) = uVar14" (pointer_expression "*(undefined4 *)(iVar31 + 0x24)" * (cast_expression "(undefined4 *)(iVar31 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x24)" ( (binary_expression "iVar31 + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar31 + 0x28) = uVar13;" (assignment_expression "*(undefined4 *)(iVar31 + 0x28) = uVar13" (pointer_expression "*(undefined4 *)(iVar31 + 0x28)" * (cast_expression "(undefined4 *)(iVar31 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x28)" ( (binary_expression "iVar31 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar31 + 0x1c) = uVar14;" (assignment_expression "*(undefined4 *)(iVar31 + 0x1c) = uVar14" (pointer_expression "*(undefined4 *)(iVar31 + 0x1c)" * (cast_expression "(undefined4 *)(iVar31 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x1c)" ( (binary_expression "iVar31 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar31 + 0x20) = uVar13;" (assignment_expression "*(undefined4 *)(iVar31 + 0x20) = uVar13" (pointer_expression "*(undefined4 *)(iVar31 + 0x20)" * (cast_expression "(undefined4 *)(iVar31 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x20)" ( (binary_expression "iVar31 + 0x20" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar12 = FUN_00016a30();" (assignment_expression "iVar12 = FUN_00016a30()" identifier = (call_expression "FUN_00016a30()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x18);\n      *(undefined4 *)(iVar31 + 0x28) = *(undefined4 *)(iVar12 + 0x1c);\n      *(undefined4 *)(iVar31 + 0x24) = uVar13;\n    }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x18);\n      *(undefined4 *)(iVar31 + 0x28) = *(undefined4 *)(iVar12 + 0x1c);\n      *(undefined4 *)(iVar31 + 0x24) = uVar13;\n    }" { (expression_statement "iVar31 = puVar35[5];" (assignment_expression "iVar31 = puVar35[5]" identifier = (subscript_expression "puVar35[5]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = *(undefined4 *)(iVar12 + 0x18);" (assignment_expression "uVar13 = *(undefined4 *)(iVar12 + 0x18)" identifier = (pointer_expression "*(undefined4 *)(iVar12 + 0x18)" * (cast_expression "(undefined4 *)(iVar12 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar31 + 0x28) = *(undefined4 *)(iVar12 + 0x1c);" (assignment_expression "*(undefined4 *)(iVar31 + 0x28) = *(undefined4 *)(iVar12 + 0x1c)" (pointer_expression "*(undefined4 *)(iVar31 + 0x28)" * (cast_expression "(undefined4 *)(iVar31 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x28)" ( (binary_expression "iVar31 + 0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar12 + 0x1c)" * (cast_expression "(undefined4 *)(iVar12 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x1c)" ( (binary_expression "iVar12 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar31 + 0x24) = uVar13;" (assignment_expression "*(undefined4 *)(iVar31 + 0x24) = uVar13" (pointer_expression "*(undefined4 *)(iVar31 + 0x24)" * (cast_expression "(undefined4 *)(iVar31 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x24)" ( (binary_expression "iVar31 + 0x24" identifier + number_literal) )))) = identifier) ;) })) })) (for_statement "for (; local_6c = param_2, puVar42 != (undefined4 *)0x0; puVar42 = (undefined4 *)*puVar42) {\n    iVar12 = bfd_get_section_by_name(param_1,puVar42[1]);\n    puVar42[5] = iVar12;\n    if (iVar12 == 0) {\n      uVar13 = puVar42[1];\n      pcVar25 = "error: %s not found, can\'t be updated";\n      goto LAB_00018f38;\n    }\n    psVar43 = *(size_t **)(iVar12 + 0x54);\n    iVar12 = bfd_set_section_size(param_2,psVar43,puVar42[3],0);\n    if (iVar12 == 0) goto LAB_00019fa0;\n  }" for ( ; (comma_expression "local_6c = param_2, puVar42 != (undefined4 *)0x0" (assignment_expression "local_6c = param_2" identifier = identifier) , (binary_expression "puVar42 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "puVar42 = (undefined4 *)*puVar42" identifier = (cast_expression "(undefined4 *)*puVar42" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar42" * identifier))) ) (compound_statement "{\n    iVar12 = bfd_get_section_by_name(param_1,puVar42[1]);\n    puVar42[5] = iVar12;\n    if (iVar12 == 0) {\n      uVar13 = puVar42[1];\n      pcVar25 = "error: %s not found, can\'t be updated";\n      goto LAB_00018f38;\n    }\n    psVar43 = *(size_t **)(iVar12 + 0x54);\n    iVar12 = bfd_set_section_size(param_2,psVar43,puVar42[3],0);\n    if (iVar12 == 0) goto LAB_00019fa0;\n  }" { (expression_statement "iVar12 = bfd_get_section_by_name(param_1,puVar42[1]);" (assignment_expression "iVar12 = bfd_get_section_by_name(param_1,puVar42[1])" identifier = (call_expression "bfd_get_section_by_name(param_1,puVar42[1])" identifier (argument_list "(param_1,puVar42[1])" ( identifier , (subscript_expression "puVar42[1]" identifier [ number_literal ]) )))) ;) (expression_statement "puVar42[5] = iVar12;" (assignment_expression "puVar42[5] = iVar12" (subscript_expression "puVar42[5]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar12 == 0) {\n      uVar13 = puVar42[1];\n      pcVar25 = "error: %s not found, can\'t be updated";\n      goto LAB_00018f38;\n    }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar13 = puVar42[1];\n      pcVar25 = "error: %s not found, can\'t be updated";\n      goto LAB_00018f38;\n    }" { (expression_statement "uVar13 = puVar42[1];" (assignment_expression "uVar13 = puVar42[1]" identifier = (subscript_expression "puVar42[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar25 = "error: %s not found, can\'t be updated";" (assignment_expression "pcVar25 = "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_00018f38;" goto statement_identifier ;) })) (expression_statement "psVar43 = *(size_t **)(iVar12 + 0x54);" (assignment_expression "psVar43 = *(size_t **)(iVar12 + 0x54)" identifier = (pointer_expression "*(size_t **)(iVar12 + 0x54)" * (cast_expression "(size_t **)(iVar12 + 0x54)" ( (type_descriptor "size_t **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 0x54)" ( (binary_expression "iVar12 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = bfd_set_section_size(param_2,psVar43,puVar42[3],0);" (assignment_expression "iVar12 = bfd_set_section_size(param_2,psVar43,puVar42[3],0)" identifier = (call_expression "bfd_set_section_size(param_2,psVar43,puVar42[3],0)" identifier (argument_list "(param_2,psVar43,puVar42[3],0)" ( identifier , identifier , (subscript_expression "puVar42[3]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar12 == 0) goto LAB_00019fa0;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019fa0;" goto statement_identifier ;)) })) (if_statement "if ((((DAT_00040bc4 != 0) &&\n       (iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0)) &&\n      (DAT_00040bc4 != 0)) &&\n     ((*(int *)(*(int *)((int)param_1 + 4) + 4) == 5 && (iVar31 = FUN_000176d0(), iVar31 != 0)))) {\n    uVar39 = *(uint *)(iVar12 + 0x30);\n    sVar22 = *(size_t *)(iVar12 + 0x2c);\n    if (uVar39 == 0 && sVar22 == 0) {\n      uVar13 = dcgettext(0,"warning: note section is empty",5,sVar22);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n      DAT_00040bc4 = 0;\n    }\n    else {\n      iVar31 = bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22);\n      pvVar6 = DAT_00040bc0;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"warning: could not load note section",5,0);\n        FUN_0002d3a0(0,param_1,iVar12,uVar13);\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n      }\n      else {\n        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);\n        sVar23 = extraout_ECX_01;\n        pvVar26 = param_1;\n        if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar52 = (void *)0x30;\n        sVar53 = sVar23;\n        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);\n        local_74 = (size_t *)xcalloc(uVar13);\n        local_bc = 0;\n        sVar54 = 0;\n        local_b8 = 0;\n        sVar55 = 0;\n        local_84 = (int *)0x0;\n        local_a8 = (size_t *)0x0;\n        local_a4 = 0;\n        pvVar26 = pvVar6;\n        psVar43 = local_74;\n        local_7c = sVar22;\n        local_78 = uVar39;\n        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }\n        if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        DAT_00040bb8 = 0;\n        DAT_00040bbc = 0;\n      }\n    }\n  }" if (parenthesized_expression "((((DAT_00040bc4 != 0) &&\n       (iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0)) &&\n      (DAT_00040bc4 != 0)) &&\n     ((*(int *)(*(int *)((int)param_1 + 4) + 4) == 5 && (iVar31 = FUN_000176d0(), iVar31 != 0))))" ( (binary_expression "(((DAT_00040bc4 != 0) &&\n       (iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0)) &&\n      (DAT_00040bc4 != 0)) &&\n     ((*(int *)(*(int *)((int)param_1 + 4) + 4) == 5 && (iVar31 = FUN_000176d0(), iVar31 != 0)))" (parenthesized_expression "(((DAT_00040bc4 != 0) &&\n       (iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0)) &&\n      (DAT_00040bc4 != 0))" ( (binary_expression "((DAT_00040bc4 != 0) &&\n       (iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0)) &&\n      (DAT_00040bc4 != 0)" (parenthesized_expression "((DAT_00040bc4 != 0) &&\n       (iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0))" ( (binary_expression "(DAT_00040bc4 != 0) &&\n       (iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0)" (parenthesized_expression "(DAT_00040bc4 != 0)" ( (binary_expression "DAT_00040bc4 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0)" ( (comma_expression "iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0" (assignment_expression "iVar12 = 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 "iVar12 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(DAT_00040bc4 != 0)" ( (binary_expression "DAT_00040bc4 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "((*(int *)(*(int *)((int)param_1 + 4) + 4) == 5 && (iVar31 = FUN_000176d0(), iVar31 != 0)))" ( (parenthesized_expression "(*(int *)(*(int *)((int)param_1 + 4) + 4) == 5 && (iVar31 = FUN_000176d0(), iVar31 != 0))" ( (binary_expression "*(int *)(*(int *)((int)param_1 + 4) + 4) == 5 && (iVar31 = FUN_000176d0(), iVar31 != 0)" (binary_expression "*(int *)(*(int *)((int)param_1 + 4) + 4) == 5" (pointer_expression "*(int *)(*(int *)((int)param_1 + 4) + 4)" * (cast_expression "(int *)(*(int *)((int)param_1 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 4)" ( (binary_expression "*(int *)((int)param_1 + 4) + 4" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) )))) == number_literal) && (parenthesized_expression "(iVar31 = FUN_000176d0(), iVar31 != 0)" ( (comma_expression "iVar31 = FUN_000176d0(), iVar31 != 0" (assignment_expression "iVar31 = FUN_000176d0()" identifier = (call_expression "FUN_000176d0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar31 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n    uVar39 = *(uint *)(iVar12 + 0x30);\n    sVar22 = *(size_t *)(iVar12 + 0x2c);\n    if (uVar39 == 0 && sVar22 == 0) {\n      uVar13 = dcgettext(0,"warning: note section is empty",5,sVar22);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n      DAT_00040bc4 = 0;\n    }\n    else {\n      iVar31 = bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22);\n      pvVar6 = DAT_00040bc0;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"warning: could not load note section",5,0);\n        FUN_0002d3a0(0,param_1,iVar12,uVar13);\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n      }\n      else {\n        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);\n        sVar23 = extraout_ECX_01;\n        pvVar26 = param_1;\n        if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar52 = (void *)0x30;\n        sVar53 = sVar23;\n        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);\n        local_74 = (size_t *)xcalloc(uVar13);\n        local_bc = 0;\n        sVar54 = 0;\n        local_b8 = 0;\n        sVar55 = 0;\n        local_84 = (int *)0x0;\n        local_a8 = (size_t *)0x0;\n        local_a4 = 0;\n        pvVar26 = pvVar6;\n        psVar43 = local_74;\n        local_7c = sVar22;\n        local_78 = uVar39;\n        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }\n        if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        DAT_00040bb8 = 0;\n        DAT_00040bbc = 0;\n      }\n    }\n  }" { (expression_statement "uVar39 = *(uint *)(iVar12 + 0x30);" (assignment_expression "uVar39 = *(uint *)(iVar12 + 0x30)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x30)" * (cast_expression "(uint *)(iVar12 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x30)" ( (binary_expression "iVar12 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "sVar22 = *(size_t *)(iVar12 + 0x2c);" (assignment_expression "sVar22 = *(size_t *)(iVar12 + 0x2c)" identifier = (pointer_expression "*(size_t *)(iVar12 + 0x2c)" * (cast_expression "(size_t *)(iVar12 + 0x2c)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2c)" ( (binary_expression "iVar12 + 0x2c" identifier + number_literal) ))))) ;) (if_statement "if (uVar39 == 0 && sVar22 == 0) {\n      uVar13 = dcgettext(0,"warning: note section is empty",5,sVar22);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n      DAT_00040bc4 = 0;\n    }\n    else {\n      iVar31 = bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22);\n      pvVar6 = DAT_00040bc0;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"warning: could not load note section",5,0);\n        FUN_0002d3a0(0,param_1,iVar12,uVar13);\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n      }\n      else {\n        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);\n        sVar23 = extraout_ECX_01;\n        pvVar26 = param_1;\n        if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar52 = (void *)0x30;\n        sVar53 = sVar23;\n        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);\n        local_74 = (size_t *)xcalloc(uVar13);\n        local_bc = 0;\n        sVar54 = 0;\n        local_b8 = 0;\n        sVar55 = 0;\n        local_84 = (int *)0x0;\n        local_a8 = (size_t *)0x0;\n        local_a4 = 0;\n        pvVar26 = pvVar6;\n        psVar43 = local_74;\n        local_7c = sVar22;\n        local_78 = uVar39;\n        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }\n        if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        DAT_00040bb8 = 0;\n        DAT_00040bbc = 0;\n      }\n    }" if (parenthesized_expression "(uVar39 == 0 && sVar22 == 0)" ( (binary_expression "uVar39 == 0 && sVar22 == 0" (binary_expression "uVar39 == 0" identifier == number_literal) && (binary_expression "sVar22 == 0" identifier == number_literal)) )) (compound_statement "{\n      uVar13 = dcgettext(0,"warning: note section is empty",5,sVar22);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n      DAT_00040bc4 = 0;\n    }" { (expression_statement "uVar13 = dcgettext(0,"warning: note section is empty",5,sVar22);" (assignment_expression "uVar13 = dcgettext(0,"warning: note section is empty",5,sVar22)" identifier = (call_expression "dcgettext(0,"warning: note section is empty",5,sVar22)" identifier (argument_list "(0,"warning: note section is empty",5,sVar22)" ( number_literal , (string_literal ""warning: note section is empty"" " string_content ") , number_literal , identifier )))) ;) (expression_statement "FUN_0002d3a0(0,param_1,iVar12,uVar13);" (call_expression "FUN_0002d3a0(0,param_1,iVar12,uVar13)" identifier (argument_list "(0,param_1,iVar12,uVar13)" ( number_literal , identifier , identifier , identifier ))) ;) (expression_statement "DAT_00040bc4 = 0;" (assignment_expression "DAT_00040bc4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      iVar31 = bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22);\n      pvVar6 = DAT_00040bc0;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"warning: could not load note section",5,0);\n        FUN_0002d3a0(0,param_1,iVar12,uVar13);\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n      }\n      else {\n        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);\n        sVar23 = extraout_ECX_01;\n        pvVar26 = param_1;\n        if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar52 = (void *)0x30;\n        sVar53 = sVar23;\n        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);\n        local_74 = (size_t *)xcalloc(uVar13);\n        local_bc = 0;\n        sVar54 = 0;\n        local_b8 = 0;\n        sVar55 = 0;\n        local_84 = (int *)0x0;\n        local_a8 = (size_t *)0x0;\n        local_a4 = 0;\n        pvVar26 = pvVar6;\n        psVar43 = local_74;\n        local_7c = sVar22;\n        local_78 = uVar39;\n        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }\n        if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        DAT_00040bb8 = 0;\n        DAT_00040bbc = 0;\n      }\n    }" else (compound_statement "{\n      iVar31 = bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22);\n      pvVar6 = DAT_00040bc0;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"warning: could not load note section",5,0);\n        FUN_0002d3a0(0,param_1,iVar12,uVar13);\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n      }\n      else {\n        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);\n        sVar23 = extraout_ECX_01;\n        pvVar26 = param_1;\n        if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar52 = (void *)0x30;\n        sVar53 = sVar23;\n        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);\n        local_74 = (size_t *)xcalloc(uVar13);\n        local_bc = 0;\n        sVar54 = 0;\n        local_b8 = 0;\n        sVar55 = 0;\n        local_84 = (int *)0x0;\n        local_a8 = (size_t *)0x0;\n        local_a4 = 0;\n        pvVar26 = pvVar6;\n        psVar43 = local_74;\n        local_7c = sVar22;\n        local_78 = uVar39;\n        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }\n        if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        DAT_00040bb8 = 0;\n        DAT_00040bbc = 0;\n      }\n    }" { (expression_statement "iVar31 = bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22);" (assignment_expression "iVar31 = bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22)" identifier = (call_expression "bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22)" identifier (argument_list "(param_1,iVar12,&DAT_00040bc0,sVar22)" ( identifier , identifier , (pointer_expression "&DAT_00040bc0" & identifier) , identifier )))) ;) (expression_statement "pvVar6 = DAT_00040bc0;" (assignment_expression "pvVar6 = DAT_00040bc0" identifier = identifier) ;) (if_statement "if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"warning: could not load note section",5,0);\n        FUN_0002d3a0(0,param_1,iVar12,uVar13);\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n      }\n      else {\n        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);\n        sVar23 = extraout_ECX_01;\n        pvVar26 = param_1;\n        if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar52 = (void *)0x30;\n        sVar53 = sVar23;\n        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);\n        local_74 = (size_t *)xcalloc(uVar13);\n        local_bc = 0;\n        sVar54 = 0;\n        local_b8 = 0;\n        sVar55 = 0;\n        local_84 = (int *)0x0;\n        local_a8 = (size_t *)0x0;\n        local_a4 = 0;\n        pvVar26 = pvVar6;\n        psVar43 = local_74;\n        local_7c = sVar22;\n        local_78 = uVar39;\n        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }\n        if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        DAT_00040bb8 = 0;\n        DAT_00040bbc = 0;\n      }" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar13 = dcgettext(0,"warning: could not load note section",5,0);\n        FUN_0002d3a0(0,param_1,iVar12,uVar13);\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n      }" { (expression_statement "uVar13 = dcgettext(0,"warning: could not load note section",5,0);" (assignment_expression "uVar13 = dcgettext(0,"warning: could not load note section",5,0)" identifier = (call_expression "dcgettext(0,"warning: could not load note section",5,0)" identifier (argument_list "(0,"warning: could not load note section",5,0)" ( number_literal , (string_literal ""warning: could not load note section"" " string_content ") , number_literal , number_literal )))) ;) (expression_statement "FUN_0002d3a0(0,param_1,iVar12,uVar13);" (call_expression "FUN_0002d3a0(0,param_1,iVar12,uVar13)" identifier (argument_list "(0,param_1,iVar12,uVar13)" ( number_literal , identifier , identifier , identifier ))) ;) (expression_statement "free(DAT_00040bc0);" (call_expression "free(DAT_00040bc0)" identifier (argument_list "(DAT_00040bc0)" ( identifier ))) ;) (expression_statement "DAT_00040bc0 = (void *)0x0;" (assignment_expression "DAT_00040bc0 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00040bc4 = 0;" (assignment_expression "DAT_00040bc4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);\n        sVar23 = extraout_ECX_01;\n        pvVar26 = param_1;\n        if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar52 = (void *)0x30;\n        sVar53 = sVar23;\n        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);\n        local_74 = (size_t *)xcalloc(uVar13);\n        local_bc = 0;\n        sVar54 = 0;\n        local_b8 = 0;\n        sVar55 = 0;\n        local_84 = (int *)0x0;\n        local_a8 = (size_t *)0x0;\n        local_a4 = 0;\n        pvVar26 = pvVar6;\n        psVar43 = local_74;\n        local_7c = sVar22;\n        local_78 = uVar39;\n        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }\n        if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        DAT_00040bb8 = 0;\n        DAT_00040bbc = 0;\n      }" else (compound_statement "{\n        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);\n        sVar23 = extraout_ECX_01;\n        pvVar26 = param_1;\n        if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar52 = (void *)0x30;\n        sVar53 = sVar23;\n        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);\n        local_74 = (size_t *)xcalloc(uVar13);\n        local_bc = 0;\n        sVar54 = 0;\n        local_b8 = 0;\n        sVar55 = 0;\n        local_84 = (int *)0x0;\n        local_a8 = (size_t *)0x0;\n        local_a4 = 0;\n        pvVar26 = pvVar6;\n        psVar43 = local_74;\n        local_7c = sVar22;\n        local_78 = uVar39;\n        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }\n        if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        DAT_00040bb8 = 0;\n        DAT_00040bbc = 0;\n      }" { (expression_statement "iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);" (assignment_expression "iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12)" identifier = (call_expression "bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12)" identifier (argument_list "(param_1,iVar12,iVar12,iVar12)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "sVar23 = extraout_ECX_01;" (assignment_expression "sVar23 = extraout_ECX_01" identifier = identifier) ;) (expression_statement "pvVar26 = param_1;" (assignment_expression "pvVar26 = param_1" identifier = identifier) ;) (if_statement "if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }" if (parenthesized_expression "(0 < iVar31)" ( (binary_expression "0 < iVar31" number_literal < identifier) )) (compound_statement "{\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }" { (expression_statement "pvVar26 = (void *)xmalloc(iVar31);" (assignment_expression "pvVar26 = (void *)xmalloc(iVar31)" identifier = (cast_expression "(void *)xmalloc(iVar31)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar31)" identifier (argument_list "(iVar31)" ( identifier ))))) ;) (expression_statement "iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);" (assignment_expression "iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc)" identifier = (call_expression "bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc)" identifier (argument_list "(param_1,iVar12,pvVar26,DAT_00040bdc)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "free(pvVar26);" (call_expression "free(pvVar26)" identifier (argument_list "(pvVar26)" ( identifier ))) ;) (expression_statement "sVar23 = extraout_ECX_02;" (assignment_expression "sVar23 = extraout_ECX_02" identifier = identifier) ;) (if_statement "if (iVar31 == 0) goto LAB_0001ab09;" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001ab09;" goto statement_identifier ;)) (expression_statement "local_74 = (size_t *)0x0;" (assignment_expression "local_74 = (size_t *)0x0" identifier = (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0001ae41;" goto statement_identifier ;) })) (labeled_statement "LAB_0001ab09:\n        pvVar52 = (void *)0x30;" statement_identifier : (expression_statement "pvVar52 = (void *)0x30;" (assignment_expression "pvVar52 = (void *)0x30" identifier = (cast_expression "(void *)0x30" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "sVar53 = sVar23;" (assignment_expression "sVar53 = sVar23" identifier = identifier) ;) (expression_statement "uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);" (assignment_expression "uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23)" identifier = (call_expression "FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23)" identifier (argument_list "(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23)" ( identifier , identifier , number_literal , number_literal , identifier , number_literal , identifier , identifier )))) ;) (expression_statement "local_74 = (size_t *)xcalloc(uVar13);" (assignment_expression "local_74 = (size_t *)xcalloc(uVar13)" identifier = (cast_expression "(size_t *)xcalloc(uVar13)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xcalloc(uVar13)" identifier (argument_list "(uVar13)" ( identifier ))))) ;) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) (expression_statement "sVar54 = 0;" (assignment_expression "sVar54 = 0" identifier = number_literal) ;) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "sVar55 = 0;" (assignment_expression "sVar55 = 0" identifier = number_literal) ;) (expression_statement "local_84 = (int *)0x0;" (assignment_expression "local_84 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_a8 = (size_t *)0x0;" (assignment_expression "local_a8 = (size_t *)0x0" identifier = (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" identifier = number_literal) ;) (expression_statement "pvVar26 = pvVar6;" (assignment_expression "pvVar26 = pvVar6" identifier = identifier) ;) (expression_statement "psVar43 = local_74;" (assignment_expression "psVar43 = local_74" identifier = identifier) ;) (expression_statement "local_7c = sVar22;" (assignment_expression "local_7c = sVar22" identifier = identifier) ;) (expression_statement "local_78 = uVar39;" (assignment_expression "local_78 = uVar39" identifier = identifier) ;) (while_statement "while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }" while (parenthesized_expression "(local_78 != 0 || -local_78 < (uint)(0xb < local_7c))" ( (binary_expression "local_78 != 0 || -local_78 < (uint)(0xb < local_7c)" (binary_expression "local_78 != 0" identifier != number_literal) || (binary_expression "-local_78 < (uint)(0xb < local_7c)" (unary_expression "-local_78" - identifier) < (call_expression "(uint)(0xb < local_7c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xb < local_7c)" ( (binary_expression "0xb < local_7c" number_literal < identifier) ))))) )) (compound_statement "{\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }" { (expression_statement "iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);" (assignment_expression "iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26)" identifier = (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x28))" ( (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x28)" * (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x28)" * (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x28)" ( (binary_expression "*(int *)((int)param_1 + 4) + 0x28" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) )) (argument_list "(pvVar26)" ( identifier )))) ;) (expression_statement "uVar17 = iVar31 + 3U & 0xfffffffc;" (assignment_expression "uVar17 = iVar31 + 3U & 0xfffffffc" identifier = (binary_expression "iVar31 + 3U & 0xfffffffc" (binary_expression "iVar31 + 3U" identifier + number_literal) & number_literal)) ;) (expression_statement "*psVar43 = uVar17;" (assignment_expression "*psVar43 = uVar17" (pointer_expression "*psVar43" * identifier) = identifier) ;) (expression_statement "iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);" (assignment_expression "iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4)" identifier = (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x28))" ( (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x28)" * (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x28)" * (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x28)" ( (binary_expression "*(int *)((int)param_1 + 4) + 0x28" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) )) (argument_list "((int)pvVar26 + 4)" ( (binary_expression "(int)pvVar26 + 4" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar27 = iVar31 + 3U & 0xfffffffc;" (assignment_expression "uVar27 = iVar31 + 3U & 0xfffffffc" identifier = (binary_expression "iVar31 + 3U & 0xfffffffc" (binary_expression "iVar31 + 3U" identifier + number_literal) & number_literal)) ;) (expression_statement "psVar43[1] = uVar27;" (assignment_expression "psVar43[1] = uVar27" (subscript_expression "psVar43[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);" (assignment_expression "uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8)" identifier = (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x28))" ( (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x28)" * (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x28)" * (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x28)" ( (binary_expression "*(int *)((int)param_1 + 4) + 0x28" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) )) (argument_list "((int)pvVar26 + 8)" ( (binary_expression "(int)pvVar26 + 8" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "sVar30 = (size_t)uVar49;" (assignment_expression "sVar30 = (size_t)uVar49" identifier = (cast_expression "(size_t)uVar49" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (expression_statement "psVar43[2] = sVar30;" (assignment_expression "psVar43[2] = sVar30" (subscript_expression "psVar43[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }" if (parenthesized_expression "(1 < sVar30 - 0x100)" ( (binary_expression "1 < sVar30 - 0x100" number_literal < (binary_expression "sVar30 - 0x100" identifier - number_literal)) )) (compound_statement "{\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }" { (expression_statement "iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));" (assignment_expression "iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20))" identifier = (call_expression "dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20))" identifier (argument_list "(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20))" ( number_literal , (string_literal ""corrupt GNU build attribute note: wrong note type"" " string_content ") , number_literal , (cast_expression "(int)((ulonglong)uVar49 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar49 >> 0x20)" ( (binary_expression "(ulonglong)uVar49 >> 0x20" (cast_expression "(ulonglong)uVar49" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) )))) ;) (goto_statement "goto LAB_0001ae12;" goto statement_identifier ;) })) (expression_statement "uVar37 = uVar17 + 0xc + uVar27;" (assignment_expression "uVar37 = uVar17 + 0xc + uVar27" identifier = (binary_expression "uVar17 + 0xc + uVar27" (binary_expression "uVar17 + 0xc" identifier + number_literal) + identifier)) ;) (expression_statement "iVar31 = local_78 - (local_7c < uVar37);" (assignment_expression "iVar31 = local_78 - (local_7c < uVar37)" identifier = (binary_expression "local_78 - (local_7c < uVar37)" identifier - (parenthesized_expression "(local_7c < uVar37)" ( (binary_expression "local_7c < uVar37" identifier < identifier) )))) ;) (if_statement "if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }" if (parenthesized_expression "(local_78 < (local_7c < uVar37))" ( (binary_expression "local_78 < (local_7c < uVar37)" identifier < (parenthesized_expression "(local_7c < uVar37)" ( (binary_expression "local_7c < uVar37" identifier < identifier) ))) )) (compound_statement "{\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }" { (expression_statement "iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);" (assignment_expression "iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31)" identifier = (call_expression "dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31)" identifier (argument_list "(0,"corrupt GNU build attribute note: note too big",5,iVar31)" ( number_literal , (string_literal ""corrupt GNU build attribute note: note too big"" " string_content ") , number_literal , identifier )))) ;) (goto_statement "goto LAB_0001ae12;" goto statement_identifier ;) })) (if_statement "if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }" if (parenthesized_expression "(uVar17 < 2)" ( (binary_expression "uVar17 < 2" identifier < number_literal) )) (compound_statement "{\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }" { (expression_statement "iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);" (assignment_expression "iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31)" identifier = (call_expression "dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31)" identifier (argument_list "(0,"corrupt GNU build attribute note: name too small",5,iVar31)" ( number_literal , (string_literal ""corrupt GNU build attribute note: name too small"" " string_content ") , number_literal , identifier )))) ;) (goto_statement "goto LAB_0001ae12;" goto statement_identifier ;) })) (expression_statement "psVar43[3] = (int)pvVar26 + 0xc;" (assignment_expression "psVar43[3] = (int)pvVar26 + 0xc" (subscript_expression "psVar43[3]" identifier [ number_literal ]) = (binary_expression "(int)pvVar26 + 0xc" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "sVar28 = (int)pvVar26 + uVar17 + 0xc;" (assignment_expression "sVar28 = (int)pvVar26 + uVar17 + 0xc" identifier = (binary_expression "(int)pvVar26 + uVar17 + 0xc" (binary_expression "(int)pvVar26 + uVar17" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal)) ;) (expression_statement "bVar46 = local_7c < uVar37;" (assignment_expression "bVar46 = local_7c < uVar37" identifier = (binary_expression "local_7c < uVar37" identifier < identifier)) ;) (expression_statement "local_7c = local_7c - uVar37;" (assignment_expression "local_7c = local_7c - uVar37" identifier = (binary_expression "local_7c - uVar37" identifier - identifier)) ;) (expression_statement "local_78 = local_78 - bVar46;" (assignment_expression "local_78 = local_78 - bVar46" identifier = (binary_expression "local_78 - bVar46" identifier - identifier)) ;) (expression_statement "psVar43[4] = sVar28;" (assignment_expression "psVar43[4] = sVar28" (subscript_expression "psVar43[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar3 = *(byte *)((int)pvVar26 + 0xc);" (assignment_expression "bVar3 = *(byte *)((int)pvVar26 + 0xc)" identifier = (pointer_expression "*(byte *)((int)pvVar26 + 0xc)" * (cast_expression "(byte *)((int)pvVar26 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar26 + 0xc)" ( (binary_expression "(int)pvVar26 + 0xc" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar44 = (uint)bVar3;" (assignment_expression "uVar44 = (uint)bVar3" identifier = (cast_expression "(uint)bVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }" if (parenthesized_expression "(bVar3 == 0x24)" ( (binary_expression "bVar3 == 0x24" identifier == number_literal) )) (compound_statement "{\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }" { (if_statement "if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }" if (parenthesized_expression "((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))" ( (binary_expression "(*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1')" (parenthesized_expression "(*(char *)((int)pvVar26 + 0xd) == '\x01')" ( (binary_expression "*(char *)((int)pvVar26 + 0xd) == '\x01'" (pointer_expression "*(char *)((int)pvVar26 + 0xd)" * (cast_expression "(char *)((int)pvVar26 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar26 + 0xd)" ( (binary_expression "(int)pvVar26 + 0xd" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\x01'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)((int)pvVar26 + 0xe) == '1')" ( (binary_expression "*(char *)((int)pvVar26 + 0xe) == '1'" (pointer_expression "*(char *)((int)pvVar26 + 0xe)" * (cast_expression "(char *)((int)pvVar26 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar26 + 0xe)" ( (binary_expression "(int)pvVar26 + 0xe" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'1'" ' character ')) ))) )) (compound_statement "{\n              local_a4 = local_a4 + 1;\n            }" { (expression_statement "local_a4 = local_a4 + 1;" (assignment_expression "local_a4 = local_a4 + 1" identifier = (binary_expression "local_a4 + 1" identifier + number_literal)) ;) })) }) (else_clause "else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }" else (if_statement "if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }" if (parenthesized_expression "((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01'))))" ( (binary_expression "(((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))" (parenthesized_expression "(((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A'))" ( (binary_expression "((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')" (parenthesized_expression "((4 < uVar17) && (bVar3 == 0x47))" ( (binary_expression "(4 < uVar17) && (bVar3 == 0x47)" (parenthesized_expression "(4 < uVar17)" ( (binary_expression "4 < uVar17" number_literal < identifier) )) && (parenthesized_expression "(bVar3 == 0x47)" ( (binary_expression "bVar3 == 0x47" identifier == number_literal) ))) )) && (parenthesized_expression "(*(char *)((int)pvVar26 + 0xd) == 'A')" ( (binary_expression "*(char *)((int)pvVar26 + 0xd) == 'A'" (pointer_expression "*(char *)((int)pvVar26 + 0xd)" * (cast_expression "(char *)((int)pvVar26 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar26 + 0xd)" ( (binary_expression "(int)pvVar26 + 0xd" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'A'" ' character ')) ))) )) && (parenthesized_expression "((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))" ( (parenthesized_expression "(*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01'))" ( (binary_expression "*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')" (binary_expression "*(char *)((int)pvVar26 + 0xe) == '$'" (pointer_expression "*(char *)((int)pvVar26 + 0xe)" * (cast_expression "(char *)((int)pvVar26 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar26 + 0xe)" ( (binary_expression "(int)pvVar26 + 0xe" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'$'" ' character ')) && (parenthesized_expression "(*(char *)((int)pvVar26 + 0xf) == '\x01')" ( (binary_expression "*(char *)((int)pvVar26 + 0xf) == '\x01'" (pointer_expression "*(char *)((int)pvVar26 + 0xf)" * (cast_expression "(char *)((int)pvVar26 + 0xf)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar26 + 0xf)" ( (binary_expression "(int)pvVar26 + 0xf" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\x01'" ' escape_sequence ')) ))) )) ))) )) (compound_statement "{\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }" { (expression_statement "bVar3 = *(byte *)((int)pvVar26 + 0x10);" (assignment_expression "bVar3 = *(byte *)((int)pvVar26 + 0x10)" identifier = (pointer_expression "*(byte *)((int)pvVar26 + 0x10)" * (cast_expression "(byte *)((int)pvVar26 + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar26 + 0x10)" ( (binary_expression "(int)pvVar26 + 0x10" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar44 = (uint)bVar3;" (assignment_expression "uVar44 = (uint)bVar3" identifier = (cast_expression "(uint)bVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }" if (parenthesized_expression "(bVar3 == 0x32)" ( (binary_expression "bVar3 == 0x32" identifier == number_literal) )) (compound_statement "{\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }" { (expression_statement "local_a8 = (size_t *)((int)local_a8 + 1);" (assignment_expression "local_a8 = (size_t *)((int)local_a8 + 1)" identifier = (cast_expression "(size_t *)((int)local_a8 + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + 1)" ( (binary_expression "(int)local_a8 + 1" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) (else_clause "else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }" else (compound_statement "{\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }" { (if_statement "if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }" if (parenthesized_expression "(bVar3 != 0x33)" ( (binary_expression "bVar3 != 0x33" identifier != number_literal) )) (compound_statement "{\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }" { (expression_statement "iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);" (assignment_expression "iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44)" identifier = (call_expression "dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44)" identifier (argument_list "(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44)" ( number_literal , (string_literal ""corrupt GNU build attribute note: unsupported version"" " string_content ") , number_literal , identifier )))) ;) (goto_statement "goto LAB_0001ae12;" goto statement_identifier ;) })) (expression_statement "local_84 = (int *)((int)local_84 + 1);" (assignment_expression "local_84 = (int *)((int)local_84 + 1)" identifier = (cast_expression "(int *)((int)local_84 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_84 + 1)" ( (binary_expression "(int)local_84 + 1" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) })))) (if_statement "if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }" if (parenthesized_expression "(uVar27 == 4)" ( (binary_expression "uVar27 == 4" identifier == number_literal) )) (compound_statement "{\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }" { (expression_statement "lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);" (assignment_expression "lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28)" identifier = (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x28))" ( (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x28)" * (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x28)" * (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x28)" ( (binary_expression "*(int *)((int)param_1 + 4) + 0x28" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) )) (argument_list "(sVar28)" ( identifier )))) ;) (labeled_statement "LAB_0001ade8:\n            lVar51 = -1;" statement_identifier : (expression_statement "lVar51 = -1;" (assignment_expression "lVar51 = -1" identifier = number_literal) ;)) }) (else_clause "else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }" else (if_statement "if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }" if (parenthesized_expression "(uVar27 < 5)" ( (binary_expression "uVar27 < 5" identifier < number_literal) )) (compound_statement "{\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }" { (if_statement "if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }" if (parenthesized_expression "(uVar27 != 0)" ( (binary_expression "uVar27 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }" { (labeled_statement "LAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );" statement_identifier : (expression_statement "iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );" (assignment_expression "iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                )" identifier = (call_expression "dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                )" identifier (argument_list "(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                )" ( number_literal , (string_literal ""corrupt GNU build attribute note: bad description size"" " string_content ") , number_literal , identifier )))) ;)) (goto_statement "goto LAB_0001ae12;" goto statement_identifier ;) })) (expression_statement "lVar51 = 0;" (assignment_expression "lVar51 = 0" identifier = number_literal) ;) (expression_statement "lVar50 = 0;" (assignment_expression "lVar50 = 0" identifier = number_literal) ;) }) (else_clause "else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }" else (if_statement "if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }" if (parenthesized_expression "(uVar27 == 8)" ( (binary_expression "uVar27 == 8" identifier == number_literal) )) (compound_statement "{\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }" { (expression_statement "iVar31 = *(int *)((int)param_1 + 4);" (assignment_expression "iVar31 = *(int *)((int)param_1 + 4)" identifier = (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }" if (parenthesized_expression "((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02'))" ( (binary_expression "(*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')" (parenthesized_expression "(*(int *)(iVar31 + 4) == 5)" ( (binary_expression "*(int *)(iVar31 + 4) == 5" (pointer_expression "*(int *)(iVar31 + 4)" * (cast_expression "(int *)(iVar31 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 4)" ( (binary_expression "iVar31 + 4" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')" ( (binary_expression "*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02'" (pointer_expression "*(char *)(*(int *)((int)param_1 + 0xa0) + 4)" * (cast_expression "(char *)(*(int *)((int)param_1 + 0xa0) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)param_1 + 0xa0) + 4)" ( (binary_expression "*(int *)((int)param_1 + 0xa0) + 4" (pointer_expression "*(int *)((int)param_1 + 0xa0)" * (cast_expression "(int *)((int)param_1 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0xa0)" ( (binary_expression "(int)param_1 + 0xa0" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) )))) == (char_literal "'\x02'" ' escape_sequence ')) ))) )) (compound_statement "{\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }" { (expression_statement "lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);" (assignment_expression "lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28)" identifier = (call_expression "(**(code **)(iVar31 + 0x1c))(sVar28)" (parenthesized_expression "(**(code **)(iVar31 + 0x1c))" ( (pointer_expression "**(code **)(iVar31 + 0x1c)" * (pointer_expression "*(code **)(iVar31 + 0x1c)" * (cast_expression "(code **)(iVar31 + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar31 + 0x1c)" ( (binary_expression "iVar31 + 0x1c" identifier + number_literal) ))))) )) (argument_list "(sVar28)" ( identifier )))) ;) (goto_statement "goto LAB_0001ade8;" goto statement_identifier ;) })) (expression_statement "lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);" (assignment_expression "lVar50 = (**(code **)(iVar31 + 0x28))(sVar28)" identifier = (call_expression "(**(code **)(iVar31 + 0x28))(sVar28)" (parenthesized_expression "(**(code **)(iVar31 + 0x28))" ( (pointer_expression "**(code **)(iVar31 + 0x28)" * (pointer_expression "*(code **)(iVar31 + 0x28)" * (cast_expression "(code **)(iVar31 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar31 + 0x28)" ( (binary_expression "iVar31 + 0x28" identifier + number_literal) ))))) )) (argument_list "(sVar28)" ( identifier )))) ;) (expression_statement "lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);" (assignment_expression "lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4)" identifier = (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x28))" ( (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x28)" * (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x28)" * (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x28)" ( (binary_expression "*(int *)((int)param_1 + 4) + 0x28" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) )) (argument_list "(sVar28 + 4)" ( (binary_expression "sVar28 + 4" identifier + number_literal) )))) ;) }) (else_clause "else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }" else (compound_statement "{\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }" { (expression_statement "uVar44 = uVar27;" (assignment_expression "uVar44 = uVar27" identifier = identifier) ;) (if_statement "if (uVar27 != 0x10) goto LAB_0001ae8d;" if (parenthesized_expression "(uVar27 != 0x10)" ( (binary_expression "uVar27 != 0x10" identifier != number_literal) )) (goto_statement "goto LAB_0001ae8d;" goto statement_identifier ;)) (expression_statement "lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);" (assignment_expression "lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28)" identifier = (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x1c))" ( (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x1c)" * (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x1c)" * (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x1c)" ( (binary_expression "*(int *)((int)param_1 + 4) + 0x1c" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) )) (argument_list "(sVar28)" ( identifier )))) ;) (expression_statement "lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);" (assignment_expression "lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8)" identifier = (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x1c))" ( (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x1c)" * (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x1c)" * (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x1c)" ( (binary_expression "*(int *)((int)param_1 + 4) + 0x1c" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) )) (argument_list "(sVar28 + 8)" ( (binary_expression "sVar28 + 8" identifier + number_literal) )))) ;) }))))))) (if_statement "if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }" if (parenthesized_expression "(sVar30 == 0x100)" ( (binary_expression "sVar30 == 0x100" identifier == number_literal) )) (compound_statement "{\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }" { (expression_statement "sVar30 = (size_t)lVar50;" (assignment_expression "sVar30 = (size_t)lVar50" identifier = (cast_expression "(size_t)lVar50" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (if_statement "if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }" if (parenthesized_expression "(lVar50 == 0)" ( (binary_expression "lVar50 == 0" identifier == number_literal) )) (compound_statement "{\n              sVar30 = local_b8;\n            }" { (expression_statement "sVar30 = local_b8;" (assignment_expression "sVar30 = local_b8" identifier = identifier) ;) })) (expression_statement "sVar28 = (size_t)lVar51;" (assignment_expression "sVar28 = (size_t)lVar51" identifier = (cast_expression "(size_t)lVar51" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (if_statement "if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }" if (parenthesized_expression "(lVar51 == 0)" ( (binary_expression "lVar51 == 0" identifier == number_literal) )) (compound_statement "{\n              sVar28 = local_bc;\n            }" { (expression_statement "sVar28 = local_bc;" (assignment_expression "sVar28 = local_bc" identifier = identifier) ;) })) (expression_statement "psVar43[8] = 0;" (assignment_expression "psVar43[8] = 0" (subscript_expression "psVar43[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "psVar43[7] = sVar30;" (assignment_expression "psVar43[7] = sVar30" (subscript_expression "psVar43[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "psVar43[9] = sVar28;" (assignment_expression "psVar43[9] = sVar28" (subscript_expression "psVar43[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "psVar43[10] = 0;" (assignment_expression "psVar43[10] = 0" (subscript_expression "psVar43[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_bc = sVar28;" (assignment_expression "local_bc = sVar28" identifier = identifier) ;) (expression_statement "local_b8 = sVar30;" (assignment_expression "local_b8 = sVar30" identifier = identifier) ;) }) (else_clause "else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }" else (compound_statement "{\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }" { (expression_statement "sVar30 = (size_t)lVar50;" (assignment_expression "sVar30 = (size_t)lVar50" identifier = (cast_expression "(size_t)lVar50" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (if_statement "if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }" if (parenthesized_expression "(lVar50 == 0)" ( (binary_expression "lVar50 == 0" identifier == number_literal) )) (compound_statement "{\n              sVar30 = sVar55;\n            }" { (expression_statement "sVar30 = sVar55;" (assignment_expression "sVar30 = sVar55" identifier = identifier) ;) })) (expression_statement "sVar55 = (size_t)lVar51;" (assignment_expression "sVar55 = (size_t)lVar51" identifier = (cast_expression "(size_t)lVar51" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (if_statement "if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }" if (parenthesized_expression "(lVar51 == 0)" ( (binary_expression "lVar51 == 0" identifier == number_literal) )) (compound_statement "{\n              sVar55 = sVar54;\n            }" { (expression_statement "sVar55 = sVar54;" (assignment_expression "sVar55 = sVar54" identifier = identifier) ;) })) (expression_statement "psVar43[8] = 0;" (assignment_expression "psVar43[8] = 0" (subscript_expression "psVar43[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "psVar43[7] = sVar30;" (assignment_expression "psVar43[7] = sVar30" (subscript_expression "psVar43[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "psVar43[9] = sVar55;" (assignment_expression "psVar43[9] = sVar55" (subscript_expression "psVar43[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "psVar43[10] = 0;" (assignment_expression "psVar43[10] = 0" (subscript_expression "psVar43[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "sVar54 = sVar55;" (assignment_expression "sVar54 = sVar55" identifier = identifier) ;) (expression_statement "sVar55 = sVar30;" (assignment_expression "sVar55 = sVar30" identifier = identifier) ;) }))) (if_statement "if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }" if (parenthesized_expression "(*(char *)((psVar43[3] - 1) + *psVar43) != '\0')" ( (binary_expression "*(char *)((psVar43[3] - 1) + *psVar43) != '\0'" (pointer_expression "*(char *)((psVar43[3] - 1) + *psVar43)" * (cast_expression "(char *)((psVar43[3] - 1) + *psVar43)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((psVar43[3] - 1) + *psVar43)" ( (binary_expression "(psVar43[3] - 1) + *psVar43" (parenthesized_expression "(psVar43[3] - 1)" ( (binary_expression "psVar43[3] - 1" (subscript_expression "psVar43[3]" identifier [ number_literal ]) - number_literal) )) + (pointer_expression "*psVar43" * identifier)) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }" { (expression_statement "iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);" (assignment_expression "iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43)" identifier = (call_expression "dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43)" identifier (argument_list "(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43)" ( number_literal , (string_literal ""corrupt GNU build attribute note: name not NUL terminated"" " string_content ") , number_literal , (pointer_expression "*psVar43" * identifier) )))) ;) (goto_statement "goto LAB_0001ae12;" goto statement_identifier ;) })) (expression_statement "psVar43 = psVar43 + 0xc;" (assignment_expression "psVar43 = psVar43 + 0xc" identifier = (binary_expression "psVar43 + 0xc" identifier + number_literal)) ;) (expression_statement "pvVar26 = (void *)(uVar37 + (int)pvVar26);" (assignment_expression "pvVar26 = (void *)(uVar37 + (int)pvVar26)" identifier = (cast_expression "(void *)(uVar37 + (int)pvVar26)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar37 + (int)pvVar26)" ( (binary_expression "uVar37 + (int)pvVar26" identifier + (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (if_statement "if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }" if (parenthesized_expression "(local_78 == 0 && local_7c == 0)" ( (binary_expression "local_78 == 0 && local_7c == 0" (binary_expression "local_78 == 0" identifier == number_literal) && (binary_expression "local_7c == 0" identifier == number_literal)) )) (compound_statement "{\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }" { (if_statement "if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }" if (parenthesized_expression "(local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0))" ( (binary_expression "local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)" (binary_expression "local_a4 == 0" identifier == number_literal) && (parenthesized_expression "(local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)" ( (binary_expression "local_a8 == (size_t *)0x0 && local_84 == (int *)0x0" (binary_expression "local_a8 == (size_t *)0x0" identifier == (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "local_84 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }" { (expression_statement "iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));" (assignment_expression "iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c))" identifier = (call_expression "dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c))" identifier (argument_list "(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c))" ( number_literal , (string_literal ""bad GNU build attribute notes: no known versions detected"" " string_content ") , number_literal , (binary_expression "-local_78 - (uint)(0xb < local_7c)" (unary_expression "-local_78" - identifier) - (call_expression "(uint)(0xb < local_7c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xb < local_7c)" ( (binary_expression "0xb < local_7c" number_literal < identifier) )))) )))) ;) (goto_statement "goto LAB_0001ae12;" goto statement_identifier ;) })) (if_statement "if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }" if (parenthesized_expression "(((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0))))" ( (binary_expression "((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))" (parenthesized_expression "((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0))" ( (binary_expression "(local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)" (parenthesized_expression "(local_a4 != 0)" ( (binary_expression "local_a4 != 0" identifier != number_literal) )) && (parenthesized_expression "(local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)" ( (binary_expression "local_a8 != (size_t *)0x0 || local_84 != (int *)0x0" (binary_expression "local_a8 != (size_t *)0x0" identifier != (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "local_84 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) || (parenthesized_expression "((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))" ( (parenthesized_expression "(local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0))" ( (binary_expression "local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)" (binary_expression "local_a8 != (size_t *)0x0" identifier != (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(local_84 != (int *)0x0)" ( (binary_expression "local_84 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) ))) )) (compound_statement "{\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }" { (expression_statement "iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);" (assignment_expression "iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43)" identifier = (call_expression "dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43)" identifier (argument_list "(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43)" ( number_literal , (string_literal ""bad GNU build attribute notes: multiple different versions"" " string_content ") , number_literal , identifier )))) ;) (goto_statement "goto LAB_0001ae12;" goto statement_identifier ;) })) (if_statement "if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;" if (parenthesized_expression "((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))" ( (binary_expression "(local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1)" (parenthesized_expression "(local_a4 == 1 || local_a8 == (size_t *)0x1)" ( (binary_expression "local_a4 == 1 || local_a8 == (size_t *)0x1" (binary_expression "local_a4 == 1" identifier == number_literal) || (binary_expression "local_a8 == (size_t *)0x1" identifier == (cast_expression "(size_t *)0x1" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) || (parenthesized_expression "(local_84 == (int *)0x1)" ( (binary_expression "local_84 == (int *)0x1" identifier == (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_0001ae41;" goto statement_identifier ;)) (expression_statement "uVar17 = -(uint)(local_a4 == 0) & 2;" (assignment_expression "uVar17 = -(uint)(local_a4 == 0) & 2" identifier = (binary_expression "-(uint)(local_a4 == 0) & 2" (unary_expression "-(uint)(local_a4 == 0)" - (call_expression "(uint)(local_a4 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_a4 == 0)" ( (binary_expression "local_a4 == 0" identifier == number_literal) )))) & number_literal)) ;) (expression_statement "iVar31 = uVar17 + 1;" (assignment_expression "iVar31 = uVar17 + 1" identifier = (binary_expression "uVar17 + 1" identifier + number_literal)) ;) (if_statement "if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }" if (parenthesized_expression "(*(char *)(local_74[3] + iVar31) != '\x01')" ( (binary_expression "*(char *)(local_74[3] + iVar31) != '\x01'" (pointer_expression "*(char *)(local_74[3] + iVar31)" * (cast_expression "(char *)(local_74[3] + iVar31)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_74[3] + iVar31)" ( (binary_expression "local_74[3] + iVar31" (subscript_expression "local_74[3]" identifier [ number_literal ]) + identifier) )))) != (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }" { (expression_statement "iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);" (assignment_expression "iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31)" identifier = (call_expression "dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31)" identifier (argument_list "(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31)" ( number_literal , (string_literal ""bad GNU build attribute notes: first note not version note"" " string_content ") , number_literal , identifier )))) ;) (goto_statement "goto LAB_0001ae12;" goto statement_identifier ;) })) (expression_statement "bVar46 = false;" (assignment_expression "bVar46 = false" identifier = false) ;) (expression_statement "iVar18 = uVar17 + 2;" (assignment_expression "iVar18 = uVar17 + 2" identifier = (binary_expression "uVar17 + 2" identifier + number_literal)) ;) (expression_statement "psVar38 = local_74;" (assignment_expression "psVar38 = local_74" identifier = identifier) ;) (labeled_statement "LAB_0001afd1:\n          psVar9 = psVar38;" statement_identifier : (expression_statement "psVar9 = psVar38;" (assignment_expression "psVar9 = psVar38" identifier = identifier) ;)) (expression_statement "local_6c = psVar9 + 0xc;" (assignment_expression "local_6c = psVar9 + 0xc" identifier = (binary_expression "psVar9 + 0xc" identifier + number_literal)) ;) (expression_statement "psVar38 = local_6c;" (assignment_expression "psVar38 = local_6c" identifier = identifier) ;) (if_statement "if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }" if (parenthesized_expression "(local_6c < psVar43)" ( (binary_expression "local_6c < psVar43" identifier < identifier) )) (compound_statement "{\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }" { (if_statement "if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }" if (parenthesized_expression "(psVar9[0xe] == 0x100)" ( (binary_expression "psVar9[0xe] == 0x100" (subscript_expression "psVar9[0xe]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }" { (expression_statement "local_a8 = (size_t *)0x0;" (assignment_expression "local_a8 = (size_t *)0x0" identifier = (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pvVar26 = (void *)psVar9[0xf];" (assignment_expression "pvVar26 = (void *)psVar9[0xf]" identifier = (cast_expression "(void *)psVar9[0xf]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "psVar9[0xf]" identifier [ number_literal ]))) ;) (expression_statement "local_6c = psVar9;" (assignment_expression "local_6c = psVar9" identifier = identifier) ;) (while_statement "while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }" while (parenthesized_expression "(psVar10 = local_6c, local_74 <= local_6c)" ( (comma_expression "psVar10 = local_6c, local_74 <= local_6c" (assignment_expression "psVar10 = local_6c" identifier = identifier) , (binary_expression "local_74 <= local_6c" identifier <= identifier)) )) (compound_statement "{\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }" { (expression_statement "pvVar32 = (void *)local_6c[3];" (assignment_expression "pvVar32 = (void *)local_6c[3]" identifier = (cast_expression "(void *)local_6c[3]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_6c[3]" identifier [ number_literal ]))) ;) (expression_statement "psVar11 = local_a8;" (assignment_expression "psVar11 = local_a8" identifier = identifier) ;) (if_statement "if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }" if (parenthesized_expression "((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100))))" ( (binary_expression "(((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))" (parenthesized_expression "(((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101))" ( (binary_expression "((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)" (parenthesized_expression "((local_a8 != (size_t *)0x0) || (local_6c[1] == 0))" ( (binary_expression "(local_a8 != (size_t *)0x0) || (local_6c[1] == 0)" (parenthesized_expression "(local_a8 != (size_t *)0x0)" ( (binary_expression "local_a8 != (size_t *)0x0" identifier != (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(local_6c[1] == 0)" ( (binary_expression "local_6c[1] == 0" (subscript_expression "local_6c[1]" identifier [ number_literal ]) == number_literal) ))) )) || (parenthesized_expression "(psVar11 = local_6c, local_6c[2] != 0x101)" ( (comma_expression "psVar11 = local_6c, local_6c[2] != 0x101" (assignment_expression "psVar11 = local_6c" identifier = identifier) , (binary_expression "local_6c[2] != 0x101" (subscript_expression "local_6c[2]" identifier [ number_literal ]) != number_literal)) ))) )) && (parenthesized_expression "((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))" ( (parenthesized_expression "(local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100))" ( (comma_expression "local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)" (assignment_expression "local_a8 = psVar11" identifier = identifier) , (binary_expression "*(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)" (binary_expression "*(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31)" (pointer_expression "*(char *)((int)pvVar26 + iVar31)" * (cast_expression "(char *)((int)pvVar26 + iVar31)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar26 + iVar31)" ( (binary_expression "(int)pvVar26 + iVar31" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) == (pointer_expression "*(char *)((int)pvVar32 + iVar31)" * (cast_expression "(char *)((int)pvVar32 + iVar31)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar32 + iVar31)" ( (binary_expression "(int)pvVar32 + iVar31" (cast_expression "(int)pvVar32" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) && (parenthesized_expression "(local_6c[2] == 0x100)" ( (binary_expression "local_6c[2] == 0x100" (subscript_expression "local_6c[2]" identifier [ number_literal ]) == number_literal) )))) )) ))) )) (compound_statement "{\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }" { (expression_statement "sVar54 = *psVar38;" (assignment_expression "sVar54 = *psVar38" identifier = (pointer_expression "*psVar38" * identifier)) ;) (if_statement "if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }" if (parenthesized_expression "(*(char *)((int)pvVar32 + iVar31) != '\x04')" ( (binary_expression "*(char *)((int)pvVar32 + iVar31) != '\x04'" (pointer_expression "*(char *)((int)pvVar32 + iVar31)" * (cast_expression "(char *)((int)pvVar32 + iVar31)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar32 + iVar31)" ( (binary_expression "(int)pvVar32 + iVar31" (cast_expression "(int)pvVar32" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) != (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }" { (expression_statement "sVar55 = *local_6c;" (assignment_expression "sVar55 = *local_6c" identifier = (pointer_expression "*local_6c" * identifier)) ;) (if_statement "if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }" if (parenthesized_expression "((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0))" ( (binary_expression "(sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)" (parenthesized_expression "(sVar55 == sVar54)" ( (binary_expression "sVar55 == sVar54" identifier == identifier) )) && (parenthesized_expression "(iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)" ( (comma_expression "iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0" (assignment_expression "iVar21 = memcmp(pvVar32,pvVar26,sVar55)" identifier = (call_expression "memcmp(pvVar32,pvVar26,sVar55)" identifier (argument_list "(pvVar32,pvVar26,sVar55)" ( identifier , identifier , identifier )))) , (comma_expression "pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0" (assignment_expression "pvVar52 = pvVar26" identifier = identifier) , (comma_expression "sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0" (assignment_expression "sVar23 = sVar55" identifier = identifier) , (comma_expression "sVar53 = sVar54, iVar21 == 0" (assignment_expression "sVar53 = sVar54" identifier = identifier) , (binary_expression "iVar21 == 0" identifier == number_literal))))) ))) )) (compound_statement "{\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }" { (expression_statement "uVar17 = local_6c[10];" (assignment_expression "uVar17 = local_6c[10]" identifier = (subscript_expression "local_6c[10]" identifier [ number_literal ])) ;) (expression_statement "uVar27 = local_6c[9];" (assignment_expression "uVar27 = local_6c[9]" identifier = (subscript_expression "local_6c[9]" identifier [ number_literal ])) ;) (if_statement "if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }" if (parenthesized_expression "(uVar17 != 0 || uVar27 != 0)" ( (binary_expression "uVar17 != 0 || uVar27 != 0" (binary_expression "uVar17 != 0" identifier != number_literal) || (binary_expression "uVar27 != 0" identifier != number_literal)) )) (compound_statement "{\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }" { (expression_statement "uVar37 = psVar9[0x15];" (assignment_expression "uVar37 = psVar9[0x15]" identifier = (subscript_expression "psVar9[0x15]" identifier [ number_literal ])) ;) (expression_statement "uVar44 = psVar9[0x16];" (assignment_expression "uVar44 = psVar9[0x16]" identifier = (subscript_expression "psVar9[0x16]" identifier [ number_literal ])) ;) (if_statement "if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }" if (parenthesized_expression "((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14]))))" ( (binary_expression "(uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))" (parenthesized_expression "(uVar44 != 0 || uVar37 != 0)" ( (binary_expression "uVar44 != 0 || uVar37 != 0" (binary_expression "uVar44 != 0" identifier != number_literal) || (binary_expression "uVar37 != 0" identifier != number_literal)) )) && (parenthesized_expression "((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))" ( (parenthesized_expression "(-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14]))" ( (binary_expression "-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])" (binary_expression "-uVar17 - 1 < (uint)(0xfffffff0 < uVar27)" (binary_expression "-uVar17 - 1" (unary_expression "-uVar17" - identifier) - number_literal) < (call_expression "(uint)(0xfffffff0 < uVar27)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffffff0 < uVar27)" ( (binary_expression "0xfffffff0 < uVar27" number_literal < identifier) )))) || (parenthesized_expression "(uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])" ( (comma_expression "uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14]" (assignment_expression "uVar33 = uVar17 + (0xfffffff0 < uVar27)" identifier = (binary_expression "uVar17 + (0xfffffff0 < uVar27)" identifier + (parenthesized_expression "(0xfffffff0 < uVar27)" ( (binary_expression "0xfffffff0 < uVar27" number_literal < identifier) )))) , (binary_expression "psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14]" (binary_expression "psVar9[0x14] <= uVar33" (subscript_expression "psVar9[0x14]" identifier [ number_literal ]) <= identifier) && (binary_expression "(uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14]" (call_expression "(uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13])" ( (binary_expression "(uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]" (parenthesized_expression "(uVar27 + 0xf & 0xfffffff0)" ( (binary_expression "uVar27 + 0xf & 0xfffffff0" (binary_expression "uVar27 + 0xf" identifier + number_literal) & number_literal) )) < (subscript_expression "psVar9[0x13]" identifier [ number_literal ])) ))) <= (binary_expression "uVar33 - psVar9[0x14]" identifier - (subscript_expression "psVar9[0x14]" identifier [ number_literal ]))))) ))) )) ))) )) (compound_statement "{\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }" { (expression_statement "psVar9[0xe] = 0;" (assignment_expression "psVar9[0xe] = 0" (subscript_expression "psVar9[0xe]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }" if (parenthesized_expression "(uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37))" ( (binary_expression "uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)" (binary_expression "uVar17 < uVar44" identifier < identifier) || (binary_expression "uVar17 - uVar44 < (uint)(uVar27 < uVar37)" (binary_expression "uVar17 - uVar44" identifier - identifier) < (call_expression "(uint)(uVar27 < uVar37)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar27 < uVar37)" ( (binary_expression "uVar27 < uVar37" identifier < identifier) ))))) )) (compound_statement "{\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }" { (expression_statement "local_6c[9] = uVar37;" (assignment_expression "local_6c[9] = uVar37" (subscript_expression "local_6c[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_6c[10] = uVar44;" (assignment_expression "local_6c[10] = uVar44" (subscript_expression "local_6c[10]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "bVar46 = true;" (assignment_expression "bVar46 = true" identifier = true) ;) (if_statement "if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }" if (parenthesized_expression "(local_84 != (int *)0x0)" ( (binary_expression "local_84 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                            local_6c[0xb] = 1;\n                          }" { (expression_statement "local_6c[0xb] = 1;" (assignment_expression "local_6c[0xb] = 1" (subscript_expression "local_6c[0xb]" identifier [ number_literal ]) = number_literal) ;) })) (break_statement "break;" break ;) })) })) })) (if_statement "if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }" if (parenthesized_expression "(local_84 == (int *)0x0)" ( (binary_expression "local_84 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }" { (if_statement "if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }" if (parenthesized_expression "(((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))" ( (binary_expression "((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0)" (parenthesized_expression "((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0))" ( (binary_expression "(psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)" (parenthesized_expression "(psVar9[0xd] == 0)" ( (binary_expression "psVar9[0xd] == 0" (subscript_expression "psVar9[0xd]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(local_a8 != (size_t *)0x0)" ( (binary_expression "local_a8 != (size_t *)0x0" identifier != (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(local_a8[2] == 0)" ( (binary_expression "local_a8[2] == 0" (subscript_expression "local_a8[2]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n                        local_a8[2] = 0x100;\n                      }" { (expression_statement "local_a8[2] = 0x100;" (assignment_expression "local_a8[2] = 0x100" (subscript_expression "local_a8[2]" identifier [ number_literal ]) = number_literal) ;) })) }) (else_clause "else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }" else (compound_statement "{\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }" { (expression_statement "psVar9[0x17] = 1;" (assignment_expression "psVar9[0x17] = 1" (subscript_expression "psVar9[0x17]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "psVar9[0xe] = 0x101;" (assignment_expression "psVar9[0xe] = 0x101" (subscript_expression "psVar9[0xe]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_6c[0xb] = 1;" (assignment_expression "local_6c[0xb] = 1" (subscript_expression "local_6c[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_6c[2] = 0x101;" (assignment_expression "local_6c[2] = 0x101" (subscript_expression "local_6c[2]" identifier [ number_literal ]) = number_literal) ;) }))) (break_statement "break;" break ;) })) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (for_statement "for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }" for ( (assignment_expression "iVar21 = 0" identifier = number_literal) ; (binary_expression "sVar54 - iVar18 != iVar21" (binary_expression "sVar54 - iVar18" identifier - identifier) != identifier) ; (assignment_expression "iVar21 = iVar21 + 1" identifier = (binary_expression "iVar21 + 1" identifier + number_literal)) ) (compound_statement "{\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }" { (expression_statement "uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);" (assignment_expression "uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU)" identifier = (binary_expression "uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU)" identifier | (binary_expression "(uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU)" (binary_expression "(uint)*(byte *)((int)pvVar26 + iVar21 + iVar18)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)pvVar26 + iVar21 + iVar18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar26 + iVar21 + iVar18)" ( (binary_expression "(int)pvVar26 + iVar21 + iVar18" (binary_expression "(int)pvVar26 + iVar21" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) )))) << (parenthesized_expression "((char)iVar21 * '\b' & 0x1fU)" ( (binary_expression "(char)iVar21 * '\b' & 0x1fU" (binary_expression "(char)iVar21 * '\b'" (cast_expression "(char)iVar21" ( (type_descriptor "char" primitive_type) ) identifier) * (char_literal "'\b'" ' escape_sequence ')) & number_literal) ))))) ;) })) (expression_statement "local_6c = (size_t *)0x0;" (assignment_expression "local_6c = (size_t *)0x0" identifier = (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sVar54 = *psVar10;" (assignment_expression "sVar54 = *psVar10" identifier = (pointer_expression "*psVar10" * identifier)) ;) (for_statement "for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }" for ( (assignment_expression "uVar27 = 0" identifier = number_literal) ; (binary_expression "sVar54 - iVar18 != uVar27" (binary_expression "sVar54 - iVar18" identifier - identifier) != identifier) ; (assignment_expression "uVar27 = uVar27 + 1" identifier = (binary_expression "uVar27 + 1" identifier + number_literal)) ) (compound_statement "{\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }" { (expression_statement "local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));" (assignment_expression "local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU))" identifier = (cast_expression "(size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU))" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU))" ( (binary_expression "(uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU)" (cast_expression "(uint)local_6c" ( (type_descriptor "uint" type_identifier) ) identifier) | (binary_expression "(uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU)" (subscript_expression "(uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27]" (call_expression "(uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "((undefined1 *)((int)pvVar32 + iVar18))" ( (cast_expression "(undefined1 *)((int)pvVar32 + iVar18)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar32 + iVar18)" ( (binary_expression "(int)pvVar32 + iVar18" (cast_expression "(int)pvVar32" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))) ))) [ identifier ]) << (parenthesized_expression "((char)uVar27 * '\b' & 0x1fU)" ( (binary_expression "(char)uVar27 * '\b' & 0x1fU" (binary_expression "(char)uVar27 * '\b'" (cast_expression "(char)uVar27" ( (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 "uVar17 = (int)local_6c + uVar17;" (assignment_expression "uVar17 = (int)local_6c + uVar17" identifier = (binary_expression "(int)local_6c + uVar17" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (for_statement "for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }" for ( (assignment_expression "uVar37 = uVar17" identifier = identifier) ; (binary_expression "uVar37 != 0" identifier != number_literal) ; (assignment_expression "uVar37 = uVar37 >> 8" identifier = (binary_expression "uVar37 >> 8" identifier >> number_literal)) ) (compound_statement "{\n                    uVar44 = uVar44 + 1;\n                  }" { (expression_statement "uVar44 = uVar44 + 1;" (assignment_expression "uVar44 = uVar44 + 1" identifier = (binary_expression "uVar44 + 1" identifier + number_literal)) ;) })) (if_statement "if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }" if (parenthesized_expression "(uVar44 < uVar27)" ( (binary_expression "uVar44 < uVar27" identifier < identifier) )) (compound_statement "{\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }" { (expression_statement "puVar45 = (undefined1 *)((int)pvVar32 + iVar18);" (assignment_expression "puVar45 = (undefined1 *)((int)pvVar32 + iVar18)" identifier = (cast_expression "(undefined1 *)((int)pvVar32 + iVar18)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar32 + iVar18)" ( (binary_expression "(int)pvVar32 + iVar18" (cast_expression "(int)pvVar32" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (goto_statement "goto LAB_0001b1a6;" goto statement_identifier ;) })) })) (expression_statement "local_6c = psVar10 + -0xc;" (assignment_expression "local_6c = psVar10 + -0xc" identifier = (binary_expression "psVar10 + -0xc" identifier + number_literal)) ;) })) })) (goto_statement "goto LAB_0001afd1;" goto statement_identifier ;) })) (expression_statement "local_6c = param_2;" (assignment_expression "local_6c = param_2" identifier = identifier) ;) (if_statement "if (!bVar46) goto LAB_0001ae41;" if (parenthesized_expression "(!bVar46)" ( (unary_expression "!bVar46" ! identifier) )) (goto_statement "goto LAB_0001ae41;" goto statement_identifier ;)) (expression_statement "pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);" (assignment_expression "pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53)" identifier = (cast_expression "(void *)xmalloc(sVar22,pvVar52,sVar23,sVar53)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar22,pvVar52,sVar23,sVar53)" identifier (argument_list "(sVar22,pvVar52,sVar23,sVar53)" ( identifier , identifier , identifier , identifier ))))) ;) (expression_statement "pvVar26 = pvVar52;" (assignment_expression "pvVar26 = pvVar52" identifier = identifier) ;) (expression_statement "sVar53 = local_78;" (assignment_expression "sVar53 = local_78" identifier = identifier) ;) (expression_statement "sVar23 = local_7c;" (assignment_expression "sVar23 = local_7c" identifier = identifier) ;) (expression_statement "local_a8 = (size_t *)pvVar6;" (assignment_expression "local_a8 = (size_t *)pvVar6" identifier = (cast_expression "(size_t *)pvVar6" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (for_statement "for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }" for ( (assignment_expression "psVar38 = local_74" identifier = identifier) ; (binary_expression "psVar38 < psVar43" identifier < identifier) ; (assignment_expression "psVar38 = psVar38 + 0xc" identifier = (binary_expression "psVar38 + 0xc" identifier + number_literal)) ) (compound_statement "{\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }" { (expression_statement "sVar55 = *psVar38;" (assignment_expression "sVar55 = *psVar38" identifier = (pointer_expression "*psVar38" * identifier)) ;) (expression_statement "sVar30 = psVar38[2];" (assignment_expression "sVar30 = psVar38[2]" identifier = (subscript_expression "psVar38[2]" identifier [ number_literal ])) ;) (expression_statement "sVar54 = sVar55 + psVar38[1] + 0xc;" (assignment_expression "sVar54 = sVar55 + psVar38[1] + 0xc" identifier = (binary_expression "sVar55 + psVar38[1] + 0xc" (binary_expression "sVar55 + psVar38[1]" identifier + (subscript_expression "psVar38[1]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "pvVar32 = pvVar26;" (assignment_expression "pvVar32 = pvVar26" identifier = identifier) ;) (if_statement "if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }" if (parenthesized_expression "(sVar30 != 0)" ( (binary_expression "sVar30 != 0" identifier != number_literal) )) (compound_statement "{\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }" { (if_statement "if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }" if (parenthesized_expression "(psVar38[0xb] == 0)" ( (binary_expression "psVar38[0xb] == 0" (subscript_expression "psVar38[0xb]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }" { (expression_statement "memcpy(pvVar26,local_a8,sVar54);" (call_expression "memcpy(pvVar26,local_a8,sVar54)" identifier (argument_list "(pvVar26,local_a8,sVar54)" ( identifier , identifier , identifier ))) ;) (expression_statement "pvVar32 = (void *)((int)pvVar26 + sVar54);" (assignment_expression "pvVar32 = (void *)((int)pvVar26 + sVar54)" identifier = (cast_expression "(void *)((int)pvVar26 + sVar54)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar26 + sVar54)" ( (binary_expression "(int)pvVar26 + sVar54" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }" else (compound_statement "{\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }" { (expression_statement "sVar28 = psVar38[8];" (assignment_expression "sVar28 = psVar38[8]" identifier = (subscript_expression "psVar38[8]" identifier [ number_literal ])) ;) (expression_statement "sVar7 = psVar38[7];" (assignment_expression "sVar7 = psVar38[7]" identifier = (subscript_expression "psVar38[7]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (expression_statement "pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);" (assignment_expression "pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30)" identifier = (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x30)" * (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x30)" ( (binary_expression "*(int *)((int)param_1 + 4) + 0x30" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar31 = (int)pvVar26 + 4;" (assignment_expression "iVar31 = (int)pvVar26 + 4" identifier = (binary_expression "(int)pvVar26 + 4" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "iVar18 = (int)pvVar26 + 8;" (assignment_expression "iVar18 = (int)pvVar26 + 8" identifier = (binary_expression "(int)pvVar26 + 8" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "__dest = (void *)((int)pvVar26 + 0xc);" (assignment_expression "__dest = (void *)((int)pvVar26 + 0xc)" identifier = (cast_expression "(void *)((int)pvVar26 + 0xc)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar26 + 0xc)" ( (binary_expression "(int)pvVar26 + 0xc" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pvVar32 = (void *)((int)__dest + sVar55);" (assignment_expression "pvVar32 = (void *)((int)__dest + sVar55)" identifier = (cast_expression "(void *)((int)__dest + sVar55)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__dest + sVar55)" ( (binary_expression "(int)__dest + sVar55" (cast_expression "(int)__dest" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "sVar29 = sVar28;" (assignment_expression "sVar29 = sVar28" identifier = identifier) ;) (if_statement "if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }" if (parenthesized_expression "(((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23))))" ( (binary_expression "((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))" (parenthesized_expression "((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c))" ( (binary_expression "(sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)" (parenthesized_expression "(sVar28 == local_78)" ( (binary_expression "sVar28 == local_78" identifier == identifier) )) && (parenthesized_expression "(sVar29 = local_7c, sVar7 == local_7c)" ( (comma_expression "sVar29 = local_7c, sVar7 == local_7c" (assignment_expression "sVar29 = local_7c" identifier = identifier) , (binary_expression "sVar7 == local_7c" identifier == identifier)) ))) )) && (parenthesized_expression "((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))" ( (parenthesized_expression "(sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23))" ( (comma_expression "sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)" (assignment_expression "sVar29 = sVar53" identifier = identifier) , (binary_expression "psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)" (binary_expression "psVar38[10] == sVar53" (subscript_expression "psVar38[10]" identifier [ number_literal ]) == identifier) && (parenthesized_expression "(sVar29 = sVar23, psVar38[9] == sVar23)" ( (comma_expression "sVar29 = sVar23, psVar38[9] == sVar23" (assignment_expression "sVar29 = sVar23" identifier = identifier) , (binary_expression "psVar38[9] == sVar23" (subscript_expression "psVar38[9]" identifier [ number_literal ]) == identifier)) )))) )) ))) )) (compound_statement "{\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }" { (expression_statement "(*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);" (call_expression "(*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18)" ( identifier , number_literal , identifier , identifier , identifier , identifier , identifier , number_literal , identifier , identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);" (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))" ( (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x30)" * (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x30)" * (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x30)" ( (binary_expression "*(int *)((int)param_1 + 4) + 0x30" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) )) (argument_list "(0,0,iVar31)" ( number_literal , number_literal , identifier ))) ;) (expression_statement "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);" (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))" ( (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x30)" * (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x30)" * (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x30)" ( (binary_expression "*(int *)((int)param_1 + 4) + 0x30" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) )) (argument_list "(sVar30,uVar13,iVar18)" ( identifier , identifier , identifier ))) ;) (expression_statement "memcpy(__dest,(void *)psVar38[3],sVar55);" (call_expression "memcpy(__dest,(void *)psVar38[3],sVar55)" identifier (argument_list "(__dest,(void *)psVar38[3],sVar55)" ( identifier , (cast_expression "(void *)psVar38[3]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "psVar38[3]" identifier [ number_literal ])) , identifier ))) ;) }) (else_clause "else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }" else (compound_statement "{\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }" { (expression_statement "(*pcVar8)(sVar55,0,pvVar26,sVar29);" (call_expression "(*pcVar8)(sVar55,0,pvVar26,sVar29)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(sVar55,0,pvVar26,sVar29)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "uVar14 = 8;" (assignment_expression "uVar14 = 8" identifier = number_literal) ;) (expression_statement "iVar21 = *(int *)((int)param_1 + 4);" (assignment_expression "iVar21 = *(int *)((int)param_1 + 4)" identifier = (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar35 = (undefined4 *)(iVar21 + 0x30);" (assignment_expression "puVar35 = (undefined4 *)(iVar21 + 0x30)" identifier = (cast_expression "(undefined4 *)(iVar21 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x30)" ( (binary_expression "iVar21 + 0x30" identifier + number_literal) )))) ;) (if_statement "if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }" if (parenthesized_expression "((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02'))" ( (binary_expression "(*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')" (parenthesized_expression "(*(int *)(iVar21 + 4) == 5)" ( (binary_expression "*(int *)(iVar21 + 4) == 5" (pointer_expression "*(int *)(iVar21 + 4)" * (cast_expression "(int *)(iVar21 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 4)" ( (binary_expression "iVar21 + 4" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')" ( (comma_expression "iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02'" (assignment_expression "iVar21 = *(int *)((int)param_1 + 0xa0)" identifier = (pointer_expression "*(int *)((int)param_1 + 0xa0)" * (cast_expression "(int *)((int)param_1 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0xa0)" ( (binary_expression "(int)param_1 + 0xa0" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) , (binary_expression "*(char *)(iVar21 + 4) == '\x02'" (pointer_expression "*(char *)(iVar21 + 4)" * (cast_expression "(char *)(iVar21 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 4)" ( (binary_expression "iVar21 + 4" identifier + number_literal) )))) == (char_literal "'\x02'" ' escape_sequence '))) ))) )) (compound_statement "{\n                    uVar14 = 0x10;\n                  }" { (expression_statement "uVar14 = 0x10;" (assignment_expression "uVar14 = 0x10" identifier = number_literal) ;) })) (expression_statement "(*(code *)*puVar35)(uVar14,0,iVar31,iVar21);" (call_expression "(*(code *)*puVar35)(uVar14,0,iVar31,iVar21)" (parenthesized_expression "(*(code *)*puVar35)" ( (pointer_expression "*(code *)*puVar35" * (cast_expression "(code *)*puVar35" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar35" * identifier))) )) (argument_list "(uVar14,0,iVar31,iVar21)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);" (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))" ( (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x30)" * (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x30)" * (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x30)" ( (binary_expression "*(int *)((int)param_1 + 4) + 0x30" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) )) (argument_list "(sVar30,uVar13,iVar18)" ( identifier , identifier , identifier ))) ;) (expression_statement "memcpy(__dest,(void *)psVar38[3],sVar55);" (call_expression "memcpy(__dest,(void *)psVar38[3],sVar55)" identifier (argument_list "(__dest,(void *)psVar38[3],sVar55)" ( identifier , (cast_expression "(void *)psVar38[3]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "psVar38[3]" identifier [ number_literal ])) , identifier ))) ;) (expression_statement "iVar31 = *(int *)((int)param_1 + 4);" (assignment_expression "iVar31 = *(int *)((int)param_1 + 4)" identifier = (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pvVar26 = pvVar32;" (assignment_expression "pvVar26 = pvVar32" identifier = identifier) ;) (if_statement "if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }" if (parenthesized_expression "((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02'))" ( (binary_expression "(*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')" (parenthesized_expression "(*(int *)(iVar31 + 4) == 5)" ( (binary_expression "*(int *)(iVar31 + 4) == 5" (pointer_expression "*(int *)(iVar31 + 4)" * (cast_expression "(int *)(iVar31 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 4)" ( (binary_expression "iVar31 + 4" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')" ( (comma_expression "pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02'" (assignment_expression "pvVar26 = *(void **)((int)param_1 + 0xa0)" identifier = (pointer_expression "*(void **)((int)param_1 + 0xa0)" * (cast_expression "(void **)((int)param_1 + 0xa0)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)param_1 + 0xa0)" ( (binary_expression "(int)param_1 + 0xa0" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) , (binary_expression "*(char *)((int)pvVar26 + 4) == '\x02'" (pointer_expression "*(char *)((int)pvVar26 + 4)" * (cast_expression "(char *)((int)pvVar26 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar26 + 4)" ( (binary_expression "(int)pvVar26 + 4" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\x02'" ' escape_sequence '))) ))) )) (compound_statement "{\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }" { (expression_statement "(**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);" (call_expression "(**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1)" (parenthesized_expression "(**(code **)(iVar31 + 0x24))" ( (pointer_expression "**(code **)(iVar31 + 0x24)" * (pointer_expression "*(code **)(iVar31 + 0x24)" * (cast_expression "(code **)(iVar31 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar31 + 0x24)" ( (binary_expression "iVar31 + 0x24" identifier + number_literal) ))))) )) (argument_list "(sVar7,sVar28,pvVar32,param_1)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));" (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8))" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x24))" ( (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x24)" * (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x24)" * (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x24)" ( (binary_expression "*(int *)((int)param_1 + 4) + 0x24" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) )) (argument_list "(psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8))" ( (subscript_expression "psVar38[9]" identifier [ number_literal ]) , (subscript_expression "psVar38[10]" identifier [ number_literal ]) , (cast_expression "(void *)((int)pvVar32 + 8)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar32 + 8)" ( (binary_expression "(int)pvVar32 + 8" (cast_expression "(int)pvVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ))) ;) (expression_statement "pvVar32 = (void *)((int)pvVar32 + 0x10);" (assignment_expression "pvVar32 = (void *)((int)pvVar32 + 0x10)" identifier = (cast_expression "(void *)((int)pvVar32 + 0x10)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar32 + 0x10)" ( (binary_expression "(int)pvVar32 + 0x10" (cast_expression "(int)pvVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) (else_clause "else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }" else (compound_statement "{\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }" { (expression_statement "(**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);" (call_expression "(**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26)" (parenthesized_expression "(**(code **)(iVar31 + 0x30))" ( (pointer_expression "**(code **)(iVar31 + 0x30)" * (pointer_expression "*(code **)(iVar31 + 0x30)" * (cast_expression "(code **)(iVar31 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar31 + 0x30)" ( (binary_expression "iVar31 + 0x30" identifier + number_literal) ))))) )) (argument_list "(sVar7,sVar28,pvVar32,pvVar26)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);" (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))" ( (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x30)" * (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x30)" * (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x30)" ( (binary_expression "*(int *)((int)param_1 + 4) + 0x30" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) )) (argument_list "(psVar38[9],psVar38[10],(int)pvVar32 + 4)" ( (subscript_expression "psVar38[9]" identifier [ number_literal ]) , (subscript_expression "psVar38[10]" identifier [ number_literal ]) , (binary_expression "(int)pvVar32 + 4" (cast_expression "(int)pvVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ;) (expression_statement "pvVar32 = (void *)((int)pvVar32 + 8);" (assignment_expression "pvVar32 = (void *)((int)pvVar32 + 8)" identifier = (cast_expression "(void *)((int)pvVar32 + 8)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar32 + 8)" ( (binary_expression "(int)pvVar32 + 8" (cast_expression "(int)pvVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) }))) }))) (expression_statement "local_7c = psVar38[7];" (assignment_expression "local_7c = psVar38[7]" identifier = (subscript_expression "psVar38[7]" identifier [ number_literal ])) ;) (expression_statement "local_78 = psVar38[8];" (assignment_expression "local_78 = psVar38[8]" identifier = (subscript_expression "psVar38[8]" identifier [ number_literal ])) ;) (expression_statement "sVar23 = psVar38[9];" (assignment_expression "sVar23 = psVar38[9]" identifier = (subscript_expression "psVar38[9]" identifier [ number_literal ])) ;) (expression_statement "sVar53 = psVar38[10];" (assignment_expression "sVar53 = psVar38[10]" identifier = (subscript_expression "psVar38[10]" identifier [ number_literal ])) ;) })) (expression_statement "local_a8 = (size_t *)((int)local_a8 + sVar54);" (assignment_expression "local_a8 = (size_t *)((int)local_a8 + sVar54)" identifier = (cast_expression "(size_t *)((int)local_a8 + sVar54)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + sVar54)" ( (binary_expression "(int)local_a8 + sVar54" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "pvVar26 = pvVar32;" (assignment_expression "pvVar26 = pvVar32" identifier = identifier) ;) })) (expression_statement "sVar23 = (int)pvVar26 - (int)pvVar52;" (assignment_expression "sVar23 = (int)pvVar26 - (int)pvVar52" identifier = (binary_expression "(int)pvVar26 - (int)pvVar52" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pvVar52" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar17 = (int)sVar23 >> 0x1f;" (assignment_expression "uVar17 = (int)sVar23 >> 0x1f" identifier = (binary_expression "(int)sVar23 >> 0x1f" (cast_expression "(int)sVar23" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "memcpy(pvVar6,pvVar52,sVar23);" (call_expression "memcpy(pvVar6,pvVar52,sVar23)" identifier (argument_list "(pvVar6,pvVar52,sVar23)" ( identifier , identifier , identifier ))) ;) (expression_statement "free(pvVar52);" (call_expression "free(pvVar52)" identifier (argument_list "(pvVar52)" ( identifier ))) ;) (expression_statement "free(local_74);" (call_expression "free(local_74)" identifier (argument_list "(local_74)" ( identifier ))) ;) (expression_statement "local_6c = param_2;" (assignment_expression "local_6c = param_2" identifier = identifier) ;) (expression_statement "DAT_00040bb8 = sVar23;" (assignment_expression "DAT_00040bb8 = sVar23" identifier = identifier) ;) (expression_statement "DAT_00040bbc = uVar17;" (assignment_expression "DAT_00040bbc = uVar17" identifier = identifier) ;) (if_statement "if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }" if (parenthesized_expression "((uVar39 != uVar17) || (sVar22 != sVar23))" ( (binary_expression "(uVar39 != uVar17) || (sVar22 != sVar23)" (parenthesized_expression "(uVar39 != uVar17)" ( (binary_expression "uVar39 != uVar17" identifier != identifier) )) || (parenthesized_expression "(sVar22 != sVar23)" ( (binary_expression "sVar22 != sVar23" identifier != identifier) ))) )) (compound_statement "{\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }" { (expression_statement "iVar31 = *(int *)(iVar12 + 0x54);" (assignment_expression "iVar31 = *(int *)(iVar12 + 0x54)" identifier = (pointer_expression "*(int *)(iVar12 + 0x54)" * (cast_expression "(int *)(iVar12 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x54)" ( (binary_expression "iVar12 + 0x54" identifier + number_literal) ))))) ;) (if_statement "if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;" if (parenthesized_expression "((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))" ( (binary_expression "(iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0)" (parenthesized_expression "(iVar31 != 0)" ( (binary_expression "iVar31 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0)" ( (comma_expression "iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0" (assignment_expression "iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17)" identifier = (call_expression "bfd_set_section_size(param_2,iVar31,sVar23,uVar17)" identifier (argument_list "(param_2,iVar31,sVar23,uVar17)" ( identifier , identifier , identifier , identifier )))) , (binary_expression "iVar31 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00018e0e;" goto statement_identifier ;)) (expression_statement "uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);" (assignment_expression "uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31)" identifier = (call_expression "dcgettext(0,"warning: failed to set merged notes size",5,iVar31)" identifier (argument_list "(0,"warning: failed to set merged notes size",5,iVar31)" ( number_literal , (string_literal ""warning: failed to set merged notes size"" " string_content ") , number_literal , identifier )))) ;) (expression_statement "FUN_0002d3a0(0,param_2,iVar12,uVar13);" (call_expression "FUN_0002d3a0(0,param_2,iVar12,uVar13)" identifier (argument_list "(0,param_2,iVar12,uVar13)" ( number_literal , identifier , identifier , identifier ))) ;) })) }) (else_clause "else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }" else (compound_statement "{\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }" { (expression_statement "iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);" (assignment_expression "iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c)" identifier = (call_expression "dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c)" identifier (argument_list "(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c)" ( number_literal , (string_literal ""corrupt GNU build attribute notes: excess data at end"" " string_content ") , number_literal , identifier )))) ;) (labeled_statement "LAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }" statement_identifier : (if_statement "if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }" if (parenthesized_expression "(iVar31 != 0)" ( (binary_expression "iVar31 != 0" identifier != number_literal) )) (compound_statement "{\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }" { (expression_statement "bfd_set_error(0x11);" (call_expression "bfd_set_error(0x11)" identifier (argument_list "(0x11)" ( number_literal ))) ;) (expression_statement "FUN_0002d3a0(0,param_1,iVar12,iVar31);" (call_expression "FUN_0002d3a0(0,param_1,iVar12,iVar31)" identifier (argument_list "(0,param_1,iVar12,iVar31)" ( number_literal , identifier , identifier , identifier ))) ;) (expression_statement "DAT_00040bc8 = 1;" (assignment_expression "DAT_00040bc8 = 1" identifier = number_literal) ;) }))) (labeled_statement "LAB_0001ae41:\n          free(local_74);" statement_identifier : (expression_statement "free(local_74);" (call_expression "free(local_74)" identifier (argument_list "(local_74)" ( identifier ))) ;)) }))) (expression_statement "free(DAT_00040bc0);" (call_expression "free(DAT_00040bc0)" identifier (argument_list "(DAT_00040bc0)" ( identifier ))) ;) (expression_statement "DAT_00040bc0 = (void *)0x0;" (assignment_expression "DAT_00040bc0 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00040bc4 = 0;" (assignment_expression "DAT_00040bc4 = 0" identifier = number_literal) ;) (expression_statement "DAT_00040bb8 = 0;" (assignment_expression "DAT_00040bb8 = 0" identifier = number_literal) ;) (expression_statement "DAT_00040bbc = 0;" (assignment_expression "DAT_00040bbc = 0" identifier = number_literal) ;) }))) }))) })) (labeled_statement "LAB_00018e0e:\n  param_2 = local_6c;" statement_identifier : (expression_statement "param_2 = local_6c;" (assignment_expression "param_2 = local_6c" identifier = identifier) ;)) (expression_statement "iVar31 = DAT_00040b4c;" (assignment_expression "iVar31 = DAT_00040b4c" identifier = identifier) ;) (for_statement "for (puVar35 = DAT_00040b50; DAT_00040b4c = iVar31, puVar35 != (undefined4 *)0x0;\n      puVar35 = (undefined4 *)*puVar35) {\n    iVar12 = bfd_get_section_by_name(param_1,puVar35[1]);\n    if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      uVar14 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n      FUN_0002d3a0(0,param_1,0,uVar14,uVar13);\n    }\n    else {\n      if ((*(byte *)(iVar12 + 0x15) & 1) == 0) {\n        pcVar25 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar22 = *(size_t *)(iVar12 + 0x2c);\n        iVar31 = *(int *)(iVar12 + 0x30);\n        if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar25 = "can\'t dump section - it is empty";\n      }\n      uVar13 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n    }\nLAB_00018eb1:\n    iVar31 = DAT_00040b4c;\n  }" for ( (assignment_expression "puVar35 = DAT_00040b50" identifier = identifier) ; (comma_expression "DAT_00040b4c = iVar31, puVar35 != (undefined4 *)0x0" (assignment_expression "DAT_00040b4c = iVar31" identifier = identifier) , (binary_expression "puVar35 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "puVar35 = (undefined4 *)*puVar35" identifier = (cast_expression "(undefined4 *)*puVar35" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar35" * identifier))) ) (compound_statement "{\n    iVar12 = bfd_get_section_by_name(param_1,puVar35[1]);\n    if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      uVar14 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n      FUN_0002d3a0(0,param_1,0,uVar14,uVar13);\n    }\n    else {\n      if ((*(byte *)(iVar12 + 0x15) & 1) == 0) {\n        pcVar25 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar22 = *(size_t *)(iVar12 + 0x2c);\n        iVar31 = *(int *)(iVar12 + 0x30);\n        if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar25 = "can\'t dump section - it is empty";\n      }\n      uVar13 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n    }\nLAB_00018eb1:\n    iVar31 = DAT_00040b4c;\n  }" { (expression_statement "iVar12 = bfd_get_section_by_name(param_1,puVar35[1]);" (assignment_expression "iVar12 = bfd_get_section_by_name(param_1,puVar35[1])" identifier = (call_expression "bfd_get_section_by_name(param_1,puVar35[1])" identifier (argument_list "(param_1,puVar35[1])" ( identifier , (subscript_expression "puVar35[1]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      uVar14 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n      FUN_0002d3a0(0,param_1,0,uVar14,uVar13);\n    }\n    else {\n      if ((*(byte *)(iVar12 + 0x15) & 1) == 0) {\n        pcVar25 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar22 = *(size_t *)(iVar12 + 0x2c);\n        iVar31 = *(int *)(iVar12 + 0x30);\n        if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar25 = "can\'t dump section - it is empty";\n      }\n      uVar13 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n    }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar13 = puVar35[1];\n      uVar14 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n      FUN_0002d3a0(0,param_1,0,uVar14,uVar13);\n    }" { (expression_statement "uVar13 = puVar35[1];" (assignment_expression "uVar13 = puVar35[1]" identifier = (subscript_expression "puVar35[1]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);" (assignment_expression "uVar14 = 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_0002d3a0(0,param_1,0,uVar14,uVar13);" (call_expression "FUN_0002d3a0(0,param_1,0,uVar14,uVar13)" identifier (argument_list "(0,param_1,0,uVar14,uVar13)" ( number_literal , identifier , number_literal , identifier , identifier ))) ;) }) (else_clause "else {\n      if ((*(byte *)(iVar12 + 0x15) & 1) == 0) {\n        pcVar25 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar22 = *(size_t *)(iVar12 + 0x2c);\n        iVar31 = *(int *)(iVar12 + 0x30);\n        if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar25 = "can\'t dump section - it is empty";\n      }\n      uVar13 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n    }" else (compound_statement "{\n      if ((*(byte *)(iVar12 + 0x15) & 1) == 0) {\n        pcVar25 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar22 = *(size_t *)(iVar12 + 0x2c);\n        iVar31 = *(int *)(iVar12 + 0x30);\n        if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar25 = "can\'t dump section - it is empty";\n      }\n      uVar13 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n    }" { (if_statement "if ((*(byte *)(iVar12 + 0x15) & 1) == 0) {\n        pcVar25 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar22 = *(size_t *)(iVar12 + 0x2c);\n        iVar31 = *(int *)(iVar12 + 0x30);\n        if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar25 = "can\'t dump section - it is empty";\n      }" if (parenthesized_expression "((*(byte *)(iVar12 + 0x15) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar12 + 0x15) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar12 + 0x15) & 1)" ( (binary_expression "*(byte *)(iVar12 + 0x15) & 1" (pointer_expression "*(byte *)(iVar12 + 0x15)" * (cast_expression "(byte *)(iVar12 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x15)" ( (binary_expression "iVar12 + 0x15" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        pcVar25 = "can\'t dump section - it has no contents";\n      }" { (expression_statement "pcVar25 = "can\'t dump section - it has no contents";" (assignment_expression "pcVar25 = "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 ")) ;) }) (else_clause "else {\n        sVar22 = *(size_t *)(iVar12 + 0x2c);\n        iVar31 = *(int *)(iVar12 + 0x30);\n        if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar25 = "can\'t dump section - it is empty";\n      }" else (compound_statement "{\n        sVar22 = *(size_t *)(iVar12 + 0x2c);\n        iVar31 = *(int *)(iVar12 + 0x30);\n        if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar25 = "can\'t dump section - it is empty";\n      }" { (expression_statement "sVar22 = *(size_t *)(iVar12 + 0x2c);" (assignment_expression "sVar22 = *(size_t *)(iVar12 + 0x2c)" identifier = (pointer_expression "*(size_t *)(iVar12 + 0x2c)" * (cast_expression "(size_t *)(iVar12 + 0x2c)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2c)" ( (binary_expression "iVar12 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "iVar31 = *(int *)(iVar12 + 0x30);" (assignment_expression "iVar31 = *(int *)(iVar12 + 0x30)" identifier = (pointer_expression "*(int *)(iVar12 + 0x30)" * (cast_expression "(int *)(iVar12 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x30)" ( (binary_expression "iVar12 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }" if (parenthesized_expression "(iVar31 != 0 || sVar22 != 0)" ( (binary_expression "iVar31 != 0 || sVar22 != 0" (binary_expression "iVar31 != 0" identifier != number_literal) || (binary_expression "sVar22 != 0" identifier != number_literal)) )) (compound_statement "{\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }" { (expression_statement "__s = fopen64((char *)puVar35[2],"w");" (assignment_expression "__s = fopen64((char *)puVar35[2],"w")" identifier = (call_expression "fopen64((char *)puVar35[2],"w")" identifier (argument_list "((char *)puVar35[2],"w")" ( (cast_expression "(char *)puVar35[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[2]" identifier [ number_literal ])) , (string_literal ""w"" " string_content ") )))) ;) (if_statement "if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\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            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }" { (expression_statement "uVar13 = dcgettext(0,"could not open section dump file",5);" (assignment_expression "uVar13 = 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_0002d3a0(puVar35[2],0,0,uVar13);" (call_expression "FUN_0002d3a0(puVar35[2],0,0,uVar13)" identifier (argument_list "(puVar35[2],0,0,uVar13)" ( (subscript_expression "puVar35[2]" identifier [ number_literal ]) , number_literal , number_literal , identifier ))) ;) }) (else_clause "else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }" else (compound_statement "{\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }" { (expression_statement "iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);" (assignment_expression "iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34)" identifier = (call_expression "bfd_malloc_and_get_section(param_1,iVar12,&local_34)" identifier (argument_list "(param_1,iVar12,&local_34)" ( identifier , identifier , (pointer_expression "&local_34" & identifier) )))) ;) (if_statement "if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }" { (expression_statement "uVar13 = dcgettext(0,"could not retrieve section contents",5);" (assignment_expression "uVar13 = 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_0002d3a0(0,param_1,iVar12,uVar13);" (call_expression "FUN_0002d3a0(0,param_1,iVar12,uVar13)" identifier (argument_list "(0,param_1,iVar12,uVar13)" ( number_literal , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }" else (compound_statement "{\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }" { (expression_statement "sVar23 = fwrite(local_34,1,sVar22,__s);" (assignment_expression "sVar23 = fwrite(local_34,1,sVar22,__s)" identifier = (call_expression "fwrite(local_34,1,sVar22,__s)" identifier (argument_list "(local_34,1,sVar22,__s)" ( identifier , number_literal , identifier , identifier )))) ;) (if_statement "if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }" if (parenthesized_expression "(iVar31 != 0 || sVar22 != sVar23)" ( (binary_expression "iVar31 != 0 || sVar22 != sVar23" (binary_expression "iVar31 != 0" identifier != number_literal) || (binary_expression "sVar22 != sVar23" identifier != identifier)) )) (compound_statement "{\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }" { (expression_statement "piVar19 = __errno_location();" (assignment_expression "piVar19 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar25 = strerror(*piVar19);" (assignment_expression "pcVar25 = strerror(*piVar19)" identifier = (call_expression "strerror(*piVar19)" identifier (argument_list "(*piVar19)" ( (pointer_expression "*piVar19" * identifier) )))) ;) (expression_statement "uVar13 = puVar35[2];" (assignment_expression "uVar13 = puVar35[2]" identifier = (subscript_expression "puVar35[2]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);" (assignment_expression "uVar14 = 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_0002c910(uVar14,uVar13,pcVar25);" (call_expression "FUN_0002c910(uVar14,uVar13,pcVar25)" identifier (argument_list "(uVar14,uVar13,pcVar25)" ( identifier , identifier , identifier ))) ;) (expression_statement "free(local_34);" (call_expression "free(local_34)" identifier (argument_list "(local_34)" ( 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_34);" (call_expression "free(local_34)" identifier (argument_list "(local_34)" ( identifier ))) ;) }))) (goto_statement "goto LAB_00018eb1;" goto statement_identifier ;) })) (expression_statement "pcVar25 = "can\'t dump section - it is empty";" (assignment_expression "pcVar25 = "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 "uVar13 = dcgettext(0,pcVar25,5);" (assignment_expression "uVar13 = dcgettext(0,pcVar25,5)" identifier = (call_expression "dcgettext(0,pcVar25,5)" identifier (argument_list "(0,pcVar25,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_0002d3a0(0,param_1,iVar12,uVar13);" (call_expression "FUN_0002d3a0(0,param_1,iVar12,uVar13)" identifier (argument_list "(0,param_1,iVar12,uVar13)" ( number_literal , identifier , identifier , identifier ))) ;) }))) (labeled_statement "LAB_00018eb1:\n    iVar31 = DAT_00040b4c;" statement_identifier : (expression_statement "iVar31 = DAT_00040b4c;" (assignment_expression "iVar31 = DAT_00040b4c" identifier = identifier) ;)) })) (if_statement "if (iVar31 != 0) {\n    iVar12 = bfd_get_section_by_name(local_6c,".gnu_debuglink");\n    if (iVar12 == 0) {\n      iVar31 = bfd_create_gnu_debuglink_section(local_6c,DAT_00040b4c);\n      iVar12 = DAT_00040b4c;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,local_6c,0,uVar13,iVar12);\n        return 0;\n      }\n      if (*(int *)(local_6c[1] + 4) == 2) {\n        iVar12 = local_6c[0x18];\n        iVar18 = 0;\n        if (iVar12 == 0) {\nLAB_0001aa69:\n          uVar39 = 0x1000;\n          iVar12 = 0;\n        }\n        else {\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(iVar31 + 0x24) = uVar39;\n        *(int *)(iVar31 + 0x28) = iVar12;\n        *(uint *)(iVar31 + 0x1c) = uVar39;\n        *(int *)(iVar31 + 0x20) = iVar12;\n        *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      }\n    }\n    else {\n      iVar12 = *local_6c;\n      uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n      FUN_0002c910(uVar13,iVar12);\n      DAT_00040b4c = 0;\n      iVar31 = 0;\n    }\n  }" if (parenthesized_expression "(iVar31 != 0)" ( (binary_expression "iVar31 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar12 = bfd_get_section_by_name(local_6c,".gnu_debuglink");\n    if (iVar12 == 0) {\n      iVar31 = bfd_create_gnu_debuglink_section(local_6c,DAT_00040b4c);\n      iVar12 = DAT_00040b4c;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,local_6c,0,uVar13,iVar12);\n        return 0;\n      }\n      if (*(int *)(local_6c[1] + 4) == 2) {\n        iVar12 = local_6c[0x18];\n        iVar18 = 0;\n        if (iVar12 == 0) {\nLAB_0001aa69:\n          uVar39 = 0x1000;\n          iVar12 = 0;\n        }\n        else {\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(iVar31 + 0x24) = uVar39;\n        *(int *)(iVar31 + 0x28) = iVar12;\n        *(uint *)(iVar31 + 0x1c) = uVar39;\n        *(int *)(iVar31 + 0x20) = iVar12;\n        *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      }\n    }\n    else {\n      iVar12 = *local_6c;\n      uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n      FUN_0002c910(uVar13,iVar12);\n      DAT_00040b4c = 0;\n      iVar31 = 0;\n    }\n  }" { (expression_statement "iVar12 = bfd_get_section_by_name(local_6c,".gnu_debuglink");" (assignment_expression "iVar12 = bfd_get_section_by_name(local_6c,".gnu_debuglink")" identifier = (call_expression "bfd_get_section_by_name(local_6c,".gnu_debuglink")" identifier (argument_list "(local_6c,".gnu_debuglink")" ( identifier , (string_literal "".gnu_debuglink"" " string_content ") )))) ;) (if_statement "if (iVar12 == 0) {\n      iVar31 = bfd_create_gnu_debuglink_section(local_6c,DAT_00040b4c);\n      iVar12 = DAT_00040b4c;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,local_6c,0,uVar13,iVar12);\n        return 0;\n      }\n      if (*(int *)(local_6c[1] + 4) == 2) {\n        iVar12 = local_6c[0x18];\n        iVar18 = 0;\n        if (iVar12 == 0) {\nLAB_0001aa69:\n          uVar39 = 0x1000;\n          iVar12 = 0;\n        }\n        else {\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(iVar31 + 0x24) = uVar39;\n        *(int *)(iVar31 + 0x28) = iVar12;\n        *(uint *)(iVar31 + 0x1c) = uVar39;\n        *(int *)(iVar31 + 0x20) = iVar12;\n        *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      }\n    }\n    else {\n      iVar12 = *local_6c;\n      uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n      FUN_0002c910(uVar13,iVar12);\n      DAT_00040b4c = 0;\n      iVar31 = 0;\n    }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar31 = bfd_create_gnu_debuglink_section(local_6c,DAT_00040b4c);\n      iVar12 = DAT_00040b4c;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,local_6c,0,uVar13,iVar12);\n        return 0;\n      }\n      if (*(int *)(local_6c[1] + 4) == 2) {\n        iVar12 = local_6c[0x18];\n        iVar18 = 0;\n        if (iVar12 == 0) {\nLAB_0001aa69:\n          uVar39 = 0x1000;\n          iVar12 = 0;\n        }\n        else {\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(iVar31 + 0x24) = uVar39;\n        *(int *)(iVar31 + 0x28) = iVar12;\n        *(uint *)(iVar31 + 0x1c) = uVar39;\n        *(int *)(iVar31 + 0x20) = iVar12;\n        *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      }\n    }" { (expression_statement "iVar31 = bfd_create_gnu_debuglink_section(local_6c,DAT_00040b4c);" (assignment_expression "iVar31 = bfd_create_gnu_debuglink_section(local_6c,DAT_00040b4c)" identifier = (call_expression "bfd_create_gnu_debuglink_section(local_6c,DAT_00040b4c)" identifier (argument_list "(local_6c,DAT_00040b4c)" ( identifier , identifier )))) ;) (expression_statement "iVar12 = DAT_00040b4c;" (assignment_expression "iVar12 = DAT_00040b4c" identifier = identifier) ;) (if_statement "if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,local_6c,0,uVar13,iVar12);\n        return 0;\n      }" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,local_6c,0,uVar13,iVar12);\n        return 0;\n      }" { (expression_statement "uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0);" (assignment_expression "uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0)" identifier = (call_expression "dcgettext(0,"cannot create debug link section `%s\'",5,0)" identifier (argument_list "(0,"cannot create debug link section `%s\'",5,0)" ( number_literal , (string_literal ""cannot create debug link section `%s\'"" " string_content escape_sequence ") , number_literal , number_literal )))) ;) (expression_statement "FUN_0002d3a0(0,local_6c,0,uVar13,iVar12);" (call_expression "FUN_0002d3a0(0,local_6c,0,uVar13,iVar12)" identifier (argument_list "(0,local_6c,0,uVar13,iVar12)" ( number_literal , identifier , number_literal , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*(int *)(local_6c[1] + 4) == 2) {\n        iVar12 = local_6c[0x18];\n        iVar18 = 0;\n        if (iVar12 == 0) {\nLAB_0001aa69:\n          uVar39 = 0x1000;\n          iVar12 = 0;\n        }\n        else {\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(iVar31 + 0x24) = uVar39;\n        *(int *)(iVar31 + 0x28) = iVar12;\n        *(uint *)(iVar31 + 0x1c) = uVar39;\n        *(int *)(iVar31 + 0x20) = iVar12;\n        *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      }" if (parenthesized_expression "(*(int *)(local_6c[1] + 4) == 2)" ( (binary_expression "*(int *)(local_6c[1] + 4) == 2" (pointer_expression "*(int *)(local_6c[1] + 4)" * (cast_expression "(int *)(local_6c[1] + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_6c[1] + 4)" ( (binary_expression "local_6c[1] + 4" (subscript_expression "local_6c[1]" identifier [ number_literal ]) + number_literal) )))) == number_literal) )) (compound_statement "{\n        iVar12 = local_6c[0x18];\n        iVar18 = 0;\n        if (iVar12 == 0) {\nLAB_0001aa69:\n          uVar39 = 0x1000;\n          iVar12 = 0;\n        }\n        else {\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(iVar31 + 0x24) = uVar39;\n        *(int *)(iVar31 + 0x28) = iVar12;\n        *(uint *)(iVar31 + 0x1c) = uVar39;\n        *(int *)(iVar31 + 0x20) = iVar12;\n        *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      }" { (expression_statement "iVar12 = local_6c[0x18];" (assignment_expression "iVar12 = local_6c[0x18]" identifier = (subscript_expression "local_6c[0x18]" identifier [ number_literal ])) ;) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (if_statement "if (iVar12 == 0) {\nLAB_0001aa69:\n          uVar39 = 0x1000;\n          iVar12 = 0;\n        }\n        else {\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0001aa69:\n          uVar39 = 0x1000;\n          iVar12 = 0;\n        }" { (labeled_statement "LAB_0001aa69:\n          uVar39 = 0x1000;" statement_identifier : (expression_statement "uVar39 = 0x1000;" (assignment_expression "uVar39 = 0x1000" identifier = number_literal) ;)) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }" else (compound_statement "{\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }" { (do_statement "do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);" do (compound_statement "{\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          }" { (expression_statement "uVar39 = *(uint *)(iVar12 + 0x20);" (assignment_expression "uVar39 = *(uint *)(iVar12 + 0x20)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x20)" * (cast_expression "(uint *)(iVar12 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar21 = iVar18;" (assignment_expression "iVar21 = iVar18" identifier = identifier) ;) (if_statement "if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }" if (parenthesized_expression "(((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c))))" ( (binary_expression "((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))" (parenthesized_expression "((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))" ( (binary_expression "(uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0)" (parenthesized_expression "(uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0)" ( (binary_expression "uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0" (binary_expression "uVar39 != 0" identifier != number_literal) || (binary_expression "*(uint *)(iVar12 + 0x1c) != 0" (pointer_expression "*(uint *)(iVar12 + 0x1c)" * (cast_expression "(uint *)(iVar12 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x1c)" ( (binary_expression "iVar12 + 0x1c" identifier + number_literal) )))) != number_literal)) )) && (parenthesized_expression "(iVar21 = iVar12, iVar18 != 0)" ( (comma_expression "iVar21 = iVar12, iVar18 != 0" (assignment_expression "iVar21 = iVar12" identifier = identifier) , (binary_expression "iVar18 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))" ( (comma_expression "iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c))" (assignment_expression "iVar21 = iVar18" identifier = identifier) , (binary_expression "*(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c))" (binary_expression "*(uint *)(iVar18 + 0x20) < uVar39" (pointer_expression "*(uint *)(iVar18 + 0x20)" * (cast_expression "(uint *)(iVar18 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x20)" ( (binary_expression "iVar18 + 0x20" identifier + number_literal) )))) < identifier) || (binary_expression "*(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c))" (binary_expression "*(uint *)(iVar18 + 0x20) - uVar39" (pointer_expression "*(uint *)(iVar18 + 0x20)" * (cast_expression "(uint *)(iVar18 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x20)" ( (binary_expression "iVar18 + 0x20" identifier + number_literal) )))) - identifier) < (call_expression "(uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c))" ( (binary_expression "*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)" (pointer_expression "*(uint *)(iVar18 + 0x1c)" * (cast_expression "(uint *)(iVar18 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x1c)" ( (binary_expression "iVar18 + 0x1c" identifier + number_literal) )))) < (pointer_expression "*(uint *)(iVar12 + 0x1c)" * (cast_expression "(uint *)(iVar12 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x1c)" ( (binary_expression "iVar12 + 0x1c" identifier + number_literal) ))))) )))))) ))) )) (compound_statement "{\n              iVar21 = iVar12;\n            }" { (expression_statement "iVar21 = iVar12;" (assignment_expression "iVar21 = iVar12" identifier = identifier) ;) })) (expression_statement "iVar12 = *(int *)(iVar12 + 0xc);" (assignment_expression "iVar12 = *(int *)(iVar12 + 0xc)" identifier = (pointer_expression "*(int *)(iVar12 + 0xc)" * (cast_expression "(int *)(iVar12 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc)" ( (binary_expression "iVar12 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = iVar21;" (assignment_expression "iVar18 = iVar21" identifier = identifier) ;) }) while (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) ;) (if_statement "if (iVar21 == 0) goto LAB_0001aa69;" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001aa69;" goto statement_identifier ;)) (expression_statement "uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);" (assignment_expression "uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c)" identifier = (binary_expression "*(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c)" (pointer_expression "*(uint *)(iVar21 + 0x2c)" * (cast_expression "(uint *)(iVar21 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x2c)" ( (binary_expression "iVar21 + 0x2c" identifier + number_literal) )))) + (pointer_expression "*(uint *)(iVar21 + 0x1c)" * (cast_expression "(uint *)(iVar21 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x1c)" ( (binary_expression "iVar21 + 0x1c" identifier + number_literal) )))))) ;) (expression_statement "iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));" (assignment_expression "iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c))" identifier = (binary_expression "*(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c))" (binary_expression "*(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20)" (pointer_expression "*(int *)(iVar21 + 0x30)" * (cast_expression "(int *)(iVar21 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x30)" ( (binary_expression "iVar21 + 0x30" identifier + number_literal) )))) + (pointer_expression "*(int *)(iVar21 + 0x20)" * (cast_expression "(int *)(iVar21 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x20)" ( (binary_expression "iVar21 + 0x20" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c))" identifier (argument_list "(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c))" ( (pointer_expression "*(uint *)(iVar21 + 0x2c)" * (cast_expression "(uint *)(iVar21 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x2c)" ( (binary_expression "iVar21 + 0x2c" identifier + number_literal) )))) , (pointer_expression "*(uint *)(iVar21 + 0x1c)" * (cast_expression "(uint *)(iVar21 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x1c)" ( (binary_expression "iVar21 + 0x1c" identifier + number_literal) )))) )))))) ;) (if_statement "if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }" if (parenthesized_expression "(-iVar12 - 1U < (uint)(0xfffff000 < uVar39))" ( (binary_expression "-iVar12 - 1U < (uint)(0xfffff000 < uVar39)" (binary_expression "-iVar12 - 1U" (unary_expression "-iVar12" - identifier) - number_literal) < (call_expression "(uint)(0xfffff000 < uVar39)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffff000 < uVar39)" ( (binary_expression "0xfffff000 < uVar39" number_literal < identifier) )))) )) (compound_statement "{\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }" { (expression_statement "uVar39 = 0xffffffff;" (assignment_expression "uVar39 = 0xffffffff" identifier = number_literal) ;) (expression_statement "iVar12 = -1;" (assignment_expression "iVar12 = -1" identifier = number_literal) ;) }) (else_clause "else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }" else (compound_statement "{\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }" { (expression_statement "iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);" (assignment_expression "iVar12 = iVar12 + (uint)(0xfffff000 < uVar39)" identifier = (binary_expression "iVar12 + (uint)(0xfffff000 < uVar39)" identifier + (call_expression "(uint)(0xfffff000 < uVar39)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffff000 < uVar39)" ( (binary_expression "0xfffff000 < uVar39" number_literal < identifier) ))))) ;) (expression_statement "uVar39 = uVar39 + 0xfff & 0xfffff000;" (assignment_expression "uVar39 = uVar39 + 0xfff & 0xfffff000" identifier = (binary_expression "uVar39 + 0xfff & 0xfffff000" (binary_expression "uVar39 + 0xfff" identifier + number_literal) & number_literal)) ;) }))) }))) (expression_statement "*(uint *)(iVar31 + 0x24) = uVar39;" (assignment_expression "*(uint *)(iVar31 + 0x24) = uVar39" (pointer_expression "*(uint *)(iVar31 + 0x24)" * (cast_expression "(uint *)(iVar31 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x24)" ( (binary_expression "iVar31 + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar31 + 0x28) = iVar12;" (assignment_expression "*(int *)(iVar31 + 0x28) = iVar12" (pointer_expression "*(int *)(iVar31 + 0x28)" * (cast_expression "(int *)(iVar31 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x28)" ( (binary_expression "iVar31 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar31 + 0x1c) = uVar39;" (assignment_expression "*(uint *)(iVar31 + 0x1c) = uVar39" (pointer_expression "*(uint *)(iVar31 + 0x1c)" * (cast_expression "(uint *)(iVar31 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x1c)" ( (binary_expression "iVar31 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar31 + 0x20) = iVar12;" (assignment_expression "*(int *)(iVar31 + 0x20) = iVar12" (pointer_expression "*(int *)(iVar31 + 0x20)" * (cast_expression "(int *)(iVar31 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x20)" ( (binary_expression "iVar31 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;" (assignment_expression "*(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1" (pointer_expression "*(byte *)(iVar31 + 0x18)" * (cast_expression "(byte *)(iVar31 + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x18)" ( (binary_expression "iVar31 + 0x18" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar31 + 0x18) | 1" (pointer_expression "*(byte *)(iVar31 + 0x18)" * (cast_expression "(byte *)(iVar31 + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x18)" ( (binary_expression "iVar31 + 0x18" identifier + number_literal) )))) | number_literal)) ;) })) }) (else_clause "else {\n      iVar12 = *local_6c;\n      uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n      FUN_0002c910(uVar13,iVar12);\n      DAT_00040b4c = 0;\n      iVar31 = 0;\n    }" else (compound_statement "{\n      iVar12 = *local_6c;\n      uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n      FUN_0002c910(uVar13,iVar12);\n      DAT_00040b4c = 0;\n      iVar31 = 0;\n    }" { (expression_statement "iVar12 = *local_6c;" (assignment_expression "iVar12 = *local_6c" identifier = (pointer_expression "*local_6c" * 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_0002c910(uVar13,iVar12);" (call_expression "FUN_0002c910(uVar13,iVar12)" identifier (argument_list "(uVar13,iVar12)" ( identifier , identifier ))) ;) (expression_statement "DAT_00040b4c = 0;" (assignment_expression "DAT_00040b4c = 0" identifier = number_literal) ;) (expression_statement "iVar31 = 0;" (assignment_expression "iVar31 = 0" identifier = number_literal) ;) }))) })) (expression_statement "sVar22 = local_6c[0x1a];" (assignment_expression "sVar22 = local_6c[0x1a]" identifier = (subscript_expression "local_6c[0x1a]" identifier [ number_literal ])) ;) (if_statement "if ((sVar22 == 0) || (DAT_00040b78 == 0 && DAT_00040b70 == 0)) {\n    local_b8 = 0;\n    local_bc = 0;\n    local_b4 = (void *)0x0;\n    local_a8 = (size_t *)0x0;\n    uVar39 = local_bc;\n    uVar17 = local_b8;\n  }\n  else {\n    local_a8 = (size_t *)xmalloc(sVar22 * 4);\n    local_34 = (int *)local_a8;\n    bfd_map_over_sections(local_6c,FUN_00016800,&local_34);\n    qsort(local_a8,sVar22,4,FUN_00016820);\n    sVar23 = sVar22 * 8;\n    local_b4 = (void *)xmalloc(sVar23);\n    memset(local_b4,0,sVar23);\n    if ((DAT_00040b78 == 0) || (sVar22 == 1)) {\n      local_b8 = 0;\n      local_bc = 0;\n    }\n    else {\n      local_b8 = 0;\n      local_bc = 0;\n      local_6c = (size_t *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (size_t *)((int)local_6c + 1);\n        iVar12 = *local_64;\n        uVar39 = local_bc;\n        uVar17 = local_b8;\n        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }\n        local_b8 = uVar17;\n        local_bc = uVar39;\n        local_64 = local_64 + 1;\n      } while ((size_t *)(sVar22 - 1) != local_6c);\n    }\n    uVar39 = local_bc;\n    uVar17 = local_b8;\n    if (DAT_00040b70 != 0) {\n      iVar12 = ((int *)local_a8)[sVar22 - 1];\n      uVar27 = *(uint *)(iVar12 + 0x24);\n      uVar37 = uVar27 + *(uint *)(iVar12 + 0x2c);\n      uVar44 = *(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +\n               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c));\n      if (uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)) {\n        iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           );\n        if (iVar12 == 0) {\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }\n        else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "((sVar22 == 0) || (DAT_00040b78 == 0 && DAT_00040b70 == 0))" ( (binary_expression "(sVar22 == 0) || (DAT_00040b78 == 0 && DAT_00040b70 == 0)" (parenthesized_expression "(sVar22 == 0)" ( (binary_expression "sVar22 == 0" identifier == number_literal) )) || (parenthesized_expression "(DAT_00040b78 == 0 && DAT_00040b70 == 0)" ( (binary_expression "DAT_00040b78 == 0 && DAT_00040b70 == 0" (binary_expression "DAT_00040b78 == 0" identifier == number_literal) && (binary_expression "DAT_00040b70 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    local_b8 = 0;\n    local_bc = 0;\n    local_b4 = (void *)0x0;\n    local_a8 = (size_t *)0x0;\n    uVar39 = local_bc;\n    uVar17 = local_b8;\n  }" { (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) (expression_statement "local_b4 = (void *)0x0;" (assignment_expression "local_b4 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_a8 = (size_t *)0x0;" (assignment_expression "local_a8 = (size_t *)0x0" identifier = (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar39 = local_bc;" (assignment_expression "uVar39 = local_bc" identifier = identifier) ;) (expression_statement "uVar17 = local_b8;" (assignment_expression "uVar17 = local_b8" identifier = identifier) ;) }) (else_clause "else {\n    local_a8 = (size_t *)xmalloc(sVar22 * 4);\n    local_34 = (int *)local_a8;\n    bfd_map_over_sections(local_6c,FUN_00016800,&local_34);\n    qsort(local_a8,sVar22,4,FUN_00016820);\n    sVar23 = sVar22 * 8;\n    local_b4 = (void *)xmalloc(sVar23);\n    memset(local_b4,0,sVar23);\n    if ((DAT_00040b78 == 0) || (sVar22 == 1)) {\n      local_b8 = 0;\n      local_bc = 0;\n    }\n    else {\n      local_b8 = 0;\n      local_bc = 0;\n      local_6c = (size_t *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (size_t *)((int)local_6c + 1);\n        iVar12 = *local_64;\n        uVar39 = local_bc;\n        uVar17 = local_b8;\n        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }\n        local_b8 = uVar17;\n        local_bc = uVar39;\n        local_64 = local_64 + 1;\n      } while ((size_t *)(sVar22 - 1) != local_6c);\n    }\n    uVar39 = local_bc;\n    uVar17 = local_b8;\n    if (DAT_00040b70 != 0) {\n      iVar12 = ((int *)local_a8)[sVar22 - 1];\n      uVar27 = *(uint *)(iVar12 + 0x24);\n      uVar37 = uVar27 + *(uint *)(iVar12 + 0x2c);\n      uVar44 = *(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +\n               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c));\n      if (uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)) {\n        iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           );\n        if (iVar12 == 0) {\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }\n        else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }\n      }\n    }\n  }" else (compound_statement "{\n    local_a8 = (size_t *)xmalloc(sVar22 * 4);\n    local_34 = (int *)local_a8;\n    bfd_map_over_sections(local_6c,FUN_00016800,&local_34);\n    qsort(local_a8,sVar22,4,FUN_00016820);\n    sVar23 = sVar22 * 8;\n    local_b4 = (void *)xmalloc(sVar23);\n    memset(local_b4,0,sVar23);\n    if ((DAT_00040b78 == 0) || (sVar22 == 1)) {\n      local_b8 = 0;\n      local_bc = 0;\n    }\n    else {\n      local_b8 = 0;\n      local_bc = 0;\n      local_6c = (size_t *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (size_t *)((int)local_6c + 1);\n        iVar12 = *local_64;\n        uVar39 = local_bc;\n        uVar17 = local_b8;\n        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }\n        local_b8 = uVar17;\n        local_bc = uVar39;\n        local_64 = local_64 + 1;\n      } while ((size_t *)(sVar22 - 1) != local_6c);\n    }\n    uVar39 = local_bc;\n    uVar17 = local_b8;\n    if (DAT_00040b70 != 0) {\n      iVar12 = ((int *)local_a8)[sVar22 - 1];\n      uVar27 = *(uint *)(iVar12 + 0x24);\n      uVar37 = uVar27 + *(uint *)(iVar12 + 0x2c);\n      uVar44 = *(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +\n               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c));\n      if (uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)) {\n        iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           );\n        if (iVar12 == 0) {\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }\n        else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }\n      }\n    }\n  }" { (expression_statement "local_a8 = (size_t *)xmalloc(sVar22 * 4);" (assignment_expression "local_a8 = (size_t *)xmalloc(sVar22 * 4)" identifier = (cast_expression "(size_t *)xmalloc(sVar22 * 4)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar22 * 4)" identifier (argument_list "(sVar22 * 4)" ( (binary_expression "sVar22 * 4" identifier * number_literal) ))))) ;) (expression_statement "local_34 = (int *)local_a8;" (assignment_expression "local_34 = (int *)local_a8" identifier = (cast_expression "(int *)local_a8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bfd_map_over_sections(local_6c,FUN_00016800,&local_34);" (call_expression "bfd_map_over_sections(local_6c,FUN_00016800,&local_34)" identifier (argument_list "(local_6c,FUN_00016800,&local_34)" ( identifier , identifier , (pointer_expression "&local_34" & identifier) ))) ;) (expression_statement "qsort(local_a8,sVar22,4,FUN_00016820);" (call_expression "qsort(local_a8,sVar22,4,FUN_00016820)" identifier (argument_list "(local_a8,sVar22,4,FUN_00016820)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "sVar23 = sVar22 * 8;" (assignment_expression "sVar23 = sVar22 * 8" identifier = (binary_expression "sVar22 * 8" identifier * number_literal)) ;) (expression_statement "local_b4 = (void *)xmalloc(sVar23);" (assignment_expression "local_b4 = (void *)xmalloc(sVar23)" identifier = (cast_expression "(void *)xmalloc(sVar23)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar23)" identifier (argument_list "(sVar23)" ( identifier ))))) ;) (expression_statement "memset(local_b4,0,sVar23);" (call_expression "memset(local_b4,0,sVar23)" identifier (argument_list "(local_b4,0,sVar23)" ( identifier , number_literal , identifier ))) ;) (if_statement "if ((DAT_00040b78 == 0) || (sVar22 == 1)) {\n      local_b8 = 0;\n      local_bc = 0;\n    }\n    else {\n      local_b8 = 0;\n      local_bc = 0;\n      local_6c = (size_t *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (size_t *)((int)local_6c + 1);\n        iVar12 = *local_64;\n        uVar39 = local_bc;\n        uVar17 = local_b8;\n        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }\n        local_b8 = uVar17;\n        local_bc = uVar39;\n        local_64 = local_64 + 1;\n      } while ((size_t *)(sVar22 - 1) != local_6c);\n    }" if (parenthesized_expression "((DAT_00040b78 == 0) || (sVar22 == 1))" ( (binary_expression "(DAT_00040b78 == 0) || (sVar22 == 1)" (parenthesized_expression "(DAT_00040b78 == 0)" ( (binary_expression "DAT_00040b78 == 0" identifier == number_literal) )) || (parenthesized_expression "(sVar22 == 1)" ( (binary_expression "sVar22 == 1" identifier == number_literal) ))) )) (compound_statement "{\n      local_b8 = 0;\n      local_bc = 0;\n    }" { (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) }) (else_clause "else {\n      local_b8 = 0;\n      local_bc = 0;\n      local_6c = (size_t *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (size_t *)((int)local_6c + 1);\n        iVar12 = *local_64;\n        uVar39 = local_bc;\n        uVar17 = local_b8;\n        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }\n        local_b8 = uVar17;\n        local_bc = uVar39;\n        local_64 = local_64 + 1;\n      } while ((size_t *)(sVar22 - 1) != local_6c);\n    }" else (compound_statement "{\n      local_b8 = 0;\n      local_bc = 0;\n      local_6c = (size_t *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (size_t *)((int)local_6c + 1);\n        iVar12 = *local_64;\n        uVar39 = local_bc;\n        uVar17 = local_b8;\n        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }\n        local_b8 = uVar17;\n        local_bc = uVar39;\n        local_64 = local_64 + 1;\n      } while ((size_t *)(sVar22 - 1) != local_6c);\n    }" { (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) (expression_statement "local_6c = (size_t *)0x0;" (assignment_expression "local_6c = (size_t *)0x0" identifier = (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_64 = (int *)local_a8;" (assignment_expression "local_64 = (int *)local_a8" identifier = (cast_expression "(int *)local_a8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n        local_6c = (size_t *)((int)local_6c + 1);\n        iVar12 = *local_64;\n        uVar39 = local_bc;\n        uVar17 = local_b8;\n        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }\n        local_b8 = uVar17;\n        local_bc = uVar39;\n        local_64 = local_64 + 1;\n      } while ((size_t *)(sVar22 - 1) != local_6c);" do (compound_statement "{\n        local_6c = (size_t *)((int)local_6c + 1);\n        iVar12 = *local_64;\n        uVar39 = local_bc;\n        uVar17 = local_b8;\n        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }\n        local_b8 = uVar17;\n        local_bc = uVar39;\n        local_64 = local_64 + 1;\n      }" { (expression_statement "local_6c = (size_t *)((int)local_6c + 1);" (assignment_expression "local_6c = (size_t *)((int)local_6c + 1)" identifier = (cast_expression "(size_t *)((int)local_6c + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_6c + 1)" ( (binary_expression "(int)local_6c + 1" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar12 = *local_64;" (assignment_expression "iVar12 = *local_64" identifier = (pointer_expression "*local_64" * identifier)) ;) (expression_statement "uVar39 = local_bc;" (assignment_expression "uVar39 = local_bc" identifier = identifier) ;) (expression_statement "uVar17 = local_b8;" (assignment_expression "uVar17 = local_b8" identifier = identifier) ;) (if_statement "if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }" if (parenthesized_expression "((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102)" ( (binary_expression "(*(uint *)(iVar12 + 0x14) & 0x102) == 0x102" (parenthesized_expression "(*(uint *)(iVar12 + 0x14) & 0x102)" ( (binary_expression "*(uint *)(iVar12 + 0x14) & 0x102" (pointer_expression "*(uint *)(iVar12 + 0x14)" * (cast_expression "(uint *)(iVar12 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x14)" ( (binary_expression "iVar12 + 0x14" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }" { (expression_statement "uVar27 = *(uint *)(iVar12 + 0x2c);" (assignment_expression "uVar27 = *(uint *)(iVar12 + 0x2c)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x2c)" * (cast_expression "(uint *)(iVar12 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2c)" ( (binary_expression "iVar12 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "uVar37 = *(uint *)(local_64[1] + 0x28);" (assignment_expression "uVar37 = *(uint *)(local_64[1] + 0x28)" identifier = (pointer_expression "*(uint *)(local_64[1] + 0x28)" * (cast_expression "(uint *)(local_64[1] + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_64[1] + 0x28)" ( (binary_expression "local_64[1] + 0x28" (subscript_expression "local_64[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "uVar44 = *(uint *)(local_64[1] + 0x24);" (assignment_expression "uVar44 = *(uint *)(local_64[1] + 0x24)" identifier = (pointer_expression "*(uint *)(local_64[1] + 0x24)" * (cast_expression "(uint *)(local_64[1] + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_64[1] + 0x24)" ( (binary_expression "local_64[1] + 0x24" (subscript_expression "local_64[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);" (assignment_expression "uVar33 = uVar27 + *(uint *)(iVar12 + 0x24)" identifier = (binary_expression "uVar27 + *(uint *)(iVar12 + 0x24)" identifier + (pointer_expression "*(uint *)(iVar12 + 0x24)" * (cast_expression "(uint *)(iVar12 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) )))))) ;) (expression_statement "uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));" (assignment_expression "uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24))" identifier = (binary_expression "*(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24))" (binary_expression "*(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28)" (pointer_expression "*(int *)(iVar12 + 0x30)" * (cast_expression "(int *)(iVar12 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x30)" ( (binary_expression "iVar12 + 0x30" identifier + number_literal) )))) + (pointer_expression "*(int *)(iVar12 + 0x28)" * (cast_expression "(int *)(iVar12 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x28)" ( (binary_expression "iVar12 + 0x28" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar27,*(uint *)(iVar12 + 0x24))" identifier (argument_list "(uVar27,*(uint *)(iVar12 + 0x24))" ( identifier , (pointer_expression "*(uint *)(iVar12 + 0x24)" * (cast_expression "(uint *)(iVar12 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) )))) )))))) ;) (if_statement "if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }" if (parenthesized_expression "(uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44))" ( (binary_expression "uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)" (binary_expression "uVar40 < uVar37" identifier < identifier) || (binary_expression "uVar40 - uVar37 < (uint)(uVar33 < uVar44)" (binary_expression "uVar40 - uVar37" identifier - identifier) < (call_expression "(uint)(uVar33 < uVar44)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar33 < uVar44)" ( (binary_expression "uVar33 < uVar44" identifier < identifier) ))))) )) (compound_statement "{\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }" { (expression_statement "uVar17 = uVar44 - uVar33;" (assignment_expression "uVar17 = uVar44 - uVar33" identifier = (binary_expression "uVar44 - uVar33" identifier - identifier)) ;) (expression_statement "uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);" (assignment_expression "uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33)" identifier = (binary_expression "(uVar37 - uVar40) - (uint)(uVar44 < uVar33)" (parenthesized_expression "(uVar37 - uVar40)" ( (binary_expression "uVar37 - uVar40" identifier - identifier) )) - (call_expression "(uint)(uVar44 < uVar33)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar44 < uVar33)" ( (binary_expression "uVar44 < uVar33" identifier < identifier) ))))) ;) (expression_statement "iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));" (assignment_expression "iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17))" identifier = (call_expression "bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17))" identifier (argument_list "(param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17))" ( identifier , identifier , (binary_expression "uVar27 + uVar17" identifier + identifier) , (binary_expression "*(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17)" (binary_expression "*(int *)(iVar12 + 0x30) + uVar39" (pointer_expression "*(int *)(iVar12 + 0x30)" * (cast_expression "(int *)(iVar12 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x30)" ( (binary_expression "iVar12 + 0x30" identifier + number_literal) )))) + identifier) + (cast_expression "(uint)CARRY4(uVar27,uVar17)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar27,uVar17)" identifier (argument_list "(uVar27,uVar17)" ( identifier , identifier ))))) )))) ;) (if_statement "if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }" { (expression_statement "uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);" (assignment_expression "uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0)" identifier = (call_expression "dcgettext(0,"Can\'t fill gap after section",5,0)" identifier (argument_list "(0,"Can\'t fill gap after section",5,0)" ( number_literal , (string_literal ""Can\'t fill gap after section"" " string_content escape_sequence string_content ") , number_literal , number_literal )))) ;) (expression_statement "FUN_0002d3a0(0,param_2,*local_64,uVar13);" (call_expression "FUN_0002d3a0(0,param_2,*local_64,uVar13)" identifier (argument_list "(0,param_2,*local_64,uVar13)" ( number_literal , identifier , (pointer_expression "*local_64" * identifier) , identifier ))) ;) (expression_statement "DAT_00040bc8 = 1;" (assignment_expression "DAT_00040bc8 = 1" identifier = number_literal) ;) (break_statement "break;" break ;) })) (expression_statement "*(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;" (assignment_expression "*(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17" (pointer_expression "*(uint *)((int)local_b4 + (int)local_6c * 8 + -8)" * (cast_expression "(uint *)((int)local_b4 + (int)local_6c * 8 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + (int)local_6c * 8 + -8)" ( (binary_expression "(int)local_b4 + (int)local_6c * 8 + -8" (binary_expression "(int)local_b4 + (int)local_6c * 8" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_6c * 8" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;" (assignment_expression "*(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39" (pointer_expression "*(uint *)((int)local_b4 + (int)local_6c * 8 + -4)" * (cast_expression "(uint *)((int)local_b4 + (int)local_6c * 8 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + (int)local_6c * 8 + -4)" ( (binary_expression "(int)local_b4 + (int)local_6c * 8 + -4" (binary_expression "(int)local_b4 + (int)local_6c * 8" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_6c * 8" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) = identifier) ;) (if_statement "if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }" if (parenthesized_expression "(uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39)" ( (binary_expression "uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39" (binary_expression "uVar39 <= local_bc" identifier <= identifier) && (binary_expression "(uint)(local_b8 < uVar17) <= local_bc - uVar39" (call_expression "(uint)(local_b8 < uVar17)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_b8 < uVar17)" ( (binary_expression "local_b8 < uVar17" identifier < identifier) ))) <= (binary_expression "local_bc - uVar39" identifier - identifier))) )) (compound_statement "{\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }" { (expression_statement "uVar39 = local_bc;" (assignment_expression "uVar39 = local_bc" identifier = identifier) ;) (expression_statement "uVar17 = local_b8;" (assignment_expression "uVar17 = local_b8" identifier = identifier) ;) })) })) })) (expression_statement "local_b8 = uVar17;" (assignment_expression "local_b8 = uVar17" identifier = identifier) ;) (expression_statement "local_bc = uVar39;" (assignment_expression "local_bc = uVar39" identifier = identifier) ;) (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((size_t *)(sVar22 - 1) != local_6c)" ( (binary_expression "(size_t *)(sVar22 - 1) != local_6c" (cast_expression "(size_t *)(sVar22 - 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(sVar22 - 1)" ( (binary_expression "sVar22 - 1" identifier - number_literal) ))) != identifier) )) ;) }))) (expression_statement "uVar39 = local_bc;" (assignment_expression "uVar39 = local_bc" identifier = identifier) ;) (expression_statement "uVar17 = local_b8;" (assignment_expression "uVar17 = local_b8" identifier = identifier) ;) (if_statement "if (DAT_00040b70 != 0) {\n      iVar12 = ((int *)local_a8)[sVar22 - 1];\n      uVar27 = *(uint *)(iVar12 + 0x24);\n      uVar37 = uVar27 + *(uint *)(iVar12 + 0x2c);\n      uVar44 = *(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +\n               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c));\n      if (uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)) {\n        iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           );\n        if (iVar12 == 0) {\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }\n        else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }\n      }\n    }" if (parenthesized_expression "(DAT_00040b70 != 0)" ( (binary_expression "DAT_00040b70 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar12 = ((int *)local_a8)[sVar22 - 1];\n      uVar27 = *(uint *)(iVar12 + 0x24);\n      uVar37 = uVar27 + *(uint *)(iVar12 + 0x2c);\n      uVar44 = *(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +\n               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c));\n      if (uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)) {\n        iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           );\n        if (iVar12 == 0) {\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }\n        else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }\n      }\n    }" { (expression_statement "iVar12 = ((int *)local_a8)[sVar22 - 1];" (assignment_expression "iVar12 = ((int *)local_a8)[sVar22 - 1]" identifier = (subscript_expression "((int *)local_a8)[sVar22 - 1]" (parenthesized_expression "((int *)local_a8)" ( (cast_expression "(int *)local_a8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ (binary_expression "sVar22 - 1" identifier - number_literal) ])) ;) (expression_statement "uVar27 = *(uint *)(iVar12 + 0x24);" (assignment_expression "uVar27 = *(uint *)(iVar12 + 0x24)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x24)" * (cast_expression "(uint *)(iVar12 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "uVar37 = uVar27 + *(uint *)(iVar12 + 0x2c);" (assignment_expression "uVar37 = uVar27 + *(uint *)(iVar12 + 0x2c)" identifier = (binary_expression "uVar27 + *(uint *)(iVar12 + 0x2c)" identifier + (pointer_expression "*(uint *)(iVar12 + 0x2c)" * (cast_expression "(uint *)(iVar12 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2c)" ( (binary_expression "iVar12 + 0x2c" identifier + number_literal) )))))) ;) (expression_statement "uVar44 = *(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +\n               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c));" (assignment_expression "uVar44 = *(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +\n               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c))" identifier = (binary_expression "*(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +\n               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c))" (binary_expression "*(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30)" (pointer_expression "*(int *)(iVar12 + 0x28)" * (cast_expression "(int *)(iVar12 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x28)" ( (binary_expression "iVar12 + 0x28" identifier + number_literal) )))) + (pointer_expression "*(int *)(iVar12 + 0x30)" * (cast_expression "(int *)(iVar12 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x30)" ( (binary_expression "iVar12 + 0x30" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar27,*(uint *)(iVar12 + 0x2c))" identifier (argument_list "(uVar27,*(uint *)(iVar12 + 0x2c))" ( identifier , (pointer_expression "*(uint *)(iVar12 + 0x2c)" * (cast_expression "(uint *)(iVar12 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2c)" ( (binary_expression "iVar12 + 0x2c" identifier + number_literal) )))) )))))) ;) (if_statement "if (uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)) {\n        iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           );\n        if (iVar12 == 0) {\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }\n        else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }\n      }" if (parenthesized_expression "(uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68))" ( (binary_expression "uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)" (binary_expression "uVar44 < DAT_00040b6c" identifier < identifier) || (binary_expression "uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)" (binary_expression "uVar44 - DAT_00040b6c" identifier - identifier) < (call_expression "(uint)(uVar37 < DAT_00040b68)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar37 < DAT_00040b68)" ( (binary_expression "uVar37 < DAT_00040b68" identifier < identifier) ))))) )) (compound_statement "{\n        iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           );\n        if (iVar12 == 0) {\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }\n        else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }\n      }" { (expression_statement "iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           );" (assignment_expression "iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           )" identifier = (call_expression "bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           )" identifier (argument_list "(param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           )" ( identifier , identifier , (binary_expression "DAT_00040b68 - uVar27" identifier - identifier) , (binary_expression "(DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)" (parenthesized_expression "(DAT_00040b6c - *(int *)(iVar12 + 0x28))" ( (binary_expression "DAT_00040b6c - *(int *)(iVar12 + 0x28)" identifier - (pointer_expression "*(int *)(iVar12 + 0x28)" * (cast_expression "(int *)(iVar12 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x28)" ( (binary_expression "iVar12 + 0x28" identifier + number_literal) ))))) )) - (call_expression "(uint)(DAT_00040b68 < uVar27)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(DAT_00040b68 < uVar27)" ( (binary_expression "DAT_00040b68 < uVar27" identifier < identifier) )))) )))) ;) (if_statement "if (iVar12 == 0) {\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }\n        else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }" { (expression_statement "uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);" (assignment_expression "uVar13 = dcgettext(0,"can\'t add padding",5,uVar37)" identifier = (call_expression "dcgettext(0,"can\'t add padding",5,uVar37)" identifier (argument_list "(0,"can\'t add padding",5,uVar37)" ( number_literal , (string_literal ""can\'t add padding"" " string_content escape_sequence string_content ") , number_literal , identifier )))) ;) (expression_statement "FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);" (call_expression "FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13)" identifier (argument_list "(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13)" ( number_literal , identifier , (subscript_expression "((int *)local_a8)[sVar22 - 1]" (parenthesized_expression "((int *)local_a8)" ( (cast_expression "(int *)local_a8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ (binary_expression "sVar22 - 1" identifier - number_literal) ]) , identifier ))) ;) (expression_statement "DAT_00040bc8 = 1;" (assignment_expression "DAT_00040bc8 = 1" identifier = number_literal) ;) }) (else_clause "else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }" else (compound_statement "{\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }" { (expression_statement "uVar17 = DAT_00040b68 - uVar37;" (assignment_expression "uVar17 = DAT_00040b68 - uVar37" identifier = (binary_expression "DAT_00040b68 - uVar37" identifier - identifier)) ;) (expression_statement "uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);" (assignment_expression "uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37)" identifier = (binary_expression "(DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37)" (parenthesized_expression "(DAT_00040b6c - uVar44)" ( (binary_expression "DAT_00040b6c - uVar44" identifier - identifier) )) - (call_expression "(uint)(DAT_00040b68 < uVar37)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(DAT_00040b68 < uVar37)" ( (binary_expression "DAT_00040b68 < uVar37" identifier < identifier) ))))) ;) (expression_statement "*(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;" (assignment_expression "*(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17" (pointer_expression "*(uint *)((int)local_b4 + (sVar23 - 8))" * (cast_expression "(uint *)((int)local_b4 + (sVar23 - 8))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + (sVar23 - 8))" ( (binary_expression "(int)local_b4 + (sVar23 - 8)" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(sVar23 - 8)" ( (binary_expression "sVar23 - 8" identifier - number_literal) ))) )))) = identifier) ;) (expression_statement "*(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;" (assignment_expression "*(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39" (pointer_expression "*(uint *)((int)local_b4 + (sVar23 - 4))" * (cast_expression "(uint *)((int)local_b4 + (sVar23 - 4))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + (sVar23 - 4))" ( (binary_expression "(int)local_b4 + (sVar23 - 4)" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(sVar23 - 4)" ( (binary_expression "sVar23 - 4" identifier - number_literal) ))) )))) = identifier) ;) (if_statement "if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }" if (parenthesized_expression "(uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39)" ( (binary_expression "uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39" (binary_expression "uVar39 <= local_bc" identifier <= identifier) && (binary_expression "(uint)(local_b8 < uVar17) <= local_bc - uVar39" (call_expression "(uint)(local_b8 < uVar17)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_b8 < uVar17)" ( (binary_expression "local_b8 < uVar17" identifier < identifier) ))) <= (binary_expression "local_bc - uVar39" identifier - identifier))) )) (compound_statement "{\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }" { (expression_statement "uVar39 = local_bc;" (assignment_expression "uVar39 = local_bc" identifier = identifier) ;) (expression_statement "uVar17 = local_b8;" (assignment_expression "uVar17 = local_b8" identifier = identifier) ;) })) }))) })) })) }))) (expression_statement "local_b8 = uVar17;" (assignment_expression "local_b8 = uVar17" identifier = identifier) ;) (expression_statement "local_bc = uVar39;" (assignment_expression "local_bc = uVar39" identifier = identifier) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (if_statement "if (DAT_00040b48 != 0) {\n    iVar12 = FUN_0001c9c0(param_1,DAT_00040bdc,local_8c,0);\n  }" if (parenthesized_expression "(DAT_00040b48 != 0)" ( (binary_expression "DAT_00040b48 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar12 = FUN_0001c9c0(param_1,DAT_00040bdc,local_8c,0);\n  }" { (expression_statement "iVar12 = FUN_0001c9c0(param_1,DAT_00040bdc,local_8c,0);" (assignment_expression "iVar12 = FUN_0001c9c0(param_1,DAT_00040bdc,local_8c,0)" identifier = (call_expression "FUN_0001c9c0(param_1,DAT_00040bdc,local_8c,0)" identifier (argument_list "(param_1,DAT_00040bdc,local_8c,0)" ( identifier , identifier , identifier , number_literal )))) ;) })) (if_statement "if (DAT_00040bb0 - 2U < 6) {\nLAB_0001962a:\n    if (DAT_00040bb0 != 7) goto LAB_0001962f;\n  }\n  else {\n    if (DAT_00040b30 == 0 && DAT_00040bac == 0) {\n      iVar18 = htab_elements(DAT_00040b2c);\n      if ((((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&\n         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))))\n      goto LAB_00019e4d;\n      goto LAB_0001962a;\n    }\nLAB_0001962f:\n    bfd_set_error(0);\n    bfd_map_over_sections(param_1,FUN_000187a0,DAT_00040bdc);\n    iVar18 = bfd_get_error();\n    if (iVar18 != 0) {\n      DAT_00040bc8 = 1;\n      return 0;\n    }\n  }" if (parenthesized_expression "(DAT_00040bb0 - 2U < 6)" ( (binary_expression "DAT_00040bb0 - 2U < 6" (binary_expression "DAT_00040bb0 - 2U" identifier - number_literal) < number_literal) )) (compound_statement "{\nLAB_0001962a:\n    if (DAT_00040bb0 != 7) goto LAB_0001962f;\n  }" { (labeled_statement "LAB_0001962a:\n    if (DAT_00040bb0 != 7) goto LAB_0001962f;" statement_identifier : (if_statement "if (DAT_00040bb0 != 7) goto LAB_0001962f;" if (parenthesized_expression "(DAT_00040bb0 != 7)" ( (binary_expression "DAT_00040bb0 != 7" identifier != number_literal) )) (goto_statement "goto LAB_0001962f;" goto statement_identifier ;))) }) (else_clause "else {\n    if (DAT_00040b30 == 0 && DAT_00040bac == 0) {\n      iVar18 = htab_elements(DAT_00040b2c);\n      if ((((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&\n         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))))\n      goto LAB_00019e4d;\n      goto LAB_0001962a;\n    }\nLAB_0001962f:\n    bfd_set_error(0);\n    bfd_map_over_sections(param_1,FUN_000187a0,DAT_00040bdc);\n    iVar18 = bfd_get_error();\n    if (iVar18 != 0) {\n      DAT_00040bc8 = 1;\n      return 0;\n    }\n  }" else (compound_statement "{\n    if (DAT_00040b30 == 0 && DAT_00040bac == 0) {\n      iVar18 = htab_elements(DAT_00040b2c);\n      if ((((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&\n         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))))\n      goto LAB_00019e4d;\n      goto LAB_0001962a;\n    }\nLAB_0001962f:\n    bfd_set_error(0);\n    bfd_map_over_sections(param_1,FUN_000187a0,DAT_00040bdc);\n    iVar18 = bfd_get_error();\n    if (iVar18 != 0) {\n      DAT_00040bc8 = 1;\n      return 0;\n    }\n  }" { (if_statement "if (DAT_00040b30 == 0 && DAT_00040bac == 0) {\n      iVar18 = htab_elements(DAT_00040b2c);\n      if ((((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&\n         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))))\n      goto LAB_00019e4d;\n      goto LAB_0001962a;\n    }" if (parenthesized_expression "(DAT_00040b30 == 0 && DAT_00040bac == 0)" ( (binary_expression "DAT_00040b30 == 0 && DAT_00040bac == 0" (binary_expression "DAT_00040b30 == 0" identifier == number_literal) && (binary_expression "DAT_00040bac == 0" identifier == number_literal)) )) (compound_statement "{\n      iVar18 = htab_elements(DAT_00040b2c);\n      if ((((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&\n         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))))\n      goto LAB_00019e4d;\n      goto LAB_0001962a;\n    }" { (expression_statement "iVar18 = htab_elements(DAT_00040b2c);" (assignment_expression "iVar18 = htab_elements(DAT_00040b2c)" identifier = (call_expression "htab_elements(DAT_00040b2c)" identifier (argument_list "(DAT_00040b2c)" ( identifier )))) ;) (if_statement "if ((((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&\n         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))))\n      goto LAB_00019e4d;" if (parenthesized_expression "((((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&\n         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))))" ( (binary_expression "(((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&\n         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0)))" (parenthesized_expression "(((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0))" ( (binary_expression "((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)" (parenthesized_expression "((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0))))" ( (binary_expression "(((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))" (parenthesized_expression "(((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0))" ( (binary_expression "((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)" (parenthesized_expression "((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0))" ( (binary_expression "(iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)" (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)" ( (comma_expression "iVar18 = htab_elements(DAT_00040b24), iVar18 == 0" (assignment_expression "iVar18 = htab_elements(DAT_00040b24)" identifier = (call_expression "htab_elements(DAT_00040b24)" identifier (argument_list "(DAT_00040b24)" ( identifier )))) , (binary_expression "iVar18 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)" ( (comma_expression "iVar18 = htab_elements(DAT_00040b20), iVar18 == 0" (assignment_expression "iVar18 = htab_elements(DAT_00040b20)" identifier = (call_expression "htab_elements(DAT_00040b20)" identifier (argument_list "(DAT_00040b20)" ( identifier )))) , (binary_expression "iVar18 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))" ( (parenthesized_expression "(iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0))" ( (comma_expression "iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)" (assignment_expression "iVar18 = htab_elements(DAT_00040b1c)" identifier = (call_expression "htab_elements(DAT_00040b1c)" identifier (argument_list "(DAT_00040b1c)" ( identifier )))) , (binary_expression "iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)" (binary_expression "iVar18 == 0" identifier == number_literal) && (parenthesized_expression "(iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)" ( (comma_expression "iVar18 = htab_elements(DAT_00040b18), iVar18 == 0" (assignment_expression "iVar18 = htab_elements(DAT_00040b18)" identifier = (call_expression "htab_elements(DAT_00040b18)" identifier (argument_list "(DAT_00040b18)" ( identifier )))) , (binary_expression "iVar18 == 0" identifier == number_literal)) )))) )) ))) )) && (parenthesized_expression "(iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)" ( (comma_expression "iVar18 = htab_elements(DAT_00040b14), iVar18 == 0" (assignment_expression "iVar18 = htab_elements(DAT_00040b14)" identifier = (call_expression "htab_elements(DAT_00040b14)" identifier (argument_list "(DAT_00040b14)" ( identifier )))) , (binary_expression "iVar18 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0)))" ( (parenthesized_expression "((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))" ( (binary_expression "(iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0)" (parenthesized_expression "(iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0))" ( (comma_expression "iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)" (assignment_expression "iVar18 = htab_elements(DAT_00040b10)" identifier = (call_expression "htab_elements(DAT_00040b10)" identifier (argument_list "(DAT_00040b10)" ( identifier )))) , (binary_expression "DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)" (binary_expression "DAT_00040af8 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(DAT_00040be0 == (undefined4 *)0x0)" ( (binary_expression "DAT_00040be0 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )))) )) && (parenthesized_expression "(((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0)" ( (binary_expression "((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0" (parenthesized_expression "((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0)" ( (binary_expression "(((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0" (parenthesized_expression "(((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0)" ( (binary_expression "((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0" (parenthesized_expression "((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0)" ( (binary_expression "(((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0" (parenthesized_expression "(((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)" ( (binary_expression "((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0" (parenthesized_expression "((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0)" ( (binary_expression "(DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0" (parenthesized_expression "(DAT_00040ba4 == 0 && DAT_00040ba0 == 0)" ( (binary_expression "DAT_00040ba4 == 0 && DAT_00040ba0 == 0" (binary_expression "DAT_00040ba4 == 0" identifier == number_literal) && (binary_expression "DAT_00040ba0 == 0" identifier == number_literal)) )) && (binary_expression "DAT_00040b48 == 0" identifier == number_literal)) )) && (binary_expression "DAT_00040b3c == 0" identifier == number_literal)) )) && (binary_expression "DAT_00040b38 == 0" identifier == number_literal)) )) && (binary_expression "DAT_00040b00 == 0" identifier == number_literal)) )) && (binary_expression "DAT_00040b04 == 0" identifier == number_literal)) )) && (binary_expression "iVar18 == 0" identifier == number_literal)) ))) )) ))) )) (goto_statement "goto LAB_00019e4d;" goto statement_identifier ;)) (goto_statement "goto LAB_0001962a;" goto statement_identifier ;) })) (labeled_statement "LAB_0001962f:\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_000187a0,DAT_00040bdc);" (call_expression "bfd_map_over_sections(param_1,FUN_000187a0,DAT_00040bdc)" identifier (argument_list "(param_1,FUN_000187a0,DAT_00040bdc)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar18 = bfd_get_error();" (assignment_expression "iVar18 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar18 != 0) {\n      DAT_00040bc8 = 1;\n      return 0;\n    }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n      DAT_00040bc8 = 1;\n      return 0;\n    }" { (expression_statement "DAT_00040bc8 = 1;" (assignment_expression "DAT_00040bc8 = 1" identifier = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) }))) (expression_statement "piVar19 = (int *)xmalloc((DAT_00040b04 + local_8c) * 4 + 4);" (assignment_expression "piVar19 = (int *)xmalloc((DAT_00040b04 + local_8c) * 4 + 4)" identifier = (cast_expression "(int *)xmalloc((DAT_00040b04 + local_8c) * 4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc((DAT_00040b04 + local_8c) * 4 + 4)" identifier (argument_list "((DAT_00040b04 + local_8c) * 4 + 4)" ( (binary_expression "(DAT_00040b04 + local_8c) * 4 + 4" (binary_expression "(DAT_00040b04 + local_8c) * 4" (parenthesized_expression "(DAT_00040b04 + local_8c)" ( (binary_expression "DAT_00040b04 + local_8c" identifier + identifier) )) * number_literal) + number_literal) ))))) ;) (expression_statement "local_84 = DAT_00040bdc;" (assignment_expression "local_84 = DAT_00040bdc" identifier = identifier) ;) (expression_statement "uVar39 = *(uint *)((int)param_1 + 0x28);" (assignment_expression "uVar39 = *(uint *)((int)param_1 + 0x28)" identifier = (pointer_expression "*(uint *)((int)param_1 + 0x28)" * (cast_expression "(uint *)((int)param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x28)" ( (binary_expression "(int)param_1 + 0x28" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "DAT_00040bd8 = piVar19;" (assignment_expression "DAT_00040bd8 = piVar19" identifier = identifier) ;) (if_statement "if (local_8c != 0) {\n    piVar1 = DAT_00040bdc + local_8c;\n    local_8c = 0;\n    puVar20 = PTR__bfd_std_section_0003ffc8 + 0xc0;\n    do {\n      iVar18 = DAT_00040b04;\n      piVar4 = (int *)*local_84;\n      uVar17 = piVar4[4];\n      piVar24 = (int *)piVar4[1];\n      puVar5 = (undefined *)piVar4[5];\n      if (((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) &&\n         (pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0)) {\n        local_6c = (size_t *)0x0;\n        piVar34 = DAT_00040b08;\n        while (iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0) {\n          local_6c = (size_t *)((int)local_6c + 1);\n          piVar34 = (int *)*piVar34;\n          if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar25);\n        piVar34[5] = (int)"";\n        piVar34 = piVar19 + local_8c;\n        local_8c = local_8c + 1;\n        iVar18 = FUN_00017920();\n        *piVar34 = iVar18;\n      }\nLAB_000197a8:\n      iVar18 = htab_elements(DAT_00040b10);\n      piVar34 = piVar24;\n      if ((iVar18 != 0) || (DAT_00040be0 != (undefined4 *)0x0)) {\n        local_30 = 0;\n        local_34 = piVar24;\n        iVar18 = htab_find(DAT_00040b10,&local_34);\n        if (((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)) {\n          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }\n        }\n        piVar4[1] = (int)piVar34;\n      }\n      pcVar25 = DAT_00040af8;\n      cVar2 = *(char *)(*(int *)((int)param_1 + 4) + 0x18);\n      if ((char)*piVar34 == cVar2) {\n        if (DAT_00040b3c == 0) {\n          if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }\nLAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }\n      }\n      else {\n        if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))\n        goto LAB_0001982b;\nLAB_00019ab1:\n        sVar22 = strlen(pcVar25);\n        sVar23 = strlen((char *)piVar34);\n        piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n        local_6c = (size_t *)((int)piVar24 + 1);\n        *(char *)piVar24 = *(char *)(param_2[1] + 0x18);\nLAB_00019858:\n        pcVar25 = DAT_00040af8;\n        if (DAT_00040af8 != (char *)0x0) {\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }\n        strcpy((char *)local_6c,(char *)piVar34);\n        piVar4[1] = (int)piVar24;\n        piVar34 = piVar24;\n      }\n      if (DAT_00040bb0 == 7) goto LAB_00019928;\n      if ((uVar17 & 0x20) == 0) {\n        if (((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)) {\n          if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;\n        }\n        else {\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;\n      }\n      else {\n        iVar18 = FUN_000179c0();\n        if (iVar18 != 0) {\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }\nLAB_0001994f:\n        iVar18 = FUN_00017a30();\n        if (iVar18 == 0) {\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }\n      }\n      local_84 = local_84 + 1;\n    } while (piVar1 != local_84);\n  }" if (parenthesized_expression "(local_8c != 0)" ( (binary_expression "local_8c != 0" identifier != number_literal) )) (compound_statement "{\n    piVar1 = DAT_00040bdc + local_8c;\n    local_8c = 0;\n    puVar20 = PTR__bfd_std_section_0003ffc8 + 0xc0;\n    do {\n      iVar18 = DAT_00040b04;\n      piVar4 = (int *)*local_84;\n      uVar17 = piVar4[4];\n      piVar24 = (int *)piVar4[1];\n      puVar5 = (undefined *)piVar4[5];\n      if (((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) &&\n         (pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0)) {\n        local_6c = (size_t *)0x0;\n        piVar34 = DAT_00040b08;\n        while (iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0) {\n          local_6c = (size_t *)((int)local_6c + 1);\n          piVar34 = (int *)*piVar34;\n          if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar25);\n        piVar34[5] = (int)"";\n        piVar34 = piVar19 + local_8c;\n        local_8c = local_8c + 1;\n        iVar18 = FUN_00017920();\n        *piVar34 = iVar18;\n      }\nLAB_000197a8:\n      iVar18 = htab_elements(DAT_00040b10);\n      piVar34 = piVar24;\n      if ((iVar18 != 0) || (DAT_00040be0 != (undefined4 *)0x0)) {\n        local_30 = 0;\n        local_34 = piVar24;\n        iVar18 = htab_find(DAT_00040b10,&local_34);\n        if (((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)) {\n          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }\n        }\n        piVar4[1] = (int)piVar34;\n      }\n      pcVar25 = DAT_00040af8;\n      cVar2 = *(char *)(*(int *)((int)param_1 + 4) + 0x18);\n      if ((char)*piVar34 == cVar2) {\n        if (DAT_00040b3c == 0) {\n          if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }\nLAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }\n      }\n      else {\n        if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))\n        goto LAB_0001982b;\nLAB_00019ab1:\n        sVar22 = strlen(pcVar25);\n        sVar23 = strlen((char *)piVar34);\n        piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n        local_6c = (size_t *)((int)piVar24 + 1);\n        *(char *)piVar24 = *(char *)(param_2[1] + 0x18);\nLAB_00019858:\n        pcVar25 = DAT_00040af8;\n        if (DAT_00040af8 != (char *)0x0) {\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }\n        strcpy((char *)local_6c,(char *)piVar34);\n        piVar4[1] = (int)piVar24;\n        piVar34 = piVar24;\n      }\n      if (DAT_00040bb0 == 7) goto LAB_00019928;\n      if ((uVar17 & 0x20) == 0) {\n        if (((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)) {\n          if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;\n        }\n        else {\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;\n      }\n      else {\n        iVar18 = FUN_000179c0();\n        if (iVar18 != 0) {\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }\nLAB_0001994f:\n        iVar18 = FUN_00017a30();\n        if (iVar18 == 0) {\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }\n      }\n      local_84 = local_84 + 1;\n    } while (piVar1 != local_84);\n  }" { (expression_statement "piVar1 = DAT_00040bdc + local_8c;" (assignment_expression "piVar1 = DAT_00040bdc + local_8c" identifier = (binary_expression "DAT_00040bdc + local_8c" identifier + identifier)) ;) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" identifier = number_literal) ;) (expression_statement "puVar20 = PTR__bfd_std_section_0003ffc8 + 0xc0;" (assignment_expression "puVar20 = PTR__bfd_std_section_0003ffc8 + 0xc0" identifier = (binary_expression "PTR__bfd_std_section_0003ffc8 + 0xc0" identifier + number_literal)) ;) (do_statement "do {\n      iVar18 = DAT_00040b04;\n      piVar4 = (int *)*local_84;\n      uVar17 = piVar4[4];\n      piVar24 = (int *)piVar4[1];\n      puVar5 = (undefined *)piVar4[5];\n      if (((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) &&\n         (pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0)) {\n        local_6c = (size_t *)0x0;\n        piVar34 = DAT_00040b08;\n        while (iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0) {\n          local_6c = (size_t *)((int)local_6c + 1);\n          piVar34 = (int *)*piVar34;\n          if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar25);\n        piVar34[5] = (int)"";\n        piVar34 = piVar19 + local_8c;\n        local_8c = local_8c + 1;\n        iVar18 = FUN_00017920();\n        *piVar34 = iVar18;\n      }\nLAB_000197a8:\n      iVar18 = htab_elements(DAT_00040b10);\n      piVar34 = piVar24;\n      if ((iVar18 != 0) || (DAT_00040be0 != (undefined4 *)0x0)) {\n        local_30 = 0;\n        local_34 = piVar24;\n        iVar18 = htab_find(DAT_00040b10,&local_34);\n        if (((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)) {\n          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }\n        }\n        piVar4[1] = (int)piVar34;\n      }\n      pcVar25 = DAT_00040af8;\n      cVar2 = *(char *)(*(int *)((int)param_1 + 4) + 0x18);\n      if ((char)*piVar34 == cVar2) {\n        if (DAT_00040b3c == 0) {\n          if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }\nLAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }\n      }\n      else {\n        if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))\n        goto LAB_0001982b;\nLAB_00019ab1:\n        sVar22 = strlen(pcVar25);\n        sVar23 = strlen((char *)piVar34);\n        piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n        local_6c = (size_t *)((int)piVar24 + 1);\n        *(char *)piVar24 = *(char *)(param_2[1] + 0x18);\nLAB_00019858:\n        pcVar25 = DAT_00040af8;\n        if (DAT_00040af8 != (char *)0x0) {\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }\n        strcpy((char *)local_6c,(char *)piVar34);\n        piVar4[1] = (int)piVar24;\n        piVar34 = piVar24;\n      }\n      if (DAT_00040bb0 == 7) goto LAB_00019928;\n      if ((uVar17 & 0x20) == 0) {\n        if (((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)) {\n          if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;\n        }\n        else {\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;\n      }\n      else {\n        iVar18 = FUN_000179c0();\n        if (iVar18 != 0) {\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }\nLAB_0001994f:\n        iVar18 = FUN_00017a30();\n        if (iVar18 == 0) {\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }\n      }\n      local_84 = local_84 + 1;\n    } while (piVar1 != local_84);" do (compound_statement "{\n      iVar18 = DAT_00040b04;\n      piVar4 = (int *)*local_84;\n      uVar17 = piVar4[4];\n      piVar24 = (int *)piVar4[1];\n      puVar5 = (undefined *)piVar4[5];\n      if (((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) &&\n         (pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0)) {\n        local_6c = (size_t *)0x0;\n        piVar34 = DAT_00040b08;\n        while (iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0) {\n          local_6c = (size_t *)((int)local_6c + 1);\n          piVar34 = (int *)*piVar34;\n          if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar25);\n        piVar34[5] = (int)"";\n        piVar34 = piVar19 + local_8c;\n        local_8c = local_8c + 1;\n        iVar18 = FUN_00017920();\n        *piVar34 = iVar18;\n      }\nLAB_000197a8:\n      iVar18 = htab_elements(DAT_00040b10);\n      piVar34 = piVar24;\n      if ((iVar18 != 0) || (DAT_00040be0 != (undefined4 *)0x0)) {\n        local_30 = 0;\n        local_34 = piVar24;\n        iVar18 = htab_find(DAT_00040b10,&local_34);\n        if (((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)) {\n          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }\n        }\n        piVar4[1] = (int)piVar34;\n      }\n      pcVar25 = DAT_00040af8;\n      cVar2 = *(char *)(*(int *)((int)param_1 + 4) + 0x18);\n      if ((char)*piVar34 == cVar2) {\n        if (DAT_00040b3c == 0) {\n          if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }\nLAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }\n      }\n      else {\n        if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))\n        goto LAB_0001982b;\nLAB_00019ab1:\n        sVar22 = strlen(pcVar25);\n        sVar23 = strlen((char *)piVar34);\n        piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n        local_6c = (size_t *)((int)piVar24 + 1);\n        *(char *)piVar24 = *(char *)(param_2[1] + 0x18);\nLAB_00019858:\n        pcVar25 = DAT_00040af8;\n        if (DAT_00040af8 != (char *)0x0) {\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }\n        strcpy((char *)local_6c,(char *)piVar34);\n        piVar4[1] = (int)piVar24;\n        piVar34 = piVar24;\n      }\n      if (DAT_00040bb0 == 7) goto LAB_00019928;\n      if ((uVar17 & 0x20) == 0) {\n        if (((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)) {\n          if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;\n        }\n        else {\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;\n      }\n      else {\n        iVar18 = FUN_000179c0();\n        if (iVar18 != 0) {\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }\nLAB_0001994f:\n        iVar18 = FUN_00017a30();\n        if (iVar18 == 0) {\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }\n      }\n      local_84 = local_84 + 1;\n    }" { (expression_statement "iVar18 = DAT_00040b04;" (assignment_expression "iVar18 = DAT_00040b04" identifier = identifier) ;) (expression_statement "piVar4 = (int *)*local_84;" (assignment_expression "piVar4 = (int *)*local_84" identifier = (cast_expression "(int *)*local_84" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_84" * identifier))) ;) (expression_statement "uVar17 = piVar4[4];" (assignment_expression "uVar17 = piVar4[4]" identifier = (subscript_expression "piVar4[4]" identifier [ number_literal ])) ;) (expression_statement "piVar24 = (int *)piVar4[1];" (assignment_expression "piVar24 = (int *)piVar4[1]" identifier = (cast_expression "(int *)piVar4[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar4[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar5 = (undefined *)piVar4[5];" (assignment_expression "puVar5 = (undefined *)piVar4[5]" identifier = (cast_expression "(undefined *)piVar4[5]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar4[5]" identifier [ number_literal ]))) ;) (if_statement "if (((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) &&\n         (pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0)) {\n        local_6c = (size_t *)0x0;\n        piVar34 = DAT_00040b08;\n        while (iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0) {\n          local_6c = (size_t *)((int)local_6c + 1);\n          piVar34 = (int *)*piVar34;\n          if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar25);\n        piVar34[5] = (int)"";\n        piVar34 = piVar19 + local_8c;\n        local_8c = local_8c + 1;\n        iVar18 = FUN_00017920();\n        *piVar34 = iVar18;\n      }" if (parenthesized_expression "(((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) &&\n         (pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0))" ( (binary_expression "((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) &&\n         (pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0)" (parenthesized_expression "((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04))" ( (binary_expression "(DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)" (parenthesized_expression "(DAT_00040b08 != (int *)0x0)" ( (binary_expression "DAT_00040b08 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(0 < DAT_00040b04)" ( (binary_expression "0 < DAT_00040b04" number_literal < identifier) ))) )) && (parenthesized_expression "(pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0)" ( (comma_expression "pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0" (assignment_expression "pcVar25 = (char *)DAT_00040b08[5]" identifier = (cast_expression "(char *)DAT_00040b08[5]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_00040b08[5]" identifier [ number_literal ]))) , (binary_expression "pcVar25 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        local_6c = (size_t *)0x0;\n        piVar34 = DAT_00040b08;\n        while (iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0) {\n          local_6c = (size_t *)((int)local_6c + 1);\n          piVar34 = (int *)*piVar34;\n          if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar25);\n        piVar34[5] = (int)"";\n        piVar34 = piVar19 + local_8c;\n        local_8c = local_8c + 1;\n        iVar18 = FUN_00017920();\n        *piVar34 = iVar18;\n      }" { (expression_statement "local_6c = (size_t *)0x0;" (assignment_expression "local_6c = (size_t *)0x0" identifier = (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar34 = DAT_00040b08;" (assignment_expression "piVar34 = DAT_00040b08" identifier = identifier) ;) (while_statement "while (iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0) {\n          local_6c = (size_t *)((int)local_6c + 1);\n          piVar34 = (int *)*piVar34;\n          if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;\n        }" while (parenthesized_expression "(iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0)" ( (comma_expression "iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0" (assignment_expression "iVar21 = strcmp(pcVar25,(char *)piVar24)" identifier = (call_expression "strcmp(pcVar25,(char *)piVar24)" identifier (argument_list "(pcVar25,(char *)piVar24)" ( identifier , (cast_expression "(char *)piVar24" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "iVar21 != 0" identifier != number_literal)) )) (compound_statement "{\n          local_6c = (size_t *)((int)local_6c + 1);\n          piVar34 = (int *)*piVar34;\n          if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;\n        }" { (expression_statement "local_6c = (size_t *)((int)local_6c + 1);" (assignment_expression "local_6c = (size_t *)((int)local_6c + 1)" identifier = (cast_expression "(size_t *)((int)local_6c + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_6c + 1)" ( (binary_expression "(int)local_6c + 1" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar34 = (int *)*piVar34;" (assignment_expression "piVar34 = (int *)*piVar34" identifier = (cast_expression "(int *)*piVar34" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar34" * identifier))) ;) (if_statement "if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;" if (parenthesized_expression "((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0))" ( (binary_expression "(local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)" (parenthesized_expression "(local_6c == (size_t *)iVar18)" ( (binary_expression "local_6c == (size_t *)iVar18" identifier == (cast_expression "(size_t *)iVar18" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) )) || (parenthesized_expression "(pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)" ( (comma_expression "pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0" (assignment_expression "pcVar25 = (char *)piVar34[5]" identifier = (cast_expression "(char *)piVar34[5]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar34[5]" identifier [ number_literal ]))) , (binary_expression "pcVar25 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_000197a8;" goto statement_identifier ;)) })) (expression_statement "free(pcVar25);" (call_expression "free(pcVar25)" identifier (argument_list "(pcVar25)" ( identifier ))) ;) (expression_statement "piVar34[5] = (int)"";" (assignment_expression "piVar34[5] = (int)""" (subscript_expression "piVar34[5]" identifier [ number_literal ]) = (cast_expression "(int)""" ( (type_descriptor "int" primitive_type) ) (string_literal """" " "))) ;) (expression_statement "piVar34 = piVar19 + local_8c;" (assignment_expression "piVar34 = piVar19 + local_8c" identifier = (binary_expression "piVar19 + local_8c" identifier + identifier)) ;) (expression_statement "local_8c = local_8c + 1;" (assignment_expression "local_8c = local_8c + 1" identifier = (binary_expression "local_8c + 1" identifier + number_literal)) ;) (expression_statement "iVar18 = FUN_00017920();" (assignment_expression "iVar18 = FUN_00017920()" identifier = (call_expression "FUN_00017920()" identifier (argument_list "()" ( )))) ;) (expression_statement "*piVar34 = iVar18;" (assignment_expression "*piVar34 = iVar18" (pointer_expression "*piVar34" * identifier) = identifier) ;) })) (labeled_statement "LAB_000197a8:\n      iVar18 = htab_elements(DAT_00040b10);" statement_identifier : (expression_statement "iVar18 = htab_elements(DAT_00040b10);" (assignment_expression "iVar18 = htab_elements(DAT_00040b10)" identifier = (call_expression "htab_elements(DAT_00040b10)" identifier (argument_list "(DAT_00040b10)" ( identifier )))) ;)) (expression_statement "piVar34 = piVar24;" (assignment_expression "piVar34 = piVar24" identifier = identifier) ;) (if_statement "if ((iVar18 != 0) || (DAT_00040be0 != (undefined4 *)0x0)) {\n        local_30 = 0;\n        local_34 = piVar24;\n        iVar18 = htab_find(DAT_00040b10,&local_34);\n        if (((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)) {\n          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }\n        }\n        piVar4[1] = (int)piVar34;\n      }" if (parenthesized_expression "((iVar18 != 0) || (DAT_00040be0 != (undefined4 *)0x0))" ( (binary_expression "(iVar18 != 0) || (DAT_00040be0 != (undefined4 *)0x0)" (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) || (parenthesized_expression "(DAT_00040be0 != (undefined4 *)0x0)" ( (binary_expression "DAT_00040be0 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n        local_30 = 0;\n        local_34 = piVar24;\n        iVar18 = htab_find(DAT_00040b10,&local_34);\n        if (((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)) {\n          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }\n        }\n        piVar4[1] = (int)piVar34;\n      }" { (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "local_34 = piVar24;" (assignment_expression "local_34 = piVar24" identifier = identifier) ;) (expression_statement "iVar18 = htab_find(DAT_00040b10,&local_34);" (assignment_expression "iVar18 = htab_find(DAT_00040b10,&local_34)" identifier = (call_expression "htab_find(DAT_00040b10,&local_34)" identifier (argument_list "(DAT_00040b10,&local_34)" ( identifier , (pointer_expression "&local_34" & identifier) )))) ;) (if_statement "if (((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)) {\n          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }\n        }" if (parenthesized_expression "(((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0))" ( (binary_expression "((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)" (parenthesized_expression "((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34))" ( (binary_expression "(iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)" (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) || (parenthesized_expression "(piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)" ( (comma_expression "piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34" (assignment_expression "piVar34 = *(int **)(iVar18 + 4)" identifier = (pointer_expression "*(int **)(iVar18 + 4)" * (cast_expression "(int **)(iVar18 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + 4)" ( (binary_expression "iVar18 + 4" identifier + number_literal) ))))) , (binary_expression "piVar24 == piVar34" identifier == identifier)) ))) )) && (parenthesized_expression "(puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)" ( (comma_expression "puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0" (assignment_expression "puVar35 = DAT_00040be0" identifier = identifier) , (binary_expression "(uVar17 & 0x100) != 0" (parenthesized_expression "(uVar17 & 0x100)" ( (binary_expression "uVar17 & 0x100" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }\n        }" { (for_statement "for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }" for ( ; (comma_expression "piVar34 = piVar24, puVar35 != (undefined4 *)0x0" (assignment_expression "piVar34 = piVar24" identifier = identifier) , (binary_expression "puVar35 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "puVar35 = (undefined4 *)puVar35[3]" identifier = (cast_expression "(undefined4 *)puVar35[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[3]" identifier [ number_literal ]))) ) (compound_statement "{\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }" { (expression_statement "iVar18 = strcmp((char *)*puVar35,(char *)piVar24);" (assignment_expression "iVar18 = strcmp((char *)*puVar35,(char *)piVar24)" identifier = (call_expression "strcmp((char *)*puVar35,(char *)piVar24)" identifier (argument_list "((char *)*puVar35,(char *)piVar24)" ( (cast_expression "(char *)*puVar35" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar35" * identifier)) , (cast_expression "(char *)piVar24" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n              piVar34 = (int *)puVar35[1];\n              break;\n            }" { (expression_statement "piVar34 = (int *)puVar35[1];" (assignment_expression "piVar34 = (int *)puVar35[1]" identifier = (cast_expression "(int *)puVar35[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[1]" identifier [ number_literal ]))) ;) (break_statement "break;" break ;) })) })) })) (expression_statement "piVar4[1] = (int)piVar34;" (assignment_expression "piVar4[1] = (int)piVar34" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = (cast_expression "(int)piVar34" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (expression_statement "pcVar25 = DAT_00040af8;" (assignment_expression "pcVar25 = DAT_00040af8" identifier = identifier) ;) (expression_statement "cVar2 = *(char *)(*(int *)((int)param_1 + 4) + 0x18);" (assignment_expression "cVar2 = *(char *)(*(int *)((int)param_1 + 4) + 0x18)" identifier = (pointer_expression "*(char *)(*(int *)((int)param_1 + 4) + 0x18)" * (cast_expression "(char *)(*(int *)((int)param_1 + 4) + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x18)" ( (binary_expression "*(int *)((int)param_1 + 4) + 0x18" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if ((char)*piVar34 == cVar2) {\n        if (DAT_00040b3c == 0) {\n          if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }\nLAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }\n      }\n      else {\n        if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))\n        goto LAB_0001982b;\nLAB_00019ab1:\n        sVar22 = strlen(pcVar25);\n        sVar23 = strlen((char *)piVar34);\n        piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n        local_6c = (size_t *)((int)piVar24 + 1);\n        *(char *)piVar24 = *(char *)(param_2[1] + 0x18);\nLAB_00019858:\n        pcVar25 = DAT_00040af8;\n        if (DAT_00040af8 != (char *)0x0) {\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }\n        strcpy((char *)local_6c,(char *)piVar34);\n        piVar4[1] = (int)piVar24;\n        piVar34 = piVar24;\n      }" if (parenthesized_expression "((char)*piVar34 == cVar2)" ( (binary_expression "(char)*piVar34 == cVar2" (cast_expression "(char)*piVar34" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*piVar34" * identifier)) == identifier) )) (compound_statement "{\n        if (DAT_00040b3c == 0) {\n          if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }\nLAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }\n      }" { (if_statement "if (DAT_00040b3c == 0) {\n          if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }\nLAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }" if (parenthesized_expression "(DAT_00040b3c == 0)" ( (binary_expression "DAT_00040b3c == 0" identifier == number_literal) )) (compound_statement "{\n          if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }\nLAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }\n        }" { (if_statement "if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }" if (parenthesized_expression "((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0))))" ( (binary_expression "(DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))" (parenthesized_expression "(DAT_00040b38 != 0)" ( (binary_expression "DAT_00040b38 != 0" identifier != number_literal) )) && (parenthesized_expression "((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))" ( (parenthesized_expression "(((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0))" ( (binary_expression "((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)" (parenthesized_expression "((uVar17 & 0x82) != 0 || (puVar5 == puVar20))" ( (binary_expression "(uVar17 & 0x82) != 0 || (puVar5 == puVar20)" (binary_expression "(uVar17 & 0x82) != 0" (parenthesized_expression "(uVar17 & 0x82)" ( (binary_expression "uVar17 & 0x82" identifier & number_literal) )) != number_literal) || (parenthesized_expression "(puVar5 == puVar20)" ( (binary_expression "puVar5 == puVar20" identifier == identifier) ))) )) || (parenthesized_expression "((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)" ( (binary_expression "(*(byte *)(piVar4[5] + 0x15) & 0x10) != 0" (parenthesized_expression "(*(byte *)(piVar4[5] + 0x15) & 0x10)" ( (binary_expression "*(byte *)(piVar4[5] + 0x15) & 0x10" (pointer_expression "*(byte *)(piVar4[5] + 0x15)" * (cast_expression "(byte *)(piVar4[5] + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4[5] + 0x15)" ( (binary_expression "piVar4[5] + 0x15" (subscript_expression "piVar4[5]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }" { (expression_statement "piVar34 = (int *)((int)piVar34 + 1);" (assignment_expression "piVar34 = (int *)((int)piVar34 + 1)" identifier = (cast_expression "(int *)((int)piVar34 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar34 + 1)" ( (binary_expression "(int)piVar34 + 1" (cast_expression "(int)piVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar4[1] = (int)piVar34;" (assignment_expression "piVar4[1] = (int)piVar34" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = (cast_expression "(int)piVar34" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (labeled_statement "LAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }" statement_identifier : (if_statement "if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }" if (parenthesized_expression "(pcVar25 != (char *)0x0)" ( (binary_expression "pcVar25 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }" { (expression_statement "sVar22 = strlen(pcVar25);" (assignment_expression "sVar22 = strlen(pcVar25)" identifier = (call_expression "strlen(pcVar25)" identifier (argument_list "(pcVar25)" ( identifier )))) ;) (expression_statement "sVar23 = strlen((char *)piVar34);" (assignment_expression "sVar23 = strlen((char *)piVar34)" identifier = (call_expression "strlen((char *)piVar34)" identifier (argument_list "((char *)piVar34)" ( (cast_expression "(char *)piVar34" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);" (assignment_expression "piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23)" identifier = (cast_expression "(int *)xmalloc(sVar22 + 2 + sVar23)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar22 + 2 + sVar23)" identifier (argument_list "(sVar22 + 2 + sVar23)" ( (binary_expression "sVar22 + 2 + sVar23" (binary_expression "sVar22 + 2" identifier + number_literal) + identifier) ))))) ;) (expression_statement "local_6c = (size_t *)piVar24;" (assignment_expression "local_6c = (size_t *)piVar24" identifier = (cast_expression "(size_t *)piVar24" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_00019858;" goto statement_identifier ;) }))) }) (else_clause "else {\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }" else (compound_statement "{\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }" { (if_statement "if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }" if (parenthesized_expression "(*(char *)(param_2[1] + 0x18) == '\0')" ( (binary_expression "*(char *)(param_2[1] + 0x18) == '\0'" (pointer_expression "*(char *)(param_2[1] + 0x18)" * (cast_expression "(char *)(param_2[1] + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 0x18)" ( (binary_expression "param_2[1] + 0x18" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }" { (expression_statement "piVar34 = (int *)((int)piVar34 + 1);" (assignment_expression "piVar34 = (int *)((int)piVar34 + 1)" identifier = (cast_expression "(int *)((int)piVar34 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar34 + 1)" ( (binary_expression "(int)piVar34 + 1" (cast_expression "(int)piVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar4[1] = (int)piVar34;" (assignment_expression "piVar4[1] = (int)piVar34" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = (cast_expression "(int)piVar34" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_0001982b;" goto statement_identifier ;) })) (if_statement "if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }" if (parenthesized_expression "(DAT_00040af8 != (char *)0x0)" ( (binary_expression "DAT_00040af8 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }" { (expression_statement "piVar34 = (int *)((int)piVar34 + 1);" (assignment_expression "piVar34 = (int *)((int)piVar34 + 1)" identifier = (cast_expression "(int *)((int)piVar34 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar34 + 1)" ( (binary_expression "(int)piVar34 + 1" (cast_expression "(int)piVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar4[1] = (int)piVar34;" (assignment_expression "piVar4[1] = (int)piVar34" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = (cast_expression "(int)piVar34" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_00019ab1;" goto statement_identifier ;) })) (expression_statement "*(char *)piVar34 = *(char *)(param_2[1] + 0x18);" (assignment_expression "*(char *)piVar34 = *(char *)(param_2[1] + 0x18)" (pointer_expression "*(char *)piVar34" * (cast_expression "(char *)piVar34" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(char *)(param_2[1] + 0x18)" * (cast_expression "(char *)(param_2[1] + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 0x18)" ( (binary_expression "param_2[1] + 0x18" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "piVar4[1] = (int)piVar34;" (assignment_expression "piVar4[1] = (int)piVar34" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = (cast_expression "(int)piVar34" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) }) (else_clause "else {\n        if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))\n        goto LAB_0001982b;\nLAB_00019ab1:\n        sVar22 = strlen(pcVar25);\n        sVar23 = strlen((char *)piVar34);\n        piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n        local_6c = (size_t *)((int)piVar24 + 1);\n        *(char *)piVar24 = *(char *)(param_2[1] + 0x18);\nLAB_00019858:\n        pcVar25 = DAT_00040af8;\n        if (DAT_00040af8 != (char *)0x0) {\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }\n        strcpy((char *)local_6c,(char *)piVar34);\n        piVar4[1] = (int)piVar24;\n        piVar34 = piVar24;\n      }" else (compound_statement "{\n        if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))\n        goto LAB_0001982b;\nLAB_00019ab1:\n        sVar22 = strlen(pcVar25);\n        sVar23 = strlen((char *)piVar34);\n        piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n        local_6c = (size_t *)((int)piVar24 + 1);\n        *(char *)piVar24 = *(char *)(param_2[1] + 0x18);\nLAB_00019858:\n        pcVar25 = DAT_00040af8;\n        if (DAT_00040af8 != (char *)0x0) {\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }\n        strcpy((char *)local_6c,(char *)piVar34);\n        piVar4[1] = (int)piVar24;\n        piVar34 = piVar24;\n      }" { (if_statement "if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))\n        goto LAB_0001982b;" if (parenthesized_expression "(((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))" ( (binary_expression "((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0')" (parenthesized_expression "((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0'))" ( (binary_expression "(DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')" (parenthesized_expression "(DAT_00040b3c == 0)" ( (binary_expression "DAT_00040b3c == 0" identifier == number_literal) )) || (parenthesized_expression "(*(char *)(param_2[1] + 0x18) == '\0')" ( (binary_expression "*(char *)(param_2[1] + 0x18) == '\0'" (pointer_expression "*(char *)(param_2[1] + 0x18)" * (cast_expression "(char *)(param_2[1] + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 0x18)" ( (binary_expression "param_2[1] + 0x18" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_0001982b;" goto statement_identifier ;)) (labeled_statement "LAB_00019ab1:\n        sVar22 = strlen(pcVar25);" statement_identifier : (expression_statement "sVar22 = strlen(pcVar25);" (assignment_expression "sVar22 = strlen(pcVar25)" identifier = (call_expression "strlen(pcVar25)" identifier (argument_list "(pcVar25)" ( identifier )))) ;)) (expression_statement "sVar23 = strlen((char *)piVar34);" (assignment_expression "sVar23 = strlen((char *)piVar34)" identifier = (call_expression "strlen((char *)piVar34)" identifier (argument_list "((char *)piVar34)" ( (cast_expression "(char *)piVar34" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);" (assignment_expression "piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23)" identifier = (cast_expression "(int *)xmalloc(sVar22 + 2 + sVar23)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar22 + 2 + sVar23)" identifier (argument_list "(sVar22 + 2 + sVar23)" ( (binary_expression "sVar22 + 2 + sVar23" (binary_expression "sVar22 + 2" identifier + number_literal) + identifier) ))))) ;) (expression_statement "local_6c = (size_t *)((int)piVar24 + 1);" (assignment_expression "local_6c = (size_t *)((int)piVar24 + 1)" identifier = (cast_expression "(size_t *)((int)piVar24 + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar24 + 1)" ( (binary_expression "(int)piVar24 + 1" (cast_expression "(int)piVar24" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(char *)piVar24 = *(char *)(param_2[1] + 0x18);" (assignment_expression "*(char *)piVar24 = *(char *)(param_2[1] + 0x18)" (pointer_expression "*(char *)piVar24" * (cast_expression "(char *)piVar24" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(char *)(param_2[1] + 0x18)" * (cast_expression "(char *)(param_2[1] + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 0x18)" ( (binary_expression "param_2[1] + 0x18" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (labeled_statement "LAB_00019858:\n        pcVar25 = DAT_00040af8;" statement_identifier : (expression_statement "pcVar25 = DAT_00040af8;" (assignment_expression "pcVar25 = DAT_00040af8" identifier = identifier) ;)) (if_statement "if (DAT_00040af8 != (char *)0x0) {\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }" if (parenthesized_expression "(DAT_00040af8 != (char *)0x0)" ( (binary_expression "DAT_00040af8 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }" { (expression_statement "strcpy((char *)local_6c,DAT_00040af8);" (call_expression "strcpy((char *)local_6c,DAT_00040af8)" identifier (argument_list "((char *)local_6c,DAT_00040af8)" ( (cast_expression "(char *)local_6c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "sVar22 = strlen(pcVar25);" (assignment_expression "sVar22 = strlen(pcVar25)" identifier = (call_expression "strlen(pcVar25)" identifier (argument_list "(pcVar25)" ( identifier )))) ;) (expression_statement "local_6c = (size_t *)((int)local_6c + sVar22);" (assignment_expression "local_6c = (size_t *)((int)local_6c + sVar22)" identifier = (cast_expression "(size_t *)((int)local_6c + sVar22)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_6c + sVar22)" ( (binary_expression "(int)local_6c + sVar22" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) })) (expression_statement "strcpy((char *)local_6c,(char *)piVar34);" (call_expression "strcpy((char *)local_6c,(char *)piVar34)" identifier (argument_list "((char *)local_6c,(char *)piVar34)" ( (cast_expression "(char *)local_6c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)piVar34" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "piVar4[1] = (int)piVar24;" (assignment_expression "piVar4[1] = (int)piVar24" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = (cast_expression "(int)piVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar34 = piVar24;" (assignment_expression "piVar34 = piVar24" identifier = identifier) ;) }))) (if_statement "if (DAT_00040bb0 == 7) goto LAB_00019928;" if (parenthesized_expression "(DAT_00040bb0 == 7)" ( (binary_expression "DAT_00040bb0 == 7" identifier == number_literal) )) (goto_statement "goto LAB_00019928;" goto statement_identifier ;)) (if_statement "if ((uVar17 & 0x20) == 0) {\n        if (((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)) {\n          if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;\n        }\n        else {\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;\n      }\n      else {\n        iVar18 = FUN_000179c0();\n        if (iVar18 != 0) {\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }\nLAB_0001994f:\n        iVar18 = FUN_00017a30();\n        if (iVar18 == 0) {\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }\n      }" if (parenthesized_expression "((uVar17 & 0x20) == 0)" ( (binary_expression "(uVar17 & 0x20) == 0" (parenthesized_expression "(uVar17 & 0x20)" ( (binary_expression "uVar17 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if (((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)) {\n          if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;\n        }\n        else {\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;\n      }" { (if_statement "if (((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)) {\n          if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;\n        }\n        else {\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }" if (parenthesized_expression "(((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0))" ( (binary_expression "((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)" (parenthesized_expression "((uVar17 & 0x100) == 0)" ( (binary_expression "(uVar17 & 0x100) == 0" (parenthesized_expression "(uVar17 & 0x100)" ( (binary_expression "uVar17 & 0x100" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)" ( (binary_expression "(*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0" (parenthesized_expression "(*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20)" ( (binary_expression "*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20" (pointer_expression "*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10)" * (cast_expression "(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(piVar4[5] + 0xb4) + 0x10)" ( (binary_expression "**(int **)(piVar4[5] + 0xb4) + 0x10" (pointer_expression "**(int **)(piVar4[5] + 0xb4)" * (pointer_expression "*(int **)(piVar4[5] + 0xb4)" * (cast_expression "(int **)(piVar4[5] + 0xb4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar4[5] + 0xb4)" ( (binary_expression "piVar4[5] + 0xb4" (subscript_expression "piVar4[5]" identifier [ number_literal ]) + number_literal) ))))) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;\n        }" { (if_statement "if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;" if (parenthesized_expression "((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49))" ( (binary_expression "(((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)" (parenthesized_expression "(((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0))))" ( (binary_expression "((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))" (parenthesized_expression "((uVar39 >> 5 & 0x42) == 0)" ( (binary_expression "(uVar39 >> 5 & 0x42) == 0" (parenthesized_expression "(uVar39 >> 5 & 0x42)" ( (binary_expression "uVar39 >> 5 & 0x42" (binary_expression "uVar39 >> 5" identifier >> number_literal) & number_literal) )) == number_literal) )) && (parenthesized_expression "(((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))" ( (parenthesized_expression "((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0))" ( (binary_expression "(uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)" (binary_expression "(uVar17 & 0x82) != 0" (parenthesized_expression "(uVar17 & 0x82)" ( (binary_expression "uVar17 & 0x82" identifier & number_literal) )) != number_literal) || (parenthesized_expression "((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)" ( (binary_expression "(*(byte *)(piVar4[5] + 0x15) & 0x10) != 0" (parenthesized_expression "(*(byte *)(piVar4[5] + 0x15) & 0x10)" ( (binary_expression "*(byte *)(piVar4[5] + 0x15) & 0x10" (pointer_expression "*(byte *)(piVar4[5] + 0x15)" * (cast_expression "(byte *)(piVar4[5] + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4[5] + 0x15)" ( (binary_expression "piVar4[5] + 0x15" (subscript_expression "piVar4[5]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) || (parenthesized_expression "(iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)" ( (comma_expression "iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49" (assignment_expression "iVar18 = bfd_decode_symclass(piVar4)" identifier = (call_expression "bfd_decode_symclass(piVar4)" identifier (argument_list "(piVar4)" ( identifier )))) , (binary_expression "iVar18 == 0x49" identifier == number_literal)) ))) )) (compound_statement "{\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }" { (labeled_statement "LAB_00019b80:\n            iVar18 = FUN_000179c0();" statement_identifier : (expression_statement "iVar18 = FUN_000179c0();" (assignment_expression "iVar18 = FUN_000179c0()" identifier = (call_expression "FUN_000179c0()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar18 == 0) goto LAB_00019910;" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019910;" goto statement_identifier ;)) }) (else_clause "else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;" else (if_statement "if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;" if (parenthesized_expression "((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0))" ( (binary_expression "(((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)" (parenthesized_expression "(((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0))" ( (binary_expression "((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)" (parenthesized_expression "((uVar17 & 0x82) == 0)" ( (binary_expression "(uVar17 & 0x82) == 0" (parenthesized_expression "(uVar17 & 0x82)" ( (binary_expression "uVar17 & 0x82" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)" ( (binary_expression "puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0" identifier != (binary_expression "PTR__bfd_std_section_0003ffc8 + 0xc0" identifier + number_literal)) ))) )) && (parenthesized_expression "((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)" ( (binary_expression "(*(byte *)(piVar4[5] + 0x15) & 0x10) == 0" (parenthesized_expression "(*(byte *)(piVar4[5] + 0x15) & 0x10)" ( (binary_expression "*(byte *)(piVar4[5] + 0x15) & 0x10" (pointer_expression "*(byte *)(piVar4[5] + 0x15)" * (cast_expression "(byte *)(piVar4[5] + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4[5] + 0x15)" ( (binary_expression "piVar4[5] + 0x15" (subscript_expression "piVar4[5]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }" { (if_statement "if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }" if (parenthesized_expression "((uVar17 & 4) == 0)" ( (binary_expression "(uVar17 & 4) == 0" (parenthesized_expression "(uVar17 & 4)" ( (binary_expression "uVar17 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }" { (if_statement "if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }" if (parenthesized_expression "(((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0))" ( (binary_expression "((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)" (parenthesized_expression "((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0))" ( (binary_expression "(*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)" (parenthesized_expression "(*(int *)(*(int *)((int)param_1 + 4) + 4) != 2)" ( (binary_expression "*(int *)(*(int *)((int)param_1 + 4) + 4) != 2" (pointer_expression "*(int *)(*(int *)((int)param_1 + 4) + 4)" * (cast_expression "(int *)(*(int *)((int)param_1 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 4)" ( (binary_expression "*(int *)((int)param_1 + 4) + 4" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) )))) != number_literal) )) || (parenthesized_expression "(iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)" ( (comma_expression "iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0" (assignment_expression "iVar18 = *(int *)(piVar4[5] + 0xa4)" identifier = (pointer_expression "*(int *)(piVar4[5] + 0xa4)" * (cast_expression "(int *)(piVar4[5] + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4[5] + 0xa4)" ( (binary_expression "piVar4[5] + 0xa4" (subscript_expression "piVar4[5]" identifier [ number_literal ]) + number_literal) ))))) , (binary_expression "iVar18 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(*(int *)(iVar18 + 0x2c) == 0)" ( (binary_expression "*(int *)(iVar18 + 0x2c) == 0" (pointer_expression "*(int *)(iVar18 + 0x2c)" * (cast_expression "(int *)(iVar18 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x2c)" ( (binary_expression "iVar18 + 0x2c" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }" { (if_statement "if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;" if (parenthesized_expression "((DAT_00040bb0 == 3) || (DAT_00040bac == 2))" ( (binary_expression "(DAT_00040bb0 == 3) || (DAT_00040bac == 2)" (parenthesized_expression "(DAT_00040bb0 == 3)" ( (binary_expression "DAT_00040bb0 == 3" identifier == number_literal) )) || (parenthesized_expression "(DAT_00040bac == 2)" ( (binary_expression "DAT_00040bac == 2" identifier == number_literal) ))) )) (goto_statement "goto LAB_00019928;" goto statement_identifier ;)) (if_statement "if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }" if (parenthesized_expression "(DAT_00040bac == 1)" ( (binary_expression "DAT_00040bac == 1" identifier == number_literal) )) (compound_statement "{\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }" { (expression_statement "iVar18 = bfd_is_local_label(param_1,piVar4,0,0);" (assignment_expression "iVar18 = bfd_is_local_label(param_1,piVar4,0,0)" identifier = (call_expression "bfd_is_local_label(param_1,piVar4,0,0)" identifier (argument_list "(param_1,piVar4,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (goto_statement "goto joined_r0x0001a753;" goto statement_identifier ;) })) })) (goto_statement "goto LAB_00019b80;" goto statement_identifier ;) })) (expression_statement "iVar18 = DAT_00040b48;" (assignment_expression "iVar18 = DAT_00040b48" identifier = identifier) ;) (if_statement "if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }" if (parenthesized_expression "(1 < DAT_00040bb0 - 2U)" ( (binary_expression "1 < DAT_00040bb0 - 2U" number_literal < (binary_expression "DAT_00040bb0 - 2U" identifier - number_literal)) )) (compound_statement "{\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }" { (labeled_statement "joined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;" statement_identifier : (if_statement "if (iVar18 == 0) goto LAB_00019b80;" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019b80;" goto statement_identifier ;))) })) }) (else_clause "else if (DAT_00040bb0 != 3) goto LAB_00019b80;" else (if_statement "if (DAT_00040bb0 != 3) goto LAB_00019b80;" if (parenthesized_expression "(DAT_00040bb0 != 3)" ( (binary_expression "DAT_00040bb0 != 3" identifier != number_literal) )) (goto_statement "goto LAB_00019b80;" goto statement_identifier ;)))))) }) (else_clause "else {\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }" else (compound_statement "{\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }" { (expression_statement "iVar18 = FUN_000179c0();" (assignment_expression "iVar18 = FUN_000179c0()" identifier = (call_expression "FUN_000179c0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }" { (expression_statement "uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);" (assignment_expression "uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18)" identifier = (call_expression "dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18)" identifier (argument_list "(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18)" ( number_literal , (string_literal ""not stripping symbol `%s\' because it is named in a relocation"" " string_content escape_sequence string_content ") , number_literal , identifier )))) ;) (expression_statement "FUN_0002c910(uVar13,piVar34);" (call_expression "FUN_0002c910(uVar13,piVar34)" identifier (argument_list "(uVar13,piVar34)" ( identifier , identifier ))) ;) (expression_statement "DAT_00040bc8 = 1;" (assignment_expression "DAT_00040bc8 = 1" identifier = number_literal) ;) })) (labeled_statement "LAB_00019910:\n          iVar18 = FUN_000179c0();" statement_identifier : (expression_statement "iVar18 = FUN_000179c0();" (assignment_expression "iVar18 = FUN_000179c0()" identifier = (call_expression "FUN_000179c0()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar18 == 0) goto LAB_0001994f;" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001994f;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00019928:\n        if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;" statement_identifier : (if_statement "if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;" if (parenthesized_expression "(((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0))" ( (binary_expression "((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)" (parenthesized_expression "((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0))" ( (binary_expression "(DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)" (parenthesized_expression "(DAT_00040afc != 0)" ( (binary_expression "DAT_00040afc != 0" identifier != number_literal) )) && (parenthesized_expression "((uVar17 & 0x4000) != 0)" ( (binary_expression "(uVar17 & 0x4000) != 0" (parenthesized_expression "(uVar17 & 0x4000)" ( (binary_expression "uVar17 & 0x4000" identifier & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "(iVar18 = FUN_000179c0(), iVar18 != 0)" ( (comma_expression "iVar18 = FUN_000179c0(), iVar18 != 0" (assignment_expression "iVar18 = FUN_000179c0()" identifier = (call_expression "FUN_000179c0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar18 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0001994f;" goto statement_identifier ;))) }) (else_clause "else {\n        iVar18 = FUN_000179c0();\n        if (iVar18 != 0) {\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }\nLAB_0001994f:\n        iVar18 = FUN_00017a30();\n        if (iVar18 == 0) {\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }\n      }" else (compound_statement "{\n        iVar18 = FUN_000179c0();\n        if (iVar18 != 0) {\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }\nLAB_0001994f:\n        iVar18 = FUN_00017a30();\n        if (iVar18 == 0) {\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }\n      }" { (expression_statement "iVar18 = FUN_000179c0();" (assignment_expression "iVar18 = FUN_000179c0()" identifier = (call_expression "FUN_000179c0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar18 != 0) {\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }" { (expression_statement "uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);" (assignment_expression "uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5)" identifier = (call_expression "dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5)" identifier (argument_list "(0,"not stripping symbol `%s\' because it is named in a relocation",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_0002c910(uVar13,piVar34);" (call_expression "FUN_0002c910(uVar13,piVar34)" identifier (argument_list "(uVar13,piVar34)" ( identifier , identifier ))) ;) (expression_statement "DAT_00040bc8 = 1;" (assignment_expression "DAT_00040bc8 = 1" identifier = number_literal) ;) })) (labeled_statement "LAB_0001994f:\n        iVar18 = FUN_00017a30();" statement_identifier : (expression_statement "iVar18 = FUN_00017a30();" (assignment_expression "iVar18 = FUN_00017a30()" identifier = (call_expression "FUN_00017a30()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar18 == 0) {\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }" { (if_statement "if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }" if (parenthesized_expression "(((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             )" ( (binary_expression "((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))" (parenthesized_expression "((uVar17 & 2) != 0)" ( (binary_expression "(uVar17 & 2) != 0" (parenthesized_expression "(uVar17 & 2)" ( (binary_expression "uVar17 & 2" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))" ( (parenthesized_expression "(DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0))" ( (binary_expression "DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)" (binary_expression "DAT_00040b00 != 0" identifier != number_literal) || (parenthesized_expression "(iVar18 = FUN_000179c0(), iVar18 != 0)" ( (comma_expression "iVar18 = FUN_000179c0(), iVar18 != 0" (assignment_expression "iVar18 = FUN_000179c0()" identifier = (call_expression "FUN_000179c0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar18 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }" { (expression_statement "piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;" (assignment_expression "piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80" (subscript_expression "piVar4[4]" identifier [ number_literal ]) = (binary_expression "piVar4[4] & 0xfffffffdU | 0x80" (binary_expression "piVar4[4] & 0xfffffffdU" (subscript_expression "piVar4[4]" identifier [ number_literal ]) & number_literal) | number_literal)) ;) })) (if_statement "if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }" if (parenthesized_expression "(puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)" ( (binary_expression "puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0" identifier != (binary_expression "PTR__bfd_std_section_0003ffc8 + 0xc0" identifier + number_literal)) )) (compound_statement "{\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }" { (if_statement "if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }" if (parenthesized_expression "(((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 ))))))" ( (binary_expression "((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))" (parenthesized_expression "((uVar17 & 0x82) != 0)" ( (binary_expression "(uVar17 & 0x82) != 0" (parenthesized_expression "(uVar17 & 0x82)" ( (binary_expression "uVar17 & 0x82" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))" ( (parenthesized_expression "((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 ))))" ( (binary_expression "(iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))" (parenthesized_expression "(iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0))))" ( (comma_expression "iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))" (assignment_expression "iVar18 = FUN_000179c0()" identifier = (call_expression "FUN_000179c0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))" (binary_expression "iVar18 != 0" identifier != number_literal) || (parenthesized_expression "((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))" ( (parenthesized_expression "(iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0))" ( (comma_expression "iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)" (assignment_expression "iVar18 = htab_elements(DAT_00040b18)" identifier = (call_expression "htab_elements(DAT_00040b18)" identifier (argument_list "(DAT_00040b18)" ( identifier )))) , (binary_expression "iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)" (binary_expression "iVar18 != 0" identifier != number_literal) && (parenthesized_expression "(iVar18 = FUN_000179c0(), iVar18 == 0)" ( (comma_expression "iVar18 = FUN_000179c0(), iVar18 == 0" (assignment_expression "iVar18 = FUN_000179c0()" identifier = (call_expression "FUN_000179c0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar18 == 0" identifier == number_literal)) )))) )) )))) )) || (parenthesized_expression "((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))" ( (parenthesized_expression "(DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 ))" ( (binary_expression "DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )" (binary_expression "DAT_00040b30 != 0" identifier != number_literal) && (parenthesized_expression "((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )" ( (parenthesized_expression "(((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))" ( (binary_expression "((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2)" (parenthesized_expression "((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0))" ( (binary_expression "(iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)" (parenthesized_expression "(iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5))" ( (comma_expression "iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)" (assignment_expression "iVar18 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) , (binary_expression "iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)" (binary_expression "iVar18 != 0" identifier != number_literal) && (parenthesized_expression "(*(int *)(*(int *)(iVar18 + 4) + 4) == 5)" ( (binary_expression "*(int *)(*(int *)(iVar18 + 4) + 4) == 5" (pointer_expression "*(int *)(*(int *)(iVar18 + 4) + 4)" * (cast_expression "(int *)(*(int *)(iVar18 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 4) + 4)" ( (binary_expression "*(int *)(iVar18 + 4) + 4" (pointer_expression "*(int *)(iVar18 + 4)" * (cast_expression "(int *)(iVar18 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 4)" ( (binary_expression "iVar18 + 4" identifier + number_literal) )))) + number_literal) )))) == number_literal) )))) )) && (parenthesized_expression "(*(int *)(iVar18 + 0xa0) != 0)" ( (binary_expression "*(int *)(iVar18 + 0xa0) != 0" (pointer_expression "*(int *)(iVar18 + 0xa0)" * (cast_expression "(int *)(iVar18 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xa0)" ( (binary_expression "iVar18 + 0xa0" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2)" ( (binary_expression "(*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2" (binary_expression "(*(byte *)((int)piVar4 + 0x35) & 3) - 1" (parenthesized_expression "(*(byte *)((int)piVar4 + 0x35) & 3)" ( (binary_expression "*(byte *)((int)piVar4 + 0x35) & 3" (pointer_expression "*(byte *)((int)piVar4 + 0x35)" * (cast_expression "(byte *)((int)piVar4 + 0x35)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + 0x35)" ( (binary_expression "(int)piVar4 + 0x35" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) - number_literal) < number_literal) ))) )) ))) )) ))) )) ))) )) (compound_statement "{\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }" { (expression_statement "piVar4[4] = piVar4[4] & 0xffffff7dU | 1;" (assignment_expression "piVar4[4] = piVar4[4] & 0xffffff7dU | 1" (subscript_expression "piVar4[4]" identifier [ number_literal ]) = (binary_expression "piVar4[4] & 0xffffff7dU | 1" (binary_expression "piVar4[4] & 0xffffff7dU" (subscript_expression "piVar4[4]" identifier [ number_literal ]) & number_literal) | number_literal)) ;) })) (if_statement "if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }" if (parenthesized_expression "(((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0))" ( (binary_expression "((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)" (parenthesized_expression "((uVar17 & 1) != 0)" ( (binary_expression "(uVar17 & 1) != 0" (parenthesized_expression "(uVar17 & 1)" ( (binary_expression "uVar17 & 1" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(iVar18 = FUN_000179c0(), iVar18 != 0)" ( (comma_expression "iVar18 = FUN_000179c0(), iVar18 != 0" (assignment_expression "iVar18 = FUN_000179c0()" identifier = (call_expression "FUN_000179c0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar18 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }" { (expression_statement "piVar4[4] = piVar4[4] & 0xfffffffeU | 2;" (assignment_expression "piVar4[4] = piVar4[4] & 0xfffffffeU | 2" (subscript_expression "piVar4[4]" identifier [ number_literal ]) = (binary_expression "piVar4[4] & 0xfffffffeU | 2" (binary_expression "piVar4[4] & 0xfffffffeU" (subscript_expression "piVar4[4]" identifier [ number_literal ]) & number_literal) | number_literal)) ;) })) })) (expression_statement "piVar19[local_8c] = (int)piVar4;" (assignment_expression "piVar19[local_8c] = (int)piVar4" (subscript_expression "piVar19[local_8c]" identifier [ identifier ]) = (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_8c = local_8c + 1;" (assignment_expression "local_8c = local_8c + 1" identifier = (binary_expression "local_8c + 1" identifier + number_literal)) ;) })) }))) (expression_statement "local_84 = local_84 + 1;" (assignment_expression "local_84 = local_84 + 1" identifier = (binary_expression "local_84 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar1 != local_84)" ( (binary_expression "piVar1 != local_84" identifier != identifier) )) ;) })) (expression_statement "local_6c = (size_t *)DAT_00040b08;" (assignment_expression "local_6c = (size_t *)DAT_00040b08" identifier = (cast_expression "(size_t *)DAT_00040b08" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) {\n    iVar18 = 0;\n    do {\n      pcVar25 = (char *)local_6c[5];\n      if (pcVar25 == (char *)0x0) {\n        iVar21 = FUN_00017920();\n        piVar19[local_8c] = iVar21;\n        local_8c = local_8c + 1;\n      }\n      else if (*pcVar25 != '\0') {\n        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    /* WARNING: Subroutine does not return */\n        FUN_0002c8e0(uVar13,pcVar25);\n      }\n      iVar18 = iVar18 + 1;\n      local_6c = (size_t *)*local_6c;\n    } while (iVar18 < DAT_00040b04);\n  }" if (parenthesized_expression "((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04))" ( (binary_expression "(DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)" (parenthesized_expression "(DAT_00040b08 != (int *)0x0)" ( (binary_expression "DAT_00040b08 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(0 < DAT_00040b04)" ( (binary_expression "0 < DAT_00040b04" number_literal < identifier) ))) )) (compound_statement "{\n    iVar18 = 0;\n    do {\n      pcVar25 = (char *)local_6c[5];\n      if (pcVar25 == (char *)0x0) {\n        iVar21 = FUN_00017920();\n        piVar19[local_8c] = iVar21;\n        local_8c = local_8c + 1;\n      }\n      else if (*pcVar25 != '\0') {\n        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    /* WARNING: Subroutine does not return */\n        FUN_0002c8e0(uVar13,pcVar25);\n      }\n      iVar18 = iVar18 + 1;\n      local_6c = (size_t *)*local_6c;\n    } while (iVar18 < DAT_00040b04);\n  }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n      pcVar25 = (char *)local_6c[5];\n      if (pcVar25 == (char *)0x0) {\n        iVar21 = FUN_00017920();\n        piVar19[local_8c] = iVar21;\n        local_8c = local_8c + 1;\n      }\n      else if (*pcVar25 != '\0') {\n        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    /* WARNING: Subroutine does not return */\n        FUN_0002c8e0(uVar13,pcVar25);\n      }\n      iVar18 = iVar18 + 1;\n      local_6c = (size_t *)*local_6c;\n    } while (iVar18 < DAT_00040b04);" do (compound_statement "{\n      pcVar25 = (char *)local_6c[5];\n      if (pcVar25 == (char *)0x0) {\n        iVar21 = FUN_00017920();\n        piVar19[local_8c] = iVar21;\n        local_8c = local_8c + 1;\n      }\n      else if (*pcVar25 != '\0') {\n        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    /* WARNING: Subroutine does not return */\n        FUN_0002c8e0(uVar13,pcVar25);\n      }\n      iVar18 = iVar18 + 1;\n      local_6c = (size_t *)*local_6c;\n    }" { (expression_statement "pcVar25 = (char *)local_6c[5];" (assignment_expression "pcVar25 = (char *)local_6c[5]" identifier = (cast_expression "(char *)local_6c[5]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_6c[5]" identifier [ number_literal ]))) ;) (if_statement "if (pcVar25 == (char *)0x0) {\n        iVar21 = FUN_00017920();\n        piVar19[local_8c] = iVar21;\n        local_8c = local_8c + 1;\n      }\n      else if (*pcVar25 != '\0') {\n        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    /* WARNING: Subroutine does not return */\n        FUN_0002c8e0(uVar13,pcVar25);\n      }" if (parenthesized_expression "(pcVar25 == (char *)0x0)" ( (binary_expression "pcVar25 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar21 = FUN_00017920();\n        piVar19[local_8c] = iVar21;\n        local_8c = local_8c + 1;\n      }" { (expression_statement "iVar21 = FUN_00017920();" (assignment_expression "iVar21 = FUN_00017920()" identifier = (call_expression "FUN_00017920()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar19[local_8c] = iVar21;" (assignment_expression "piVar19[local_8c] = iVar21" (subscript_expression "piVar19[local_8c]" identifier [ identifier ]) = identifier) ;) (expression_statement "local_8c = local_8c + 1;" (assignment_expression "local_8c = local_8c + 1" identifier = (binary_expression "local_8c + 1" identifier + number_literal)) ;) }) (else_clause "else if (*pcVar25 != '\0') {\n        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    /* WARNING: Subroutine does not return */\n        FUN_0002c8e0(uVar13,pcVar25);\n      }" else (if_statement "if (*pcVar25 != '\0') {\n        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    /* WARNING: Subroutine does not return */\n        FUN_0002c8e0(uVar13,pcVar25);\n      }" if (parenthesized_expression "(*pcVar25 != '\0')" ( (binary_expression "*pcVar25 != '\0'" (pointer_expression "*pcVar25" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    /* WARNING: Subroutine does not return */\n        FUN_0002c8e0(uVar13,pcVar25);\n      }" { (expression_statement "uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);" (assignment_expression "uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c)" identifier = (call_expression "dcgettext(0,"\'before=%s\' not found",5,local_8c)" identifier (argument_list "(0,"\'before=%s\' not found",5,local_8c)" ( number_literal , (string_literal ""\'before=%s\' not found"" " escape_sequence string_content escape_sequence string_content ") , number_literal , identifier )))) ;) comment (expression_statement "FUN_0002c8e0(uVar13,pcVar25);" (call_expression "FUN_0002c8e0(uVar13,pcVar25)" identifier (argument_list "(uVar13,pcVar25)" ( identifier , identifier ))) ;) })))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "local_6c = (size_t *)*local_6c;" (assignment_expression "local_6c = (size_t *)*local_6c" identifier = (cast_expression "(size_t *)*local_6c" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_6c" * identifier))) ;) }) while (parenthesized_expression "(iVar18 < DAT_00040b04)" ( (binary_expression "iVar18 < DAT_00040b04" identifier < identifier) )) ;) })) (expression_statement "piVar19[local_8c] = 0;" (assignment_expression "piVar19[local_8c] = 0" (subscript_expression "piVar19[local_8c]" identifier [ identifier ]) = number_literal) ;) (if_statement "if ((DAT_00040b48 != 0) && (iVar12 != 0)) {\n    iVar18 = ((undefined4 *)param_2[1])[1];\n    if ((iVar18 == 2) || (iVar18 == 5)) {\n      iVar12 = FUN_0002c240(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34);\n      if (iVar12 != 0) {\n        iVar12 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n        iVar18 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n        if ((((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)) {\n          pcVar25 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }\n        uVar13 = dcgettext(0,pcVar25,5,iVar12);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n      }\n    }\n    else {\n      uVar13 = *(undefined4 *)param_2[1];\n      uVar14 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n    }\n    DAT_00040bc8 = 1;\n    return 0;\n  }" if (parenthesized_expression "((DAT_00040b48 != 0) && (iVar12 != 0))" ( (binary_expression "(DAT_00040b48 != 0) && (iVar12 != 0)" (parenthesized_expression "(DAT_00040b48 != 0)" ( (binary_expression "DAT_00040b48 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    iVar18 = ((undefined4 *)param_2[1])[1];\n    if ((iVar18 == 2) || (iVar18 == 5)) {\n      iVar12 = FUN_0002c240(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34);\n      if (iVar12 != 0) {\n        iVar12 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n        iVar18 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n        if ((((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)) {\n          pcVar25 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }\n        uVar13 = dcgettext(0,pcVar25,5,iVar12);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n      }\n    }\n    else {\n      uVar13 = *(undefined4 *)param_2[1];\n      uVar14 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n    }\n    DAT_00040bc8 = 1;\n    return 0;\n  }" { (expression_statement "iVar18 = ((undefined4 *)param_2[1])[1];" (assignment_expression "iVar18 = ((undefined4 *)param_2[1])[1]" identifier = (subscript_expression "((undefined4 *)param_2[1])[1]" (parenthesized_expression "((undefined4 *)param_2[1])" ( (cast_expression "(undefined4 *)param_2[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ])) )) [ number_literal ])) ;) (if_statement "if ((iVar18 == 2) || (iVar18 == 5)) {\n      iVar12 = FUN_0002c240(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34);\n      if (iVar12 != 0) {\n        iVar12 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n        iVar18 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n        if ((((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)) {\n          pcVar25 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }\n        uVar13 = dcgettext(0,pcVar25,5,iVar12);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n      }\n    }\n    else {\n      uVar13 = *(undefined4 *)param_2[1];\n      uVar14 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n    }" if (parenthesized_expression "((iVar18 == 2) || (iVar18 == 5))" ( (binary_expression "(iVar18 == 2) || (iVar18 == 5)" (parenthesized_expression "(iVar18 == 2)" ( (binary_expression "iVar18 == 2" identifier == number_literal) )) || (parenthesized_expression "(iVar18 == 5)" ( (binary_expression "iVar18 == 5" identifier == number_literal) ))) )) (compound_statement "{\n      iVar12 = FUN_0002c240(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34);\n      if (iVar12 != 0) {\n        iVar12 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n        iVar18 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n        if ((((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)) {\n          pcVar25 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }\n        uVar13 = dcgettext(0,pcVar25,5,iVar12);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n      }\n    }" { (expression_statement "iVar12 = FUN_0002c240(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34);" (assignment_expression "iVar12 = FUN_0002c240(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34)" identifier = (call_expression "FUN_0002c240(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34)" identifier (argument_list "(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34)" ( identifier , identifier , (pointer_expression "&local_54" & identifier) , (pointer_expression "&local_4c" & identifier) , (pointer_expression "&local_50" & identifier) , (pointer_expression "&local_34" & identifier) )))) ;) (if_statement "if (iVar12 != 0) {\n        iVar12 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n        iVar18 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n        if ((((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)) {\n          pcVar25 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }\n        uVar13 = dcgettext(0,pcVar25,5,iVar12);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n      }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar12 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n        iVar18 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n        if ((((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)) {\n          pcVar25 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }\n        uVar13 = dcgettext(0,pcVar25,5,iVar12);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n      }" { (expression_statement "iVar12 = bfd_make_section_with_flags(param_2,".stab",0x2108);" (assignment_expression "iVar12 = 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 "iVar18 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);" (assignment_expression "iVar18 = 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 ((((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)) {\n          pcVar25 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }" if (parenthesized_expression "((((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0))" ( (binary_expression "(((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)" (parenthesized_expression "(((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0))" ( (binary_expression "((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)" (parenthesized_expression "((iVar12 == 0) || (iVar18 == 0))" ( (binary_expression "(iVar12 == 0) || (iVar18 == 0)" (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) ))) )) || (parenthesized_expression "(iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)" ( (comma_expression "iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0" (assignment_expression "iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48)" identifier = (call_expression "bfd_set_section_size(param_2,iVar12,local_4c,local_48)" identifier (argument_list "(param_2,iVar12,local_4c,local_48)" ( identifier , identifier , identifier , identifier )))) , (binary_expression "iVar21 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)" ( (comma_expression "iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0" (assignment_expression "iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30)" identifier = (call_expression "bfd_set_section_size(param_2,iVar18,local_34,local_30)" identifier (argument_list "(param_2,iVar18,local_34,local_30)" ( identifier , identifier , identifier , identifier )))) , (binary_expression "iVar21 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          pcVar25 = "can\'t create debugging section";\n        }" { (expression_statement "pcVar25 = "can\'t create debugging section";" (assignment_expression "pcVar25 = "can\'t create debugging section"" identifier = (string_literal ""can\'t create debugging section"" " string_content escape_sequence string_content ")) ;) }) (else_clause "else {\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }" else (compound_statement "{\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }" { (expression_statement "*(undefined4 *)(iVar12 + 0x58) = 2;" (assignment_expression "*(undefined4 *)(iVar12 + 0x58) = 2" (pointer_expression "*(undefined4 *)(iVar12 + 0x58)" * (cast_expression "(undefined4 *)(iVar12 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x58)" ( (binary_expression "iVar12 + 0x58" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x58) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x58) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x58)" * (cast_expression "(undefined4 *)(iVar18 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x58)" ( (binary_expression "iVar18 + 0x58" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);" (assignment_expression "iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21)" identifier = (call_expression "bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21)" identifier (argument_list "(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21)" ( identifier , identifier , identifier , number_literal , number_literal , identifier , identifier , identifier )))) ;) (if_statement "if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;" if (parenthesized_expression "((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0))" ( (binary_expression "(iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)" (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)" ( (comma_expression "iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0" (assignment_expression "iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX)" identifier = (call_expression "bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX)" identifier (argument_list "(param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX)" ( identifier , identifier , identifier , number_literal , number_literal , identifier , identifier , identifier )))) , (binary_expression "iVar12 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00019e4d;" goto statement_identifier ;)) (expression_statement "pcVar25 = "can\'t set debugging section contents";" (assignment_expression "pcVar25 = "can\'t set debugging section contents"" identifier = (string_literal ""can\'t set debugging section contents"" " string_content escape_sequence string_content ")) ;) (expression_statement "iVar12 = iVar18;" (assignment_expression "iVar12 = iVar18" identifier = identifier) ;) }))) (expression_statement "uVar13 = dcgettext(0,pcVar25,5,iVar12);" (assignment_expression "uVar13 = dcgettext(0,pcVar25,5,iVar12)" identifier = (call_expression "dcgettext(0,pcVar25,5,iVar12)" identifier (argument_list "(0,pcVar25,5,iVar12)" ( number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "FUN_0002d3a0(0,param_2,0,uVar13);" (call_expression "FUN_0002d3a0(0,param_2,0,uVar13)" identifier (argument_list "(0,param_2,0,uVar13)" ( number_literal , identifier , number_literal , identifier ))) ;) })) }) (else_clause "else {\n      uVar13 = *(undefined4 *)param_2[1];\n      uVar14 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n    }" else (compound_statement "{\n      uVar13 = *(undefined4 *)param_2[1];\n      uVar14 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n    }" { (expression_statement "uVar13 = *(undefined4 *)param_2[1];" (assignment_expression "uVar13 = *(undefined4 *)param_2[1]" identifier = (pointer_expression "*(undefined4 *)param_2[1]" * (cast_expression "(undefined4 *)param_2[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ])))) ;) (expression_statement "uVar14 = dcgettext(0,"don\'t know how to write debugging information for %s",5);" (assignment_expression "uVar14 = 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_0002d3a0(0,param_2,0,uVar14,uVar13);" (call_expression "FUN_0002d3a0(0,param_2,0,uVar14,uVar13)" identifier (argument_list "(0,param_2,0,uVar14,uVar13)" ( number_literal , identifier , number_literal , identifier , identifier ))) ;) }))) (expression_statement "DAT_00040bc8 = 1;" (assignment_expression "DAT_00040bc8 = 1" identifier = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_00019e4d:\n  bfd_set_symtab(param_2,DAT_00040bd8,local_8c);" statement_identifier : (expression_statement "bfd_set_symtab(param_2,DAT_00040bd8,local_8c);" (call_expression "bfd_set_symtab(param_2,DAT_00040bd8,local_8c)" identifier (argument_list "(param_2,DAT_00040bd8,local_8c)" ( identifier , identifier , identifier ))) ;)) (expression_statement "bfd_map_over_sections(param_1,FUN_00018500,param_2);" (call_expression "bfd_map_over_sections(param_1,FUN_00018500,param_2)" identifier (argument_list "(param_1,FUN_00018500,param_2)" ( identifier , identifier , identifier ))) ;) (expression_statement "bfd_map_over_sections(param_1,FUN_00018070,param_2);" (call_expression "bfd_map_over_sections(param_1,FUN_00018070,param_2)" identifier (argument_list "(param_1,FUN_00018070,param_2)" ( identifier , identifier , identifier ))) ;) (for_statement "for (puVar35 = DAT_00040b58; psVar43 = param_2, puVar42 = DAT_00040b54,\n      puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)*puVar35) {\n    iVar12 = bfd_set_section_contents(param_2,puVar35[5],puVar35[4],0,0,puVar35[3],0);\n    if (iVar12 == 0) {\nLAB_00019d5e:\n      FUN_0002d3a0(0,param_2,puVar35[5],0);\n      return 0;\n    }\n  }" for ( (assignment_expression "puVar35 = DAT_00040b58" identifier = identifier) ; (comma_expression "psVar43 = param_2, puVar42 = DAT_00040b54,\n      puVar35 != (undefined4 *)0x0" (assignment_expression "psVar43 = param_2" identifier = identifier) , (comma_expression "puVar42 = DAT_00040b54,\n      puVar35 != (undefined4 *)0x0" (assignment_expression "puVar42 = DAT_00040b54" identifier = identifier) , (binary_expression "puVar35 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))) ; (assignment_expression "puVar35 = (undefined4 *)*puVar35" identifier = (cast_expression "(undefined4 *)*puVar35" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar35" * identifier))) ) (compound_statement "{\n    iVar12 = bfd_set_section_contents(param_2,puVar35[5],puVar35[4],0,0,puVar35[3],0);\n    if (iVar12 == 0) {\nLAB_00019d5e:\n      FUN_0002d3a0(0,param_2,puVar35[5],0);\n      return 0;\n    }\n  }" { (expression_statement "iVar12 = bfd_set_section_contents(param_2,puVar35[5],puVar35[4],0,0,puVar35[3],0);" (assignment_expression "iVar12 = bfd_set_section_contents(param_2,puVar35[5],puVar35[4],0,0,puVar35[3],0)" identifier = (call_expression "bfd_set_section_contents(param_2,puVar35[5],puVar35[4],0,0,puVar35[3],0)" identifier (argument_list "(param_2,puVar35[5],puVar35[4],0,0,puVar35[3],0)" ( identifier , (subscript_expression "puVar35[5]" identifier [ number_literal ]) , (subscript_expression "puVar35[4]" identifier [ number_literal ]) , number_literal , number_literal , (subscript_expression "puVar35[3]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar12 == 0) {\nLAB_00019d5e:\n      FUN_0002d3a0(0,param_2,puVar35[5],0);\n      return 0;\n    }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00019d5e:\n      FUN_0002d3a0(0,param_2,puVar35[5],0);\n      return 0;\n    }" { (labeled_statement "LAB_00019d5e:\n      FUN_0002d3a0(0,param_2,puVar35[5],0);" statement_identifier : (expression_statement "FUN_0002d3a0(0,param_2,puVar35[5],0);" (call_expression "FUN_0002d3a0(0,param_2,puVar35[5],0)" identifier (argument_list "(0,param_2,puVar35[5],0)" ( number_literal , identifier , (subscript_expression "puVar35[5]" identifier [ number_literal ]) , number_literal ))) ;)) (return_statement "return 0;" return number_literal ;) })) })) (while_statement "while( true ) {\n    if (puVar42 == (undefined4 *)0x0) {\n      uVar39 = 0;\n      if (DAT_00040bc4 != 0) {\n        uVar39 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n        if (((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))) {\n          if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }\n        }\n        else {\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        psVar43 = param_2;\n      }\n      if ((DAT_00040b4c != 0) &&\n         (iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0)) {\n        uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,param_2,0,uVar13,iVar12);\n        return 0;\n      }\n      if (DAT_00040b78 != 0 || DAT_00040b70 != 0) {\n        uVar39 = 0x2000;\n        if (local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc) {\n          uVar39 = local_b8;\n        }\n        piVar19 = (int *)xmalloc(uVar39);\n        iVar12 = (uint)DAT_00040b74 * 0x1010101;\n        if (uVar39 < 4) {\n          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }\n        }\n        else {\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }\n        iVar12 = param_2[0x1a];\n        if (iVar12 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);\n        }\n      }\n      iVar12 = (**(code **)(param_2[1] + 0xa8))(param_1,param_2);\n      if (iVar12 == 0) {\n        uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n        return 0;\n      }\n      if ((DAT_00040b64 != 0) &&\n         (iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0)) {\n        uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)\n        ;\n        FUN_0002c910(uVar13,iVar12);\n        if (*(int *)(param_2[1] + 4) != 5) {\n          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          FUN_0002c910(uVar13);\n          return 1;\n        }\n        uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)\n        ;\n        FUN_0002c910(uVar13);\n        *(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64;\n      }\n      return 1;\n    }\n    psVar43 = *(size_t **)(puVar42[5] + 0x54);\n    iVar12 = bfd_set_section_contents(param_2,psVar43,puVar42[4],0,0,puVar42[3],0);\n    local_6c = param_2;\n    if (iVar12 == 0) break;\n    puVar42 = (undefined4 *)*puVar42;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if (puVar42 == (undefined4 *)0x0) {\n      uVar39 = 0;\n      if (DAT_00040bc4 != 0) {\n        uVar39 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n        if (((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))) {\n          if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }\n        }\n        else {\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        psVar43 = param_2;\n      }\n      if ((DAT_00040b4c != 0) &&\n         (iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0)) {\n        uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,param_2,0,uVar13,iVar12);\n        return 0;\n      }\n      if (DAT_00040b78 != 0 || DAT_00040b70 != 0) {\n        uVar39 = 0x2000;\n        if (local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc) {\n          uVar39 = local_b8;\n        }\n        piVar19 = (int *)xmalloc(uVar39);\n        iVar12 = (uint)DAT_00040b74 * 0x1010101;\n        if (uVar39 < 4) {\n          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }\n        }\n        else {\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }\n        iVar12 = param_2[0x1a];\n        if (iVar12 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);\n        }\n      }\n      iVar12 = (**(code **)(param_2[1] + 0xa8))(param_1,param_2);\n      if (iVar12 == 0) {\n        uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n        return 0;\n      }\n      if ((DAT_00040b64 != 0) &&\n         (iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0)) {\n        uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)\n        ;\n        FUN_0002c910(uVar13,iVar12);\n        if (*(int *)(param_2[1] + 4) != 5) {\n          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          FUN_0002c910(uVar13);\n          return 1;\n        }\n        uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)\n        ;\n        FUN_0002c910(uVar13);\n        *(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64;\n      }\n      return 1;\n    }\n    psVar43 = *(size_t **)(puVar42[5] + 0x54);\n    iVar12 = bfd_set_section_contents(param_2,psVar43,puVar42[4],0,0,puVar42[3],0);\n    local_6c = param_2;\n    if (iVar12 == 0) break;\n    puVar42 = (undefined4 *)*puVar42;\n  }" { (if_statement "if (puVar42 == (undefined4 *)0x0) {\n      uVar39 = 0;\n      if (DAT_00040bc4 != 0) {\n        uVar39 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n        if (((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))) {\n          if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }\n        }\n        else {\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        psVar43 = param_2;\n      }\n      if ((DAT_00040b4c != 0) &&\n         (iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0)) {\n        uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,param_2,0,uVar13,iVar12);\n        return 0;\n      }\n      if (DAT_00040b78 != 0 || DAT_00040b70 != 0) {\n        uVar39 = 0x2000;\n        if (local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc) {\n          uVar39 = local_b8;\n        }\n        piVar19 = (int *)xmalloc(uVar39);\n        iVar12 = (uint)DAT_00040b74 * 0x1010101;\n        if (uVar39 < 4) {\n          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }\n        }\n        else {\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }\n        iVar12 = param_2[0x1a];\n        if (iVar12 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);\n        }\n      }\n      iVar12 = (**(code **)(param_2[1] + 0xa8))(param_1,param_2);\n      if (iVar12 == 0) {\n        uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n        return 0;\n      }\n      if ((DAT_00040b64 != 0) &&\n         (iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0)) {\n        uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)\n        ;\n        FUN_0002c910(uVar13,iVar12);\n        if (*(int *)(param_2[1] + 4) != 5) {\n          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          FUN_0002c910(uVar13);\n          return 1;\n        }\n        uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)\n        ;\n        FUN_0002c910(uVar13);\n        *(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64;\n      }\n      return 1;\n    }" if (parenthesized_expression "(puVar42 == (undefined4 *)0x0)" ( (binary_expression "puVar42 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar39 = 0;\n      if (DAT_00040bc4 != 0) {\n        uVar39 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n        if (((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))) {\n          if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }\n        }\n        else {\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        psVar43 = param_2;\n      }\n      if ((DAT_00040b4c != 0) &&\n         (iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0)) {\n        uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,param_2,0,uVar13,iVar12);\n        return 0;\n      }\n      if (DAT_00040b78 != 0 || DAT_00040b70 != 0) {\n        uVar39 = 0x2000;\n        if (local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc) {\n          uVar39 = local_b8;\n        }\n        piVar19 = (int *)xmalloc(uVar39);\n        iVar12 = (uint)DAT_00040b74 * 0x1010101;\n        if (uVar39 < 4) {\n          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }\n        }\n        else {\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }\n        iVar12 = param_2[0x1a];\n        if (iVar12 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);\n        }\n      }\n      iVar12 = (**(code **)(param_2[1] + 0xa8))(param_1,param_2);\n      if (iVar12 == 0) {\n        uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n        return 0;\n      }\n      if ((DAT_00040b64 != 0) &&\n         (iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0)) {\n        uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)\n        ;\n        FUN_0002c910(uVar13,iVar12);\n        if (*(int *)(param_2[1] + 4) != 5) {\n          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          FUN_0002c910(uVar13);\n          return 1;\n        }\n        uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)\n        ;\n        FUN_0002c910(uVar13);\n        *(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64;\n      }\n      return 1;\n    }" { (expression_statement "uVar39 = 0;" (assignment_expression "uVar39 = 0" identifier = number_literal) ;) (if_statement "if (DAT_00040bc4 != 0) {\n        uVar39 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n        if (((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))) {\n          if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }\n        }\n        else {\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        psVar43 = param_2;\n      }" if (parenthesized_expression "(DAT_00040bc4 != 0)" ( (binary_expression "DAT_00040bc4 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar39 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n        if (((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))) {\n          if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }\n        }\n        else {\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        psVar43 = param_2;\n      }" { (expression_statement "uVar39 = bfd_get_section_by_name(param_2,".gnu.build.attributes");" (assignment_expression "uVar39 = 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 (((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))) {\n          if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }\n        }\n        else {\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }" if (parenthesized_expression "(((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0))))" ( (binary_expression "((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))" (parenthesized_expression "((uVar39 == 0) || (DAT_00040bc4 == 0))" ( (binary_expression "(uVar39 == 0) || (DAT_00040bc4 == 0)" (parenthesized_expression "(uVar39 == 0)" ( (binary_expression "uVar39 == 0" identifier == number_literal) )) || (parenthesized_expression "(DAT_00040bc4 == 0)" ( (binary_expression "DAT_00040bc4 == 0" identifier == number_literal) ))) )) || (parenthesized_expression "((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))" ( (parenthesized_expression "(*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0))" ( (binary_expression "*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)" (binary_expression "*(int *)(param_2[1] + 4) != 5" (pointer_expression "*(int *)(param_2[1] + 4)" * (cast_expression "(int *)(param_2[1] + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 4)" ( (binary_expression "param_2[1] + 4" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) )))) != number_literal) || (parenthesized_expression "(iVar12 = FUN_000176d0(), iVar12 == 0)" ( (comma_expression "iVar12 = FUN_000176d0(), iVar12 == 0" (assignment_expression "iVar12 = FUN_000176d0()" identifier = (call_expression "FUN_000176d0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar12 == 0" identifier == number_literal)) ))) )) ))) )) (compound_statement "{\n          if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }\n        }" { (if_statement "if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }" if (parenthesized_expression "(DAT_00040be4 == 0)" ( (binary_expression "DAT_00040be4 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }" { (expression_statement "uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);" (assignment_expression "uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0)" identifier = (call_expression "dcgettext(0,"could not find any mergeable note sections",5,0)" identifier (argument_list "(0,"could not find any mergeable note sections",5,0)" ( number_literal , (string_literal ""could not find any mergeable note sections"" " string_content ") , number_literal , number_literal )))) ;) (expression_statement "FUN_0002d3a0(0,param_2,uVar39,uVar13);" (call_expression "FUN_0002d3a0(0,param_2,uVar39,uVar13)" identifier (argument_list "(0,param_2,uVar39,uVar13)" ( number_literal , identifier , identifier , identifier ))) ;) })) }) (else_clause "else {\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }" else (compound_statement "{\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }" { (expression_statement "iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);" (assignment_expression "iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12)" identifier = (call_expression "bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12)" identifier (argument_list "(param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12)" ( identifier , identifier , identifier , number_literal , number_literal , identifier , identifier , identifier )))) ;) (if_statement "if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }" { (expression_statement "uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);" (assignment_expression "uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0)" identifier = (call_expression "dcgettext(0,"error: failed to copy merged notes into output",5,0)" identifier (argument_list "(0,"error: failed to copy merged notes into output",5,0)" ( number_literal , (string_literal ""error: failed to copy merged notes into output"" " string_content ") , number_literal , number_literal )))) ;) (expression_statement "FUN_0002d3a0(0,param_2,uVar39,uVar13);" (call_expression "FUN_0002d3a0(0,param_2,uVar39,uVar13)" identifier (argument_list "(0,param_2,uVar39,uVar13)" ( number_literal , identifier , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) }))) (expression_statement "free(DAT_00040bc0);" (call_expression "free(DAT_00040bc0)" identifier (argument_list "(DAT_00040bc0)" ( identifier ))) ;) (expression_statement "DAT_00040bc0 = (void *)0x0;" (assignment_expression "DAT_00040bc0 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00040bc4 = 0;" (assignment_expression "DAT_00040bc4 = 0" identifier = number_literal) ;) (expression_statement "psVar43 = param_2;" (assignment_expression "psVar43 = param_2" identifier = identifier) ;) })) (if_statement "if ((DAT_00040b4c != 0) &&\n         (iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0)) {\n        uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,param_2,0,uVar13,iVar12);\n        return 0;\n      }" if (parenthesized_expression "((DAT_00040b4c != 0) &&\n         (iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0))" ( (binary_expression "(DAT_00040b4c != 0) &&\n         (iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0)" (parenthesized_expression "(DAT_00040b4c != 0)" ( (binary_expression "DAT_00040b4c != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0)" ( (comma_expression "iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0" (assignment_expression "iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c)" identifier = (call_expression "bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c)" identifier (argument_list "(param_2,iVar31,DAT_00040b4c)" ( identifier , identifier , identifier )))) , (comma_expression "iVar12 = DAT_00040b4c, iVar31 == 0" (assignment_expression "iVar12 = DAT_00040b4c" identifier = identifier) , (binary_expression "iVar31 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n        uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,param_2,0,uVar13,iVar12);\n        return 0;\n      }" { (expression_statement "uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0);" (assignment_expression "uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0)" identifier = (call_expression "dcgettext(0,"cannot fill debug link section `%s\'",5,0)" identifier (argument_list "(0,"cannot fill debug link section `%s\'",5,0)" ( number_literal , (string_literal ""cannot fill debug link section `%s\'"" " string_content escape_sequence ") , number_literal , number_literal )))) ;) (expression_statement "FUN_0002d3a0(0,param_2,0,uVar13,iVar12);" (call_expression "FUN_0002d3a0(0,param_2,0,uVar13,iVar12)" identifier (argument_list "(0,param_2,0,uVar13,iVar12)" ( number_literal , identifier , number_literal , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (DAT_00040b78 != 0 || DAT_00040b70 != 0) {\n        uVar39 = 0x2000;\n        if (local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc) {\n          uVar39 = local_b8;\n        }\n        piVar19 = (int *)xmalloc(uVar39);\n        iVar12 = (uint)DAT_00040b74 * 0x1010101;\n        if (uVar39 < 4) {\n          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }\n        }\n        else {\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }\n        iVar12 = param_2[0x1a];\n        if (iVar12 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);\n        }\n      }" if (parenthesized_expression "(DAT_00040b78 != 0 || DAT_00040b70 != 0)" ( (binary_expression "DAT_00040b78 != 0 || DAT_00040b70 != 0" (binary_expression "DAT_00040b78 != 0" identifier != number_literal) || (binary_expression "DAT_00040b70 != 0" identifier != number_literal)) )) (compound_statement "{\n        uVar39 = 0x2000;\n        if (local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc) {\n          uVar39 = local_b8;\n        }\n        piVar19 = (int *)xmalloc(uVar39);\n        iVar12 = (uint)DAT_00040b74 * 0x1010101;\n        if (uVar39 < 4) {\n          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }\n        }\n        else {\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }\n        iVar12 = param_2[0x1a];\n        if (iVar12 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);\n        }\n      }" { (expression_statement "uVar39 = 0x2000;" (assignment_expression "uVar39 = 0x2000" identifier = number_literal) ;) (if_statement "if (local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc) {\n          uVar39 = local_b8;\n        }" if (parenthesized_expression "(local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc)" ( (binary_expression "local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc" (binary_expression "local_bc == 0" identifier == number_literal) && (binary_expression "(uint)(0x2000 < local_b8) <= -local_bc" (call_expression "(uint)(0x2000 < local_b8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x2000 < local_b8)" ( (binary_expression "0x2000 < local_b8" number_literal < identifier) ))) <= (unary_expression "-local_bc" - identifier))) )) (compound_statement "{\n          uVar39 = local_b8;\n        }" { (expression_statement "uVar39 = local_b8;" (assignment_expression "uVar39 = local_b8" identifier = identifier) ;) })) (expression_statement "piVar19 = (int *)xmalloc(uVar39);" (assignment_expression "piVar19 = (int *)xmalloc(uVar39)" identifier = (cast_expression "(int *)xmalloc(uVar39)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(uVar39)" identifier (argument_list "(uVar39)" ( identifier ))))) ;) (expression_statement "iVar12 = (uint)DAT_00040b74 * 0x1010101;" (assignment_expression "iVar12 = (uint)DAT_00040b74 * 0x1010101" identifier = (binary_expression "(uint)DAT_00040b74 * 0x1010101" (cast_expression "(uint)DAT_00040b74" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) ;) (if_statement "if (uVar39 < 4) {\n          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }\n        }\n        else {\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }" if (parenthesized_expression "(uVar39 < 4)" ( (binary_expression "uVar39 < 4" identifier < number_literal) )) (compound_statement "{\n          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }\n        }" { (if_statement "if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }" if (parenthesized_expression "((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0))" ( (binary_expression "(uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)" (parenthesized_expression "(uVar39 != 0)" ( (binary_expression "uVar39 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)" ( (comma_expression "*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0" (assignment_expression "*(char *)piVar19 = (char)iVar12" (pointer_expression "*(char *)piVar19" * (cast_expression "(char *)piVar19" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(char)iVar12" ( (type_descriptor "char" primitive_type) ) identifier)) , (binary_expression "(uVar39 & 2) != 0" (parenthesized_expression "(uVar39 & 2)" ( (binary_expression "uVar39 & 2" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }" { (expression_statement "*(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;" (assignment_expression "*(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12" (pointer_expression "*(short *)((undefined1 *)((int)piVar19 + -2) + uVar39)" * (cast_expression "(short *)((undefined1 *)((int)piVar19 + -2) + uVar39)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((undefined1 *)((int)piVar19 + -2) + uVar39)" ( (binary_expression "(undefined1 *)((int)piVar19 + -2) + uVar39" (cast_expression "(undefined1 *)((int)piVar19 + -2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar19 + -2)" ( (binary_expression "(int)piVar19 + -2" (cast_expression "(int)piVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) + identifier) )))) = (cast_expression "(short)iVar12" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) })) }) (else_clause "else {\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }" else (compound_statement "{\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }" { (expression_statement "*piVar19 = iVar12;" (assignment_expression "*piVar19 = iVar12" (pointer_expression "*piVar19" * identifier) = identifier) ;) (expression_statement "*(int *)((int)(piVar19 + -1) + uVar39) = iVar12;" (assignment_expression "*(int *)((int)(piVar19 + -1) + uVar39) = iVar12" (pointer_expression "*(int *)((int)(piVar19 + -1) + uVar39)" * (cast_expression "(int *)((int)(piVar19 + -1) + uVar39)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(piVar19 + -1) + uVar39)" ( (binary_expression "(int)(piVar19 + -1) + uVar39" (cast_expression "(int)(piVar19 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar19 + -1)" ( (binary_expression "piVar19 + -1" identifier + number_literal) ))) + identifier) )))) = identifier) ;) (expression_statement "psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);" (assignment_expression "psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc)" identifier = (cast_expression "(size_t *)((uint)(piVar19 + 1) & 0xfffffffc)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(piVar19 + 1) & 0xfffffffc)" ( (binary_expression "(uint)(piVar19 + 1) & 0xfffffffc" (call_expression "(uint)(piVar19 + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar19 + 1)" ( (binary_expression "piVar19 + 1" identifier + number_literal) ))) & number_literal) )))) ;) (for_statement "for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }" for ( (assignment_expression "uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2" identifier = (binary_expression "(uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2" (call_expression "(uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc)))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc)))" ( (binary_expression "(int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))" (cast_expression "(int)piVar19" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))" ( (binary_expression "uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc)" identifier - (cast_expression "(int)((uint)(piVar19 + 1) & 0xfffffffc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uint)(piVar19 + 1) & 0xfffffffc)" ( (binary_expression "(uint)(piVar19 + 1) & 0xfffffffc" (call_expression "(uint)(piVar19 + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar19 + 1)" ( (binary_expression "piVar19 + 1" identifier + number_literal) ))) & number_literal) )))) ))) ))) >> number_literal)) ; (binary_expression "uVar17 != 0" identifier != number_literal) ; (assignment_expression "uVar17 = uVar17 - 1" identifier = (binary_expression "uVar17 - 1" identifier - number_literal)) ) (compound_statement "{\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }" { (expression_statement "*psVar43 = iVar12;" (assignment_expression "*psVar43 = iVar12" (pointer_expression "*psVar43" * identifier) = identifier) ;) (expression_statement "psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);" (assignment_expression "psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1)" identifier = (cast_expression "(size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int *)psVar43 + (uint)bVar48 * -2 + 1)" ( (binary_expression "(int *)psVar43 + (uint)bVar48 * -2 + 1" (binary_expression "(int *)psVar43 + (uint)bVar48 * -2" (cast_expression "(int *)psVar43" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) + (binary_expression "(uint)bVar48 * -2" (cast_expression "(uint)bVar48" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) })) }))) (expression_statement "iVar12 = param_2[0x1a];" (assignment_expression "iVar12 = param_2[0x1a]" identifier = (subscript_expression "param_2[0x1a]" identifier [ number_literal ])) ;) (if_statement "if (iVar12 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);\n        }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n          local_64 = (int *)0x0;\n          do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);\n        }" { (expression_statement "local_64 = (int *)0x0;" (assignment_expression "local_64 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);" do (compound_statement "{\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          }" { (expression_statement "piVar1 = local_64;" (assignment_expression "piVar1 = local_64" identifier = identifier) ;) (expression_statement "psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);" (assignment_expression "psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4)" identifier = (pointer_expression "*(size_t **)((int)local_b4 + (int)local_64 * 8 + 4)" * (cast_expression "(size_t **)((int)local_b4 + (int)local_64 * 8 + 4)" ( (type_descriptor "size_t **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_b4 + (int)local_64 * 8 + 4)" ( (binary_expression "(int)local_b4 + (int)local_64 * 8 + 4" (binary_expression "(int)local_b4 + (int)local_64 * 8" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_64 * 8" (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) ))))) ;) (expression_statement "uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);" (assignment_expression "uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8)" identifier = (pointer_expression "*(uint *)((int)local_b4 + (int)local_64 * 8)" * (cast_expression "(uint *)((int)local_b4 + (int)local_64 * 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + (int)local_64 * 8)" ( (binary_expression "(int)local_b4 + (int)local_64 * 8" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_64 * 8" (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (if_statement "if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }" if (parenthesized_expression "(psVar43 != (size_t *)0x0 || uVar39 != 0)" ( (binary_expression "psVar43 != (size_t *)0x0 || uVar39 != 0" (binary_expression "psVar43 != (size_t *)0x0" identifier != (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "uVar39 != 0" identifier != number_literal)) )) (compound_statement "{\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }" { (expression_statement "piVar4 = (int *)(local_a8 + (int)local_64);" (assignment_expression "piVar4 = (int *)(local_a8 + (int)local_64)" identifier = (cast_expression "(int *)(local_a8 + (int)local_64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8 + (int)local_64)" ( (binary_expression "local_a8 + (int)local_64" identifier + (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_64 = (int *)local_a8[(int)local_64];" (assignment_expression "local_64 = (int *)local_a8[(int)local_64]" identifier = (cast_expression "(int *)local_a8[(int)local_64]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_a8[(int)local_64]" identifier [ (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (expression_statement "local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);" (assignment_expression "local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39)" identifier = (cast_expression "(size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)((int)local_64 + 0x2c) - uVar39)" ( (binary_expression "*(uint *)((int)local_64 + 0x2c) - uVar39" (pointer_expression "*(uint *)((int)local_64 + 0x2c)" * (cast_expression "(uint *)((int)local_64 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_64 + 0x2c)" ( (binary_expression "(int)local_64 + 0x2c" (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) - identifier) )))) ;) (expression_statement "local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);" (assignment_expression "local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39)" identifier = (binary_expression "(*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39)" (parenthesized_expression "(*(int *)((int)local_64 + 0x30) - (int)psVar43)" ( (binary_expression "*(int *)((int)local_64 + 0x30) - (int)psVar43" (pointer_expression "*(int *)((int)local_64 + 0x30)" * (cast_expression "(int *)((int)local_64 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_64 + 0x30)" ( (binary_expression "(int)local_64 + 0x30" (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) - (cast_expression "(int)psVar43" ( (type_descriptor "int" primitive_type) ) identifier)) )) - (call_expression "(uint)(*(uint *)((int)local_64 + 0x2c) < uVar39)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)((int)local_64 + 0x2c) < uVar39)" ( (binary_expression "*(uint *)((int)local_64 + 0x2c) < uVar39" (pointer_expression "*(uint *)((int)local_64 + 0x2c)" * (cast_expression "(uint *)((int)local_64 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_64 + 0x2c)" ( (binary_expression "(int)local_64 + 0x2c" (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) < identifier) ))))) ;) (while_statement "while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }" { (expression_statement "piVar24 = (int *)psVar43;" (assignment_expression "piVar24 = (int *)psVar43" identifier = (cast_expression "(int *)psVar43" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uVar17 = uVar39;" (assignment_expression "uVar17 = uVar39" identifier = identifier) ;) (if_statement "if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }" if (parenthesized_expression "(psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39))" ( (binary_expression "psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)" (binary_expression "psVar43 != (size_t *)0x0" identifier != (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "(uint)-(int)psVar43 < (uint)(0x2000 < uVar39)" (binary_expression "(uint)-(int)psVar43" (parenthesized_expression "(uint)" ( identifier )) - (cast_expression "(int)psVar43" ( (type_descriptor "int" primitive_type) ) identifier)) < (call_expression "(uint)(0x2000 < uVar39)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x2000 < uVar39)" ( (binary_expression "0x2000 < uVar39" number_literal < identifier) ))))) )) (compound_statement "{\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }" { (expression_statement "uVar17 = 0x2000;" (assignment_expression "uVar17 = 0x2000" identifier = number_literal) ;) (expression_statement "piVar24 = (int *)0x0;" (assignment_expression "piVar24 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);" (assignment_expression "iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24)" identifier = (call_expression "bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24)" identifier (argument_list "(param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (compound_statement "{\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }" { (expression_statement "FUN_0002d3a0(0,param_2,*piVar4,0);" (call_expression "FUN_0002d3a0(0,param_2,*piVar4,0)" identifier (argument_list "(0,param_2,*piVar4,0)" ( number_literal , identifier , (pointer_expression "*piVar4" * identifier) , number_literal ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar46 = uVar39 < uVar17;" (assignment_expression "bVar46 = uVar39 < uVar17" identifier = (binary_expression "uVar39 < uVar17" identifier < identifier)) ;) (expression_statement "uVar39 = uVar39 - uVar17;" (assignment_expression "uVar39 = uVar39 - uVar17" identifier = (binary_expression "uVar39 - uVar17" identifier - identifier)) ;) (expression_statement "psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));" (assignment_expression "psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24))" identifier = (cast_expression "(size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24))" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar43 + (-(uint)bVar46 - (int)piVar24))" ( (binary_expression "(int)psVar43 + (-(uint)bVar46 - (int)piVar24)" (cast_expression "(int)psVar43" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(uint)bVar46 - (int)piVar24)" ( (binary_expression "-(uint)bVar46 - (int)piVar24" (unary_expression "-(uint)bVar46" - (cast_expression "(uint)bVar46" ( (type_descriptor "uint" type_identifier) ) identifier)) - (cast_expression "(int)piVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "bVar46 = CARRY4((uint)local_6c,uVar17);" (assignment_expression "bVar46 = CARRY4((uint)local_6c,uVar17)" identifier = (call_expression "CARRY4((uint)local_6c,uVar17)" identifier (argument_list "((uint)local_6c,uVar17)" ( (cast_expression "(uint)local_6c" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier )))) ;) (expression_statement "local_6c = (size_t *)((int)local_6c + uVar17);" (assignment_expression "local_6c = (size_t *)((int)local_6c + uVar17)" identifier = (cast_expression "(size_t *)((int)local_6c + uVar17)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_6c + uVar17)" ( (binary_expression "(int)local_6c + uVar17" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "local_68 = (int)piVar24 + (uint)bVar46 + local_68;" (assignment_expression "local_68 = (int)piVar24 + (uint)bVar46 + local_68" identifier = (binary_expression "(int)piVar24 + (uint)bVar46 + local_68" (binary_expression "(int)piVar24 + (uint)bVar46" (cast_expression "(int)piVar24" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(uint)bVar46" ( (type_descriptor "uint" type_identifier) ) identifier)) + identifier)) ;) (if_statement "if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;" if (parenthesized_expression "(psVar43 == (size_t *)0x0 && uVar39 == 0)" ( (binary_expression "psVar43 == (size_t *)0x0 && uVar39 == 0" (binary_expression "psVar43 == (size_t *)0x0" identifier == (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "uVar39 == 0" identifier == number_literal)) )) (break_statement "break;" break ;)) (expression_statement "local_64 = (int *)local_a8[(int)piVar1];" (assignment_expression "local_64 = (int *)local_a8[(int)piVar1]" identifier = (cast_expression "(int *)local_a8[(int)piVar1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_a8[(int)piVar1]" identifier [ (cast_expression "(int)piVar1" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) })) })) (expression_statement "local_64 = (int *)((int)piVar1 + 1);" (assignment_expression "local_64 = (int *)((int)piVar1 + 1)" identifier = (cast_expression "(int *)((int)piVar1 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar1 + 1)" ( (binary_expression "(int)piVar1 + 1" (cast_expression "(int)piVar1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((int *)iVar12 != local_64)" ( (binary_expression "(int *)iVar12 != local_64" (cast_expression "(int *)iVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) ;) })) })) (expression_statement "iVar12 = (**(code **)(param_2[1] + 0xa8))(param_1,param_2);" (assignment_expression "iVar12 = (**(code **)(param_2[1] + 0xa8))(param_1,param_2)" identifier = (call_expression "(**(code **)(param_2[1] + 0xa8))(param_1,param_2)" (parenthesized_expression "(**(code **)(param_2[1] + 0xa8))" ( (pointer_expression "**(code **)(param_2[1] + 0xa8)" * (pointer_expression "*(code **)(param_2[1] + 0xa8)" * (cast_expression "(code **)(param_2[1] + 0xa8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2[1] + 0xa8)" ( (binary_expression "param_2[1] + 0xa8" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (if_statement "if (iVar12 == 0) {\n        uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n        return 0;\n      }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n        return 0;\n      }" { (expression_statement "uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43);" (assignment_expression "uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43)" identifier = (call_expression "dcgettext(0,"error copying private BFD data",5,psVar43)" identifier (argument_list "(0,"error copying private BFD data",5,psVar43)" ( number_literal , (string_literal ""error copying private BFD data"" " string_content ") , number_literal , identifier )))) ;) (expression_statement "FUN_0002d3a0(0,param_2,0,uVar13);" (call_expression "FUN_0002d3a0(0,param_2,0,uVar13)" identifier (argument_list "(0,param_2,0,uVar13)" ( number_literal , identifier , number_literal , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((DAT_00040b64 != 0) &&\n         (iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0)) {\n        uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)\n        ;\n        FUN_0002c910(uVar13,iVar12);\n        if (*(int *)(param_2[1] + 4) != 5) {\n          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          FUN_0002c910(uVar13);\n          return 1;\n        }\n        uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)\n        ;\n        FUN_0002c910(uVar13);\n        *(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64;\n      }" if (parenthesized_expression "((DAT_00040b64 != 0) &&\n         (iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0))" ( (binary_expression "(DAT_00040b64 != 0) &&\n         (iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0)" (parenthesized_expression "(DAT_00040b64 != 0)" ( (binary_expression "DAT_00040b64 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0)" ( (comma_expression "iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0" (assignment_expression "iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39)" identifier = (call_expression "bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39)" identifier (argument_list "(param_2,DAT_00040b64,uVar39,uVar39)" ( identifier , identifier , identifier , identifier )))) , (comma_expression "iVar12 = DAT_00040b64,\n         iVar31 == 0" (assignment_expression "iVar12 = DAT_00040b64" identifier = identifier) , (binary_expression "iVar31 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n        uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)\n        ;\n        FUN_0002c910(uVar13,iVar12);\n        if (*(int *)(param_2[1] + 4) != 5) {\n          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          FUN_0002c910(uVar13);\n          return 1;\n        }\n        uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)\n        ;\n        FUN_0002c910(uVar13);\n        *(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64;\n      }" { (expression_statement "uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)\n        ;" (assignment_expression "uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)" identifier = (call_expression "dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)" identifier (argument_list "(0,"this target does not support %lu alternative machine codes",5,psVar43)" ( number_literal , (string_literal ""this target does not support %lu alternative machine codes"" " string_content ") , number_literal , identifier )))) ;) (expression_statement "FUN_0002c910(uVar13,iVar12);" (call_expression "FUN_0002c910(uVar13,iVar12)" identifier (argument_list "(uVar13,iVar12)" ( identifier , identifier ))) ;) (if_statement "if (*(int *)(param_2[1] + 4) != 5) {\n          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          FUN_0002c910(uVar13);\n          return 1;\n        }" if (parenthesized_expression "(*(int *)(param_2[1] + 4) != 5)" ( (binary_expression "*(int *)(param_2[1] + 4) != 5" (pointer_expression "*(int *)(param_2[1] + 4)" * (cast_expression "(int *)(param_2[1] + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 4)" ( (binary_expression "param_2[1] + 4" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) )))) != number_literal) )) (compound_statement "{\n          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          FUN_0002c910(uVar13);\n          return 1;\n        }" { (expression_statement "uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);" (assignment_expression "uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00)" identifier = (call_expression "dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00)" identifier (argument_list "(0,"ignoring the alternative value",5,extraout_ECX_00)" ( number_literal , (string_literal ""ignoring the alternative value"" " string_content ") , number_literal , identifier )))) ;) (expression_statement "FUN_0002c910(uVar13);" (call_expression "FUN_0002c910(uVar13)" identifier (argument_list "(uVar13)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)\n        ;" (assignment_expression "uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)" identifier = (call_expression "dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)" identifier (argument_list "(0,"treating that number as an absolute e_machine value instead",5,iVar12)" ( number_literal , (string_literal ""treating that number as an absolute e_machine value instead"" " string_content ") , number_literal , identifier )))) ;) (expression_statement "FUN_0002c910(uVar13);" (call_expression "FUN_0002c910(uVar13)" identifier (argument_list "(uVar13)" ( identifier ))) ;) (expression_statement "*(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64;" (assignment_expression "*(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64" (pointer_expression "*(short *)(param_2[0x28] + 0x32)" * (cast_expression "(short *)(param_2[0x28] + 0x32)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[0x28] + 0x32)" ( (binary_expression "param_2[0x28] + 0x32" (subscript_expression "param_2[0x28]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(short)DAT_00040b64" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) })) (return_statement "return 1;" return number_literal ;) })) (expression_statement "psVar43 = *(size_t **)(puVar42[5] + 0x54);" (assignment_expression "psVar43 = *(size_t **)(puVar42[5] + 0x54)" identifier = (pointer_expression "*(size_t **)(puVar42[5] + 0x54)" * (cast_expression "(size_t **)(puVar42[5] + 0x54)" ( (type_descriptor "size_t **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar42[5] + 0x54)" ( (binary_expression "puVar42[5] + 0x54" (subscript_expression "puVar42[5]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "iVar12 = bfd_set_section_contents(param_2,psVar43,puVar42[4],0,0,puVar42[3],0);" (assignment_expression "iVar12 = bfd_set_section_contents(param_2,psVar43,puVar42[4],0,0,puVar42[3],0)" identifier = (call_expression "bfd_set_section_contents(param_2,psVar43,puVar42[4],0,0,puVar42[3],0)" identifier (argument_list "(param_2,psVar43,puVar42[4],0,0,puVar42[3],0)" ( identifier , identifier , (subscript_expression "puVar42[4]" identifier [ number_literal ]) , number_literal , number_literal , (subscript_expression "puVar42[3]" identifier [ number_literal ]) , number_literal )))) ;) (expression_statement "local_6c = param_2;" (assignment_expression "local_6c = param_2" identifier = identifier) ;) (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "puVar42 = (undefined4 *)*puVar42;" (assignment_expression "puVar42 = (undefined4 *)*puVar42" identifier = (cast_expression "(undefined4 *)*puVar42" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar42" * identifier))) ;) })) (labeled_statement "LAB_00019fa0:\n  FUN_0002d3a0(0,local_6c,psVar43,0);" statement_identifier : (expression_statement "FUN_0002d3a0(0,local_6c,psVar43,0);" (call_expression "FUN_0002d3a0(0,local_6c,psVar43,0)" identifier (argument_list "(0,local_6c,psVar43,0)" ( number_literal , identifier , identifier , number_literal ))) ;)) (return_statement "return iVar12;" return identifier ;) (labeled_statement "LAB_0001b1a6:\n  if ((undefined1 *)((int)pvVar32 + sVar54) <= puVar45) goto LAB_0001b1aa;" statement_identifier : (if_statement "if ((undefined1 *)((int)pvVar32 + sVar54) <= puVar45) goto LAB_0001b1aa;" if (parenthesized_expression "((undefined1 *)((int)pvVar32 + sVar54) <= puVar45)" ( (binary_expression "(undefined1 *)((int)pvVar32 + sVar54) <= puVar45" (cast_expression "(undefined1 *)((int)pvVar32 + sVar54)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar32 + sVar54)" ( (binary_expression "(int)pvVar32 + sVar54" (cast_expression "(int)pvVar32" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))) <= identifier) )) (goto_statement "goto LAB_0001b1aa;" goto statement_identifier ;))) (expression_statement "*puVar45 = (char)uVar17;" (assignment_expression "*puVar45 = (char)uVar17" (pointer_expression "*puVar45" * identifier) = (cast_expression "(char)uVar17" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (uVar17 == 0) goto LAB_0001b1aa;" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001b1aa;" goto statement_identifier ;)) (expression_statement "uVar17 = uVar17 >> 8;" (assignment_expression "uVar17 = uVar17 >> 8" identifier = (binary_expression "uVar17 >> 8" identifier >> number_literal)) ;) (expression_statement "puVar45 = puVar45 + 1;" (assignment_expression "puVar45 = puVar45 + 1" identifier = (binary_expression "puVar45 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_0001b1a6;" goto statement_identifier ;) (labeled_statement "LAB_0001b1aa:\n  bVar46 = true;" statement_identifier : (expression_statement "bVar46 = true;" (assignment_expression "bVar46 = true" identifier = true) ;)) (expression_statement "psVar9[0xe] = 0;" (assignment_expression "psVar9[0xe] = 0" (subscript_expression "psVar9[0xe]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0001afd1;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nbfd_boolean __regparm3 copy_object(bfd *ibfd,bfd *obfd,bfd_arch_info_type *input_arch)\n\n{\n  bfd_vma *pbVar1;\n  void *__dest;\n  asymbol **ppaVar2;\n  asymbol **ppaVar3;\n  int *piVar4;\n  bfd_byte bVar5;\n  byte bVar6;\n  char cVar7;\n  bfd_endian bVar8;\n  bfd_endian bVar9;\n  pe_tdata *ppVar10;\n  reloc_cache_entry *prVar11;\n  reloc_cache_entry *prVar12;\n  bfd_target *pbVar13;\n  bfd_section *pbVar14;\n  _func_void_bfd_vma_void_ptr *p_Var15;\n  bfd_flavour bVar16;\n  section_add *psVar17;\n  section_rename *psVar18;\n  undefined1 uVar19;\n  undefined1 uVar20;\n  asection *paVar21;\n  int iVar22;\n  bfd_architecture bVar23;\n  ulong uVar24;\n  bfd_boolean bVar25;\n  char *pcVar26;\n  char *pcVar27;\n  long lVar28;\n  section_list *psVar29;\n  asection *paVar30;\n  FILE *__s;\n  char *pcVar31;\n  undefined4 uVar32;\n  undefined4 uVar33;\n  asymbol **ppaVar34;\n  bfd_section *pbVar35;\n  asymbol *paVar36;\n  size_t sVar37;\n  size_t sVar38;\n  bfd_byte *pbVar39;\n  asymbol *paVar40;\n  undefined4 *puVar41;\n  reloc_cache_entry *prVar42;\n  int iVar43;\n  int *piVar44;\n  char *pcVar45;\n  bfd *pbVar46;\n  char *pcVar47;\n  uint uVar48;\n  void *pvVar49;\n  asection *sec_1;\n  bfd_section *pbVar50;\n  undefined4 extraout_ECX;\n  asection *sec_1_00;\n  undefined4 extraout_ECX_00;\n  char *extraout_ECX_01;\n  char *extraout_ECX_02;\n  asection *paVar51;\n  int iVar52;\n  asection *paVar53;\n  void *pvVar54;\n  uint uVar55;\n  addsym_node *ptr;\n  bfd_byte *pbVar56;\n  section_add *psVar57;\n  byte *pbVar58;\n  uint *puVar59;\n  uint uVar60;\n  reloc_cache_entry *prVar61;\n  reloc_cache_entry *prVar62;\n  uint uVar63;\n  uint uVar64;\n  byte *pbVar65;\n  internal_extra_pe_aouthdr *piVar66;\n  uint uVar67;\n  asection *paVar68;\n  bool bVar69;\n  bool bVar70;\n  byte bVar71;\n  bfd_vma bVar72;\n  bfd_uint64_t bVar73;\n  bfd_uint64_t bVar74;\n  void *pvVar75;\n  bfd_section *in_stack_ffffff24;\n  asection *in_stack_ffffff28;\n  char *local_cc;\n  char *local_c4;\n  void *local_c0;\n  uint local_bc;\n  asection *local_b8;\n  void *local_b4;\n  asection *local_a8;\n  int local_a4;\n  int local_8c;\n  asymbol **local_84;\n  char *local_7c;\n  asection *local_78;\n  asection *local_74;\n  bfd_section *local_6c;\n  int local_68;\n  int *local_64;\n  bfd_byte *syms;\n  bfd_byte *strings;\n  char file_alignment [20];\n  bfd_byte *contents;\n  undefined4 local_30;\n  undefined4 uStack_14;\n  \n  bVar71 = 0;\n  uStack_14 = 0x1892b;\n  bVar8 = ibfd->xvec->byteorder;\n  bVar9 = obfd->xvec->byteorder;\n  if ((bVar8 != bVar9 && bVar8 != BFD_ENDIAN_UNKNOWN) && (bVar9 != BFD_ENDIAN_UNKNOWN)) {\n    pcVar27 = (char *)dcgettext(0,"Unable to change endianness of input file(s)",5);\n    non_fatal(pcVar27);\n    return 0;\n  }\n  iVar22 = bfd_set_format(obfd,ibfd->field_0x28 & 7);\n  if (iVar22 == 0) {\n    bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,(char *)0x0);\n    return 0;\n  }\n  if (ibfd->sections == (bfd_section *)0x0) {\n    pcVar26 = bfd_get_archive_filename(ibfd);\n    pcVar27 = "error: the input file \'%s\' has no sections";\n    goto LAB_00018f38;\n  }\n  if (ibfd->xvec->flavour != bfd_target_elf_flavour) {\n    if ((do_debug_sections != _sch_isblank) && ((do_debug_sections & _sch_isblank) != nothing)) {\n      pcVar26 = bfd_get_archive_filename(ibfd);\n      pcVar27 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\nLAB_00018f38:\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      non_fatal(pcVar27,pcVar26);\n      return 0;\n    }\n    if (do_elf_stt_common != unchanged) {\n      pcVar26 = bfd_get_archive_filename(ibfd);\n      pcVar27 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      goto LAB_00018f38;\n    }\n  }\n  if (verbose != 0) {\n    pcVar27 = ibfd->xvec->name;\n    pcVar26 = obfd->xvec->name;\n    pcVar45 = obfd->filename;\n    pcVar47 = bfd_get_archive_filename(ibfd);\n    pcVar31 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n    printf(pcVar31,pcVar47,pcVar27,pcVar45,pcVar26);\n  }\n  iVar22 = 0;\n  iVar52 = 0;\n  if (extract_symbol == 0) {\n    uVar63 = (uint)set_start;\n    iVar52 = set_start._4_4_;\n    if (set_start_set == 0) {\n      uVar63 = (uint)ibfd->start_address;\n      iVar52 = *(int *)((int)&ibfd->start_address + 4);\n    }\n    iVar22 = uVar63 + (uint)change_start;\n    iVar52 = iVar52 + change_start._4_4_ + (uint)CARRY4(uVar63,(uint)change_start);\n  }\n  if ((obfd->field_0x28 & 7) != 3) {\n    uVar63 = ~bfd_flags_to_clear & obfd->xvec->object_flags &\n             (*(uint *)&ibfd->field_0x28 >> 5 & 0xfffff | bfd_flags_to_set);\n    if (strip_symbols == STRIP_ALL) {\n      uVar63 = uVar63 & 0xfffffffe;\n    }\n    iVar22 = bfd_set_start_address(obfd,iVar22,iVar52);\n    if ((iVar22 == 0) || (iVar22 = bfd_set_file_flags(obfd,uVar63), iVar22 == 0)) goto LAB_00018b70;\n  }\n  bVar23 = bfd_get_arch(ibfd);\n  uVar24 = bfd_get_mach(ibfd);\n  if (input_arch != (bfd_arch_info_type *)0x0) {\n    iVar22 = bfd_get_arch_info(ibfd);\n    if ((iVar22 == 0) || (iVar22 = bfd_get_arch_info(ibfd), *(int *)(iVar22 + 0xc) == 0)) {\n      bVar23 = input_arch->arch;\n      uVar24 = input_arch->mach;\n    }\n    else {\n      pcVar27 = bfd_get_archive_filename(ibfd);\n      pcVar26 = (char *)dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n      non_fatal(pcVar26,pcVar27);\n    }\n  }\n  bVar25 = (*obfd->xvec->_bfd_set_arch_mach)(obfd,bVar23,uVar24);\n  if (bVar25 == 0) {\n    if ((ibfd->field_0x2b & 4) != 0) {\nLAB_00018b20:\n      iVar22 = bfd_get_arch(ibfd);\n      if (iVar22 == 0) {\n        pcVar26 = bfd_get_archive_filename(ibfd);\n        pcVar27 = "Unable to recognise the format of the input file `%s\'";\n      }\n      else {\n        uVar32 = bfd_get_mach(ibfd);\n        uVar33 = bfd_get_arch(ibfd);\n        pcVar26 = (char *)bfd_printable_arch_mach(uVar33,uVar32);\n        pcVar27 = "Output file cannot represent architecture `%s\'";\n      }\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      non_fatal(pcVar27,pcVar26);\n      return 0;\n    }\n    iVar22 = bfd_get_arch(ibfd);\n    iVar52 = bfd_get_arch(obfd);\n    if (iVar22 != iVar52) goto LAB_00018b20;\n  }\n  iVar22 = bfd_set_format(obfd,ibfd->field_0x28 & 7);\n  if (iVar22 == 0) {\nLAB_00018b70:\n    bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,(char *)0x0);\n    return 0;\n  }\n  bVar16 = obfd->xvec->flavour;\n  bVar69 = bVar16 < bfd_target_coff_flavour;\n  bVar70 = bVar16 == bfd_target_coff_flavour;\n  if (bVar70) {\n    iVar22 = 4;\n    pbVar58 = (byte *)obfd->xvec->name;\n    pbVar65 = &DAT_0002f16a;\n    do {\n      if (iVar22 == 0) break;\n      iVar22 = iVar22 + -1;\n      bVar69 = *pbVar58 < *pbVar65;\n      bVar70 = *pbVar58 == *pbVar65;\n      pbVar58 = pbVar58 + (uint)bVar71 * -2 + 1;\n      pbVar65 = pbVar65 + (uint)bVar71 * -2 + 1;\n    } while (bVar70);\n    if ((!bVar69 && !bVar70) == bVar69) {\n      ppVar10 = (obfd->tdata).pe_obj_data;\n      bVar16 = ibfd->xvec->flavour;\n      bVar69 = bVar16 < bfd_target_coff_flavour;\n      bVar70 = bVar16 == bfd_target_coff_flavour;\n      if (bVar70) {\n        iVar22 = 4;\n        pbVar58 = (byte *)ibfd->xvec->name;\n        pbVar65 = &DAT_0002f16a;\n        do {\n          if (iVar22 == 0) break;\n          iVar22 = iVar22 + -1;\n          bVar69 = *pbVar58 < *pbVar65;\n          bVar70 = *pbVar58 == *pbVar65;\n          pbVar58 = pbVar58 + (uint)bVar71 * -2 + 1;\n          pbVar65 = pbVar65 + (uint)bVar71 * -2 + 1;\n        } while (bVar70);\n        if ((!bVar69 && !bVar70) == bVar69) {\n          puVar59 = &(((ibfd->tdata).elf_obj_data)->symtab_hdr).sh_link;\n          piVar66 = &ppVar10->pe_opthdr;\n          for (iVar22 = 0x52; iVar22 != 0; iVar22 = iVar22 + -1) {\n            uVar19 = *(undefined1 *)((int)puVar59 + 2);\n            uVar20 = *(undefined1 *)((int)puVar59 + 3);\n            piVar66->Magic = *(undefined2 *)puVar59;\n            piVar66->MajorLinkerVersion = uVar19;\n            piVar66->MinorLinkerVersion = uVar20;\n            puVar59 = puVar59 + (uint)bVar71 * -2 + 1;\n            piVar66 = (internal_extra_pe_aouthdr *)((int)piVar66 + (uint)bVar71 * -8 + 4);\n          }\n        }\n      }\n      uVar63 = pe_file_alignment._4_4_;\n      if ((pe_file_alignment._4_4_ & (uint)pe_file_alignment) == 0xffffffff) {\n        pe_file_alignment._0_4_ = 0x200;\n        pe_file_alignment._4_4_ = 0;\n      }\n      else {\n        *(uint *)&(ppVar10->pe_opthdr).FileAlignment = (uint)pe_file_alignment;\n        *(uint *)((int)&(ppVar10->pe_opthdr).FileAlignment + 4) = uVar63;\n      }\n      uVar63 = pe_heap_commit._4_4_;\n      if ((pe_heap_commit._4_4_ & (uint)pe_heap_commit) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfHeapCommit = (uint)pe_heap_commit;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4) = uVar63;\n      }\n      uVar63 = pe_heap_reserve._4_4_;\n      if ((pe_heap_reserve._4_4_ & (uint)pe_heap_reserve) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfHeapCommit = (uint)pe_heap_reserve;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4) = uVar63;\n      }\n      uVar63 = pe_image_base._4_4_;\n      if ((pe_image_base._4_4_ & (uint)pe_image_base) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).ImageBase = (uint)pe_image_base;\n        *(uint *)((int)&(ppVar10->pe_opthdr).ImageBase + 4) = uVar63;\n      }\n      uVar63 = pe_section_alignment._4_4_;\n      local_64 = (int *)(uint)pe_section_alignment;\n      if (((uint)pe_section_alignment & pe_section_alignment._4_4_) == 0xffffffff) {\n        pe_section_alignment._0_4_ = 0x1000;\n        uVar63 = 0;\n        pe_section_alignment._4_4_ = 0;\n        local_64 = (int *)0x1000;\n      }\n      else {\n        *(uint *)&(ppVar10->pe_opthdr).SectionAlignment = (uint)pe_section_alignment;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SectionAlignment + 4) = uVar63;\n      }\n      uVar48 = pe_stack_commit._4_4_;\n      if ((pe_stack_commit._4_4_ & (uint)pe_stack_commit) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfStackCommit = (uint)pe_stack_commit;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4) = uVar48;\n      }\n      uVar48 = pe_stack_reserve._4_4_;\n      if ((pe_stack_reserve._4_4_ & (uint)pe_stack_reserve) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfStackCommit = (uint)pe_stack_reserve;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4) = uVar48;\n      }\n      if (pe_subsystem != -1) {\n        (ppVar10->pe_opthdr).Subsystem = pe_subsystem;\n      }\n      if (pe_major_subsystem_version != -1) {\n        (ppVar10->pe_opthdr).MajorSubsystemVersion = pe_major_subsystem_version;\n      }\n      if (pe_minor_subsystem_version != -1) {\n        (ppVar10->pe_opthdr).MinorSubsystemVersion = pe_minor_subsystem_version;\n      }\n      if (uVar63 < pe_file_alignment._4_4_ ||\n          uVar63 - pe_file_alignment._4_4_ < (uint)(local_64 < (uint)pe_file_alignment)) {\n        sprintf(file_alignment,"%016llx",(uint)pe_file_alignment,pe_file_alignment._4_4_);\n        sprintf((char *)&contents,"%016llx",(uint)pe_section_alignment,pe_section_alignment._4_4_);\n        pcVar27 = (char *)dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5)\n        ;\n        non_fatal(pcVar27,file_alignment,&contents);\n      }\n    }\n  }\n  ppaVar34 = isympp;\n  if (isympp != (asymbol **)0x0) {\n    free(isympp);\n  }\n  if (ppaVar34 != osympp) {\n    free(osympp);\n  }\n  isympp = (asymbol **)0x0;\n  osympp = (asymbol **)0x0;\n  lVar28 = (*ibfd->xvec->_bfd_get_symtab_upper_bound)(ibfd);\n  if (lVar28 < 0) goto LAB_00018b70;\n  osympp = (asymbol **)xmalloc(lVar28);\n  isympp = osympp;\n  local_8c = (*ibfd->xvec->_bfd_canonicalize_symtab)(ibfd,osympp);\n  if (local_8c < 0) goto LAB_00018b70;\n  if (local_8c == 0) {\n    free(isympp);\n    isympp = (asymbol **)0x0;\n    osympp = (asymbol **)0x0;\n  }\n  bfd_map_over_sections(ibfd,setup_section,obfd);\n  psVar57 = add_sections;\n  if ((extract_symbol == 0) &&\n     (bVar25 = (*obfd->xvec->_bfd_copy_private_header_data)(ibfd,obfd), psVar57 = add_sections,\n     bVar25 == 0)) {\n    status = 1;\n    pcVar27 = (char *)dcgettext(0,"error in private header data",5);\n    bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar27);\n    psVar57 = add_sections;\n  }\n  for (; psVar17 = update_sections, psVar57 != (section_add *)0x0; psVar57 = psVar57->next) {\n    uVar63 = 0x128;\n    psVar29 = find_section_list(psVar57->name,0,0x40);\n    if (psVar29 != (section_list *)0x0) {\n      uVar63 = psVar29->flags | 0x100;\n    }\n    iVar22 = bfd_get_section_by_name(obfd,psVar57->name);\n    if (iVar22 != 0) {\n      pcVar26 = psVar57->name;\n      pcVar27 = "can\'t add section \'%s\'";\nLAB_00019591:\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27,pcVar26);\n      return 0;\n    }\n    paVar30 = (asection *)bfd_make_section_with_flags(obfd,psVar57->name,uVar63 | 0x100000);\n    psVar57->section = paVar30;\n    if (paVar30 == (asection *)0x0) {\n      pcVar26 = psVar57->name;\n      pcVar27 = "can\'t create section `%s\'";\n      goto LAB_00019591;\n    }\n    iVar22 = bfd_set_section_size(obfd,paVar30,psVar57->size,0);\n    if (iVar22 == 0) goto LAB_00019d5e;\n    psVar29 = find_section_list(psVar57->name,0,0xc);\n    if (psVar29 != (section_list *)0x0) {\n      paVar30 = psVar57->section;\n      uVar32 = *(undefined4 *)((int)&psVar29->vma_val + 4);\n      uVar33 = (undefined4)psVar29->vma_val;\n      paVar30->field_0x18 = paVar30->field_0x18 | 1;\n      *(undefined4 *)&paVar30->lma = uVar33;\n      *(undefined4 *)((int)&paVar30->lma + 4) = uVar32;\n      *(undefined4 *)&paVar30->vma = uVar33;\n      *(undefined4 *)((int)&paVar30->vma + 4) = uVar32;\n    }\n    psVar29 = find_section_list(psVar57->name,0,0x30);\n    if (psVar29 != (section_list *)0x0) {\n      paVar30 = psVar57->section;\n      bVar72 = psVar29->lma_val;\n      *(undefined4 *)((int)&paVar30->lma + 4) = *(undefined4 *)((int)&psVar29->lma_val + 4);\n      *(int *)&paVar30->lma = (int)bVar72;\n    }\n  }\n  for (; local_6c = (bfd_section *)obfd, psVar17 != (section_add *)0x0; psVar17 = psVar17->next) {\n    paVar30 = (asection *)bfd_get_section_by_name(ibfd,psVar17->name);\n    psVar17->section = paVar30;\n    if (paVar30 == (asection *)0x0) {\n      pcVar26 = psVar17->name;\n      pcVar27 = "error: %s not found, can\'t be updated";\n      goto LAB_00018f38;\n    }\n    pbVar35 = paVar30->output_section;\n    bVar25 = bfd_set_section_size(obfd,pbVar35,psVar17->size,0);\n    if (bVar25 == 0) goto LAB_00019fa0;\n  }\n  if ((((merge_notes != 0) &&\n       (paVar30 = (asection *)bfd_get_section_by_name(ibfd,".gnu.build.attributes"),\n       paVar30 != (asection *)0x0)) && (merge_notes != 0)) &&\n     ((ibfd->xvec->flavour == bfd_target_elf_flavour &&\n      (bVar25 = is_merged_note_section((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1),\n      bVar25 != 0)))) {\n    paVar53 = *(asection **)((int)&paVar30->size + 4);\n    pcVar27 = *(char **)&paVar30->size;\n    if (paVar53 == (asection *)0x0 && pcVar27 == (char *)0x0) {\n      pcVar27 = (char *)dcgettext(0,"warning: note section is empty",5,pcVar27);\n      bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n      merge_notes = 0;\n    }\n    else {\n      iVar22 = bfd_get_full_section_contents(ibfd,paVar30,&merged_notes,pcVar27);\n      pbVar39 = merged_notes;\n      if (iVar22 == 0) {\n        pcVar27 = (char *)dcgettext(0,"warning: could not load note section",5,0);\n        bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n        free(merged_notes);\n        merged_notes = (bfd_byte *)0x0;\n        merge_notes = 0;\n      }\n      else {\n        iVar22 = bfd_get_reloc_upper_bound(ibfd,paVar30,paVar30,paVar30);\n        pcVar26 = extraout_ECX_01;\n        pbVar46 = ibfd;\n        if (0 < iVar22) {\n          pbVar46 = (bfd *)xmalloc(iVar22);\n          iVar22 = bfd_canonicalize_reloc(ibfd,paVar30,pbVar46,isympp);\n          free(pbVar46);\n          pcVar26 = extraout_ECX_02;\n          if (iVar22 == 0) goto LAB_0001ab09;\n          local_74 = (asection *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar75 = (void *)0x30;\n        pcVar45 = pcVar26;\n        uVar32 = __udivdi3(pcVar27,paVar53,0xc,0,pbVar46,0x30,pcVar26,pcVar26);\n        local_74 = (asection *)xcalloc(uVar32);\n        local_bc = 0;\n        local_c4 = (char *)0x0;\n        local_b8 = (asection *)0x0;\n        local_c0 = (void *)0x0;\n        local_84 = (asymbol **)0x0;\n        local_a8 = (asection *)0x0;\n        local_a4 = 0;\n        pbVar56 = pbVar39;\n        paVar68 = local_74;\n        local_7c = pcVar27;\n        local_78 = paVar53;\n        while (local_78 != (asection *)0x0 || (uint)-(int)local_78 < (uint)((char *)0xb < local_7c))\n        {\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56);\n          pcVar47 = (char *)((int)bVar72 + 3U & 0xfffffffc);\n          paVar68->name = pcVar47;\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56 + 4);\n          uVar63 = (int)bVar72 + 3U & 0xfffffffc;\n          paVar68->id = uVar63;\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56 + 8);\n          uVar48 = (uint)bVar72;\n          paVar68->index = uVar48;\n          if (1 < uVar48 - 0x100) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                                        (int)(bVar72 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          pcVar31 = pcVar47 + uVar63 + 0xc;\n          iVar22 = (int)local_78 - (int)(uint)(local_7c < pcVar31);\n          if (local_78 < (asection *)(uint)(local_7c < pcVar31)) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar22)\n            ;\n            goto LAB_0001ae12;\n          }\n          if (pcVar47 < (char *)0x2) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: name too small",5,\n                                        iVar22);\n            goto LAB_0001ae12;\n          }\n          paVar68->next = (bfd_section *)(pbVar56 + 0xc);\n          pbVar35 = (bfd_section *)(pbVar56 + (int)(pcVar47 + 0xc));\n          bVar69 = local_7c < pcVar31;\n          local_7c = local_7c + -(int)pcVar31;\n          local_78 = (asection *)((int)local_78 - (uint)bVar69);\n          paVar68->prev = pbVar35;\n          bVar6 = pbVar56[0xc];\n          uVar60 = (uint)bVar6;\n          if (bVar6 == 0x24) {\n            if ((pbVar56[0xd] == '\x01') && (pbVar56[0xe] == '1')) {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if (((((char *)0x4 < pcVar47) && (bVar6 == 0x47)) && (pbVar56[0xd] == 'A')) &&\n                  ((pbVar56[0xe] == '$' && (pbVar56[0xf] == '\x01')))) {\n            bVar6 = pbVar56[0x10];\n            uVar60 = (uint)bVar6;\n            if (bVar6 == 0x32) {\n              local_a8 = (asection *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar6 != 0x33) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "corrupt GNU build attribute note: unsupported version",\n                                            5,uVar60);\n                goto LAB_0001ae12;\n              }\n              local_84 = (asymbol **)((int)local_84 + 1);\n            }\n          }\n          if (uVar63 == 4) {\n            bVar73 = (*ibfd->xvec->bfd_getx32)(pbVar35);\nLAB_0001ade8:\n            bVar74 = 0xffffffffffffffff;\n          }\n          else if (uVar63 < 5) {\n            if (uVar63 != 0) {\nLAB_0001ae8d:\n              pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: bad description size"\n                                          ,5,uVar60);\n              goto LAB_0001ae12;\n            }\n            bVar74 = 0;\n            bVar73 = 0;\n          }\n          else if (uVar63 == 8) {\n            pbVar13 = ibfd->xvec;\n            if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n              bVar73 = (*pbVar13->bfd_getx64)(pbVar35);\n              goto LAB_0001ade8;\n            }\n            bVar73 = (*pbVar13->bfd_getx32)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx32)(&pbVar35->id);\n          }\n          else {\n            uVar60 = uVar63;\n            if (uVar63 != 0x10) goto LAB_0001ae8d;\n            bVar73 = (*ibfd->xvec->bfd_getx64)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx64)(&pbVar35->index);\n          }\n          if (uVar48 == 0x100) {\n            paVar51 = (asection *)(int)bVar73;\n            if (bVar73 == 0) {\n              paVar51 = local_b8;\n            }\n            uVar63 = (int)bVar74;\n            if (bVar74 == 0) {\n              uVar63 = local_bc;\n            }\n            *(undefined4 *)((int)&paVar68->vma + 4) = 0;\n            *(asection **)&paVar68->vma = paVar51;\n            *(uint *)&paVar68->lma = uVar63;\n            *(undefined4 *)((int)&paVar68->lma + 4) = 0;\n            local_bc = uVar63;\n            local_b8 = paVar51;\n          }\n          else {\n            pvVar49 = (void *)(int)bVar73;\n            if (bVar73 == 0) {\n              pvVar49 = local_c0;\n            }\n            pcVar47 = (char *)(int)bVar74;\n            if (bVar74 == 0) {\n              pcVar47 = local_c4;\n            }\n            *(undefined4 *)((int)&paVar68->vma + 4) = 0;\n            *(void **)&paVar68->vma = pvVar49;\n            *(char **)&paVar68->lma = pcVar47;\n            *(undefined4 *)((int)&paVar68->lma + 4) = 0;\n            local_c4 = pcVar47;\n            local_c0 = pvVar49;\n          }\n          if (*(char *)((int)&paVar68->next->name + (int)(paVar68->name + -1)) != '\0') {\n            pcVar27 = (char *)dcgettext(0,\n                                        "corrupt GNU build attribute note: name not NUL terminated",\n                                        5,paVar68->name);\n            goto LAB_0001ae12;\n          }\n          paVar68 = (asection *)((int)&paVar68->size + 4);\n          pbVar56 = pbVar56 + (int)pcVar31;\n        }\n        if (local_78 == (asection *)0x0 && local_7c == (char *)0x0) {\n          if (local_a4 == 0 && (local_a8 == (asection *)0x0 && local_84 == (asymbol **)0x0)) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: no known versions detected",\n                                        5,-(int)local_78 - (uint)((char *)0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (asection *)0x0 || local_84 != (asymbol **)0x0)) ||\n             ((local_a8 != (asection *)0x0 && (local_84 != (asymbol **)0x0)))) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: multiple different versions"\n                                        ,5,paVar68);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (asection *)0x1) || (local_84 == (asymbol **)0x1))\n          goto LAB_0001ae41;\n          uVar63 = -(uint)(local_a4 == 0) & 2;\n          iVar22 = uVar63 + 1;\n          if (*(char *)((int)&local_74->next->name + iVar22) != '\x01') {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: first note not version note"\n                                        ,5,iVar22);\n            goto LAB_0001ae12;\n          }\n          bVar69 = false;\n          iVar52 = uVar63 + 2;\n          pbVar35 = local_74;\nLAB_0001afd1:\n          paVar51 = pbVar35;\n          local_6c = (bfd_section *)((int)&paVar51->size + 4);\n          pbVar35 = local_6c;\n          if (local_6c < paVar68) {\n            if (*(int *)((int)&paVar51->rawsize + 4) == 0x100) {\n              local_a8 = (asection *)0x0;\n              pvVar49 = *(void **)&paVar51->compressed_size;\n              local_6c = paVar51;\n              while (pbVar50 = local_6c, local_74 <= local_6c) {\n                pbVar14 = local_6c->next;\n                cVar7 = *(char *)((int)&pbVar14->name + iVar22);\n                paVar21 = local_a8;\n                if ((((local_a8 != (asection *)0x0) || (local_6c->id == 0)) ||\n                    (paVar21 = local_6c, local_6c->index != 0x101)) &&\n                   ((local_a8 = paVar21, *(char *)((int)pvVar49 + iVar22) == cVar7 &&\n                    (local_6c->index == 0x100)))) {\n                  pcVar47 = pbVar35->name;\n                  if (cVar7 != '\x04') {\n                    pcVar31 = local_6c->name;\n                    if ((pcVar31 == pcVar47) &&\n                       (iVar43 = memcmp(pbVar14,pvVar49,(size_t)pcVar31), pvVar75 = pvVar49,\n                       pcVar26 = pcVar31, pcVar45 = pcVar47, iVar43 == 0)) {\n                      uVar63 = *(uint *)((int)&local_6c->lma + 4);\n                      pbVar50 = *(bfd_section **)&local_6c->lma;\n                      if (uVar63 != 0 || pbVar50 != (bfd_section *)0x0) {\n                        pbVar14 = paVar51->output_section;\n                        uVar48 = paVar51->alignment_power;\n                        if ((uVar48 != 0 || pbVar14 != (bfd_section *)0x0) &&\n                           ((-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)))) {\n                          *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;\n                          if (uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)) {\n                            *(bfd_section **)&local_6c->lma = pbVar14;\n                            *(uint *)((int)&local_6c->lma + 4) = uVar48;\n                          }\n                          bVar69 = true;\n                          if (local_84 != (asymbol **)0x0) {\n                            *(undefined4 *)&local_6c->size = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (asymbol **)0x0) {\n                      if ((((int)paVar51->rawsize == 0) && (local_a8 != (asection *)0x0)) &&\n                         (local_a8->index == 0)) {\n                        local_a8->index = 0x100;\n                      }\n                    }\n                    else {\n                      paVar51->relocation = (reloc_cache_entry *)0x1;\n                      *(undefined4 *)((int)&paVar51->rawsize + 4) = 0x101;\n                      *(undefined4 *)&local_6c->size = 1;\n                      local_6c->index = 0x101;\n                    }\n                    break;\n                  }\n                  uVar63 = 0;\n                  for (iVar43 = 0; (int)pcVar47 - iVar52 != iVar43; iVar43 = iVar43 + 1) {\n                    uVar63 = uVar63 | (uint)*(byte *)((int)pvVar49 + iVar43 + iVar52) <<\n                                      ((char)iVar43 * '\b' & 0x1fU);\n                  }\n                  local_6c = (bfd_section *)0x0;\n                  pcVar47 = pbVar50->name;\n                  pcVar31 = (char *)((int)&pbVar14->name + iVar52);\n                  for (uVar48 = 0; (int)pcVar47 - iVar52 != uVar48; uVar48 = uVar48 + 1) {\n                    local_6c = (bfd_section *)\n                               ((uint)local_6c |\n                               (uint)(byte)pcVar31[uVar48] << ((char)uVar48 * '\b' & 0x1fU));\n                  }\n                  uVar67 = 0;\n                  uVar63 = (int)local_6c + uVar63;\n                  for (uVar60 = uVar63; uVar60 != 0; uVar60 = uVar60 >> 8) {\n                    uVar67 = uVar67 + 1;\n                  }\n                  in_stack_ffffff28 = pbVar50;\n                  if (uVar67 < uVar48) {\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = (bfd_section *)&pbVar50[-1].entsize;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          if (!bVar69) goto LAB_0001ae41;\n          pvVar49 = (void *)xmalloc(pcVar27,pvVar75,pcVar26,pcVar45);\n          local_cc = local_7c;\n          pvVar75 = pvVar49;\n          in_stack_ffffff28 = local_78;\n          local_a8 = (asection *)pbVar39;\n          for (paVar51 = local_74; paVar51 < paVar68;\n              paVar51 = (asection *)((int)&paVar51->size + 4)) {\n            pcVar45 = paVar51->name;\n            uVar63 = paVar51->index;\n            pcVar26 = pcVar45 + paVar51->id + 0xc;\n            pvVar54 = pvVar75;\n            if (uVar63 != 0) {\n              if ((int)paVar51->size == 0) {\n                memcpy(pvVar75,local_a8,(size_t)pcVar26);\n                pvVar54 = (void *)((int)pvVar75 + (int)pcVar26);\n              }\n              else {\n                pbVar1 = &paVar51->vma;\n                bVar72 = *pbVar1;\n                bVar73 = *pbVar1;\n                p_Var15 = ibfd->xvec->bfd_putx32;\n                __dest = (void *)((int)pvVar75 + 0xc);\n                pvVar54 = (void *)((int)__dest + (int)pcVar45);\n                if (((*(asection **)((int)&paVar51->vma + 4) == local_78) &&\n                    (*(char **)pbVar1 == local_7c)) &&\n                   ((*(asection **)((int)&paVar51->lma + 4) == in_stack_ffffff28 &&\n                    (*(char **)&paVar51->lma == local_cc)))) {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  (*ibfd->xvec->bfd_putx32)(0,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                }\n                else {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  uVar48 = 8;\n                  if ((ibfd->xvec->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    uVar48 = 0x10;\n                  }\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar48,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                  pbVar13 = ibfd->xvec;\n                  if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    (*pbVar13->bfd_putx64)(bVar73,pvVar54);\n                    (*ibfd->xvec->bfd_putx64)(paVar51->lma,(void *)((int)pvVar54 + 8));\n                    pvVar54 = (void *)((int)pvVar54 + 0x10);\n                  }\n                  else {\n                    (*pbVar13->bfd_putx32)(bVar72,pvVar54);\n                    (*ibfd->xvec->bfd_putx32)(paVar51->lma,(void *)((int)pvVar54 + 4));\n                    pvVar54 = (void *)((int)pvVar54 + 8);\n                  }\n                }\n              }\n              local_7c = *(char **)&paVar51->vma;\n              local_78 = *(asection **)((int)&paVar51->vma + 4);\n              local_cc = *(char **)&paVar51->lma;\n              in_stack_ffffff28 = *(asection **)((int)&paVar51->lma + 4);\n            }\n            local_a8 = (asection *)((int)local_a8 + (int)pcVar26);\n            pvVar75 = pvVar54;\n          }\n          pcVar26 = (char *)((int)pvVar75 - (int)pvVar49);\n          paVar68 = (asection *)((int)pcVar26 >> 0x1f);\n          in_stack_ffffff24 = (bfd_section *)obfd;\n          memcpy(pbVar39,pvVar49,(size_t)pcVar26);\n          free(pvVar49);\n          free(local_74);\n          local_6c = (bfd_section *)obfd;\n          merged_size._0_4_ = pcVar26;\n          merged_size._4_4_ = paVar68;\n          if ((paVar53 != paVar68) || (pcVar27 != pcVar26)) {\n            pbVar35 = paVar30->output_section;\n            if ((pbVar35 != (bfd_section *)0x0) &&\n               (pbVar35 = (bfd_section *)bfd_set_section_size(obfd,pbVar35,pcVar26,paVar68),\n               pbVar35 != (bfd_section *)0x0)) goto LAB_00018e0e;\n            pcVar27 = (char *)dcgettext(0,"warning: failed to set merged notes size",5,pbVar35);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n          }\n        }\n        else {\n          pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,\n                                      local_7c);\nLAB_0001ae12:\n          if (pcVar27 != (char *)0x0) {\n            bfd_set_error(0x11);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            status = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n          local_6c = (bfd_section *)obfd;\n        }\n        free(merged_notes);\n        merged_notes = (bfd_byte *)0x0;\n        merge_notes = 0;\n        merged_size._0_4_ = (char *)0x0;\n        merged_size._4_4_ = (asection *)0x0;\n      }\n    }\n  }\nLAB_00018e0e:\n  obfd = (bfd *)local_6c;\n  local_c4 = gnu_debuglink_filename;\n  for (psVar57 = dump_sections; gnu_debuglink_filename = local_c4, psVar57 != (section_add *)0x0;\n      psVar57 = psVar57->next) {\n    paVar30 = (asection *)bfd_get_section_by_name(ibfd,*(char **)((int)psVar57 + 4));\n    if (paVar30 == (asection *)0x0) {\n      pcVar27 = *(char **)((int)psVar57 + 4);\n      pcVar26 = (char *)dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n      bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar26,pcVar27);\n    }\n    else {\n      if ((paVar30->flags & 0x100) == 0) {\n        pcVar27 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar37 = (size_t)paVar30->size;\n        iVar22 = *(int *)((int)&paVar30->size + 4);\n        if (iVar22 != 0 || sVar37 != 0) {\n          __s = fopen64(*(char **)((int)psVar57 + 8),"w");\n          if (__s == (FILE *)0x0) {\n            pcVar27 = (char *)dcgettext(0,"could not open section dump file",5);\n            bfd_nonfatal_message(*(char **)((int)psVar57 + 8),(bfd *)0x0,(asection *)0x0,pcVar27);\n          }\n          else {\n            iVar52 = bfd_malloc_and_get_section(ibfd,paVar30,&contents);\n            if (iVar52 == 0) {\n              pcVar27 = (char *)dcgettext(0,"could not retrieve section contents",5);\n              bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            }\n            else {\n              sVar38 = fwrite(contents,1,sVar37,__s);\n              if (iVar22 != 0 || sVar37 != sVar38) {\n                piVar44 = __errno_location();\n                pcVar26 = strerror(*piVar44);\n                pcVar27 = *(char **)((int)psVar57 + 8);\n                pcVar45 = (char *)dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                non_fatal(pcVar45,pcVar27,pcVar26);\n                free(contents);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(contents);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar27 = "can\'t dump section - it is empty";\n      }\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n    }\nLAB_00018eb1:\n    local_c4 = gnu_debuglink_filename;\n  }\n  if (local_c4 != (char *)0x0) {\n    iVar22 = bfd_get_section_by_name(local_6c,".gnu_debuglink");\n    if (iVar22 == 0) {\n      local_c4 = (char *)bfd_create_gnu_debuglink_section(local_6c,gnu_debuglink_filename);\n      pcVar27 = gnu_debuglink_filename;\n      if (local_c4 == (char *)0x0) {\n        pcVar26 = (char *)dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        bfd_nonfatal_message((char *)0x0,(bfd *)local_6c,(asection *)0x0,pcVar26,pcVar27);\n        return 0;\n      }\n      if (*(int *)(local_6c->id + 4) == 2) {\n        prVar42 = (reloc_cache_entry *)local_6c->orelocation;\n        prVar62 = (reloc_cache_entry *)0x0;\n        if (prVar42 == (reloc_cache_entry *)0x0) {\nLAB_0001aa69:\n          uVar63 = 0x1000;\n          iVar22 = 0;\n        }\n        else {\n          do {\n            prVar12 = *(reloc_cache_entry **)((int)&prVar42[1].address + 4);\n            prVar61 = prVar62;\n            if (((prVar12 != (reloc_cache_entry *)0x0 ||\n                  *(reloc_cache_entry **)&prVar42[1].address != (reloc_cache_entry *)0x0) &&\n                (prVar61 = prVar42, prVar62 != (reloc_cache_entry *)0x0)) &&\n               (prVar11 = *(reloc_cache_entry **)((int)&prVar62[1].address + 4), prVar61 = prVar62,\n               prVar11 < prVar12 ||\n               (uint)((int)prVar11 - (int)prVar12) <\n               (uint)(*(reloc_cache_entry **)&prVar62[1].address <\n                     *(reloc_cache_entry **)&prVar42[1].address))) {\n              prVar61 = prVar42;\n            }\n            prVar42 = *(reloc_cache_entry **)&prVar42->addend;\n            prVar62 = prVar61;\n          } while (prVar42 != (reloc_cache_entry *)0x0);\n          if (prVar61 == (reloc_cache_entry *)0x0) goto LAB_0001aa69;\n          uVar63 = (int)&(prVar61[1].howto)->type + (int)*(reloc_cache_entry **)&prVar61[1].address;\n          iVar22 = (int)&((reloc_cache_entry *)prVar61[2].sym_ptr_ptr)->sym_ptr_ptr +\n                   (int)&(*(reloc_cache_entry **)((int)&prVar61[1].address + 4))->sym_ptr_ptr +\n                   (uint)CARRY4((uint)prVar61[1].howto,\n                                (uint)*(reloc_cache_entry **)&prVar61[1].address);\n          if (-iVar22 - 1U < (uint)(0xfffff000 < uVar63)) {\n            uVar63 = 0xffffffff;\n            iVar22 = -1;\n          }\n          else {\n            iVar22 = iVar22 + (uint)(0xfffff000 < uVar63);\n            uVar63 = uVar63 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(local_c4 + 0x24) = uVar63;\n        *(int *)(local_c4 + 0x28) = iVar22;\n        *(uint *)(local_c4 + 0x1c) = uVar63;\n        *(int *)(local_c4 + 0x20) = iVar22;\n        local_c4[0x18] = local_c4[0x18] | 1;\n      }\n    }\n    else {\n      pcVar27 = local_6c->name;\n      pcVar26 = (char *)dcgettext(0,"%s: debuglink section already exists",5);\n      non_fatal(pcVar26,pcVar27);\n      gnu_debuglink_filename = (char *)0x0;\n      local_c4 = (char *)0x0;\n    }\n  }\n  sVar37 = (size_t)local_6c->filepos;\n  if ((sVar37 == 0) || (gap_fill_set == 0 && pad_to_set == 0)) {\n    local_b8 = (asection *)0x0;\n    local_bc = 0;\n    local_b4 = (void *)0x0;\n    local_a8 = (asection *)0x0;\n    uVar63 = local_bc;\n    paVar30 = local_b8;\n  }\n  else {\n    local_a8 = (asection *)xmalloc(sVar37 * 4);\n    contents = (bfd_byte *)local_a8;\n    bfd_map_over_sections(local_6c,get_sections,&contents);\n    qsort(local_a8,sVar37,4,compare_section_lma);\n    sVar38 = sVar37 * 8;\n    local_b4 = (void *)xmalloc(sVar38);\n    memset(local_b4,0,sVar38);\n    if ((gap_fill_set == 0) || (sVar37 == 1)) {\n      local_b8 = (asection *)0x0;\n      local_bc = 0;\n    }\n    else {\n      local_b8 = (asection *)0x0;\n      local_bc = 0;\n      local_6c = (bfd_section *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (bfd_section *)((int)local_6c + 1);\n        iVar22 = *local_64;\n        uVar63 = local_bc;\n        paVar30 = local_b8;\n        if ((*(uint *)(iVar22 + 0x14) & 0x102) == 0x102) {\n          uVar48 = *(uint *)(iVar22 + 0x2c);\n          uVar60 = *(uint *)(local_64[1] + 0x28);\n          uVar67 = *(uint *)(local_64[1] + 0x24);\n          uVar55 = uVar48 + *(uint *)(iVar22 + 0x24);\n          uVar64 = *(int *)(iVar22 + 0x30) + *(int *)(iVar22 + 0x28) +\n                   (uint)CARRY4(uVar48,*(uint *)(iVar22 + 0x24));\n          if (uVar64 < uVar60 || uVar64 - uVar60 < (uint)(uVar55 < uVar67)) {\n            paVar30 = (asection *)(uVar67 - uVar55);\n            uVar63 = (uVar60 - uVar64) - (uint)(uVar67 < uVar55);\n            iVar22 = bfd_set_section_size\n                               (obfd,iVar22,(int)&paVar30->name + uVar48,\n                                *(int *)(iVar22 + 0x30) + uVar63 +\n                                (uint)CARRY4(uVar48,(uint)paVar30));\n            if (iVar22 == 0) {\n              pcVar27 = (char *)dcgettext(0,"Can\'t fill gap after section",5,0);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_64,pcVar27);\n              status = 1;\n              break;\n            }\n            *(asection **)((int)local_b4 + (int)local_6c * 8 + -8) = paVar30;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar63;\n            if (uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63) {\n              uVar63 = local_bc;\n              paVar30 = local_b8;\n            }\n          }\n        }\n        local_b8 = paVar30;\n        local_bc = uVar63;\n        local_64 = local_64 + 1;\n      } while ((bfd_section *)(sVar37 - 1) != local_6c);\n    }\n    uVar63 = local_bc;\n    paVar30 = local_b8;\n    if (pad_to_set != 0) {\n      iVar22 = *(int *)((int)local_a8 + (sVar37 - 1) * 4);\n      uVar48 = *(uint *)(iVar22 + 0x24);\n      uVar60 = uVar48 + *(uint *)(iVar22 + 0x2c);\n      uVar67 = *(int *)(iVar22 + 0x28) + *(int *)(iVar22 + 0x30) +\n               (uint)CARRY4(uVar48,*(uint *)(iVar22 + 0x2c));\n      if (uVar67 < pad_to._4_4_ || uVar67 - pad_to._4_4_ < (uint)(uVar60 < (uint)pad_to)) {\n        iVar22 = bfd_set_section_size\n                           (obfd,iVar22,(uint)pad_to - uVar48,\n                            (pad_to._4_4_ - *(int *)(iVar22 + 0x28)) - (uint)((uint)pad_to < uVar48)\n                           );\n        if (iVar22 == 0) {\n          pcVar27 = (char *)dcgettext(0,"can\'t add padding",5,uVar60);\n          bfd_nonfatal_message\n                    ((char *)0x0,obfd,*(asection **)((int)local_a8 + (sVar37 - 1) * 4),pcVar27);\n          status = 1;\n        }\n        else {\n          paVar30 = (asection *)((uint)pad_to - uVar60);\n          uVar63 = (pad_to._4_4_ - uVar67) - (uint)((uint)pad_to < uVar60);\n          *(asection **)((int)local_b4 + (sVar38 - 8)) = paVar30;\n          *(uint *)((int)local_b4 + (sVar38 - 4)) = uVar63;\n          if (uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63) {\n            uVar63 = local_bc;\n            paVar30 = local_b8;\n          }\n        }\n      }\n    }\n  }\n  local_b8 = paVar30;\n  local_bc = uVar63;\n  local_c0 = (void *)0x0;\n  if (convert_debugging != 0) {\n    local_c0 = read_debugging_info(ibfd,isympp,local_8c,0);\n  }\n  if (strip_symbols - STRIP_DEBUG < 6) {\nLAB_0001962a:\n    if (strip_symbols != STRIP_ALL) goto LAB_0001962f;\n  }\n  else {\n    if (localize_hidden == 0 && discard_locals == LOCALS_UNDEF) {\n      iVar22 = htab_elements(strip_specific_htab);\n      if ((((((iVar22 == 0) && (iVar22 = htab_elements(keep_specific_htab), iVar22 == 0)) &&\n            (iVar22 = htab_elements(localize_specific_htab), iVar22 == 0)) &&\n           ((iVar22 = htab_elements(globalize_specific_htab), iVar22 == 0 &&\n            (iVar22 = htab_elements(keepglobal_specific_htab), iVar22 == 0)))) &&\n          (iVar22 = htab_elements(weaken_specific_htab), iVar22 == 0)) &&\n         (((iVar22 = htab_elements(redefine_specific_htab), 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) && iVar22 == 0)))) goto LAB_00019e4d;\n      goto LAB_0001962a;\n    }\nLAB_0001962f:\n    bfd_set_error(0);\n    bfd_map_over_sections(ibfd,mark_symbols_used_in_relocations,isympp);\n    iVar22 = bfd_get_error();\n    if (iVar22 != 0) {\n      status = 1;\n      return 0;\n    }\n  }\n  ppaVar34 = (asymbol **)xmalloc((add_symbols + local_8c) * 4 + 4);\n  local_84 = isympp;\n  uVar63 = *(uint *)&ibfd->field_0x28;\n  osympp = ppaVar34;\n  if (local_8c != 0) {\n    ppaVar2 = isympp + local_8c;\n    local_8c = 0;\n    pbVar35 = (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0);\n    do {\n      iVar22 = add_symbols;\n      paVar40 = *local_84;\n      uVar48 = paVar40->flags;\n      pbVar39 = (bfd_byte *)paVar40->name;\n      pbVar50 = paVar40->section;\n      if (((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&\n         (pcVar27 = add_sym_list->othersym, pcVar27 != (char *)0x0)) {\n        local_6c = (bfd_section *)0x0;\n        ptr = add_sym_list;\n        while (iVar52 = strcmp(pcVar27,(char *)pbVar39), iVar52 != 0) {\n          local_6c = (bfd_section *)((int)local_6c + 1);\n          ptr = ptr->next;\n          if ((local_6c == (bfd_section *)iVar22) ||\n             (pcVar27 = ptr->othersym, pcVar27 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar27);\n        ptr->othersym = "";\n        ppaVar3 = ppaVar34 + local_8c;\n        local_8c = local_8c + 1;\n        paVar36 = create_new_symbol(ptr,obfd);\n        *ppaVar3 = paVar36;\n      }\nLAB_000197a8:\n      iVar22 = htab_elements(redefine_specific_htab);\n      pbVar56 = pbVar39;\n      if ((iVar22 != 0) || (section_rename_list != (section_rename *)0x0)) {\n        local_30 = 0;\n        contents = pbVar39;\n        iVar22 = htab_find(redefine_specific_htab,&contents);\n        if (((iVar22 == 0) || (pbVar56 = *(bfd_byte **)(iVar22 + 4), pbVar39 == pbVar56)) &&\n           (psVar18 = section_rename_list, (uVar48 & 0x100) != 0)) {\n          for (; pbVar56 = pbVar39, psVar18 != (section_rename *)0x0; psVar18 = psVar18->next) {\n            iVar22 = strcmp(psVar18->old_name,(char *)pbVar39);\n            if (iVar22 == 0) {\n              pbVar56 = (bfd_byte *)psVar18->new_name;\n              break;\n            }\n          }\n        }\n        paVar40->name = (char *)pbVar56;\n      }\n      pcVar27 = prefix_symbols_string;\n      bVar5 = ibfd->xvec->symbol_leading_char;\n      if (*pbVar56 == bVar5) {\n        if (change_leading_char == 0) {\n          if ((remove_leading_char != 0) &&\n             ((((uVar48 & 0x82) != 0 || (pbVar50 == pbVar35)) ||\n              ((paVar40->section->flags & 0x1000) != 0)))) {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n          }\nLAB_0001982b:\n          if (pcVar27 != (char *)0x0) {\n            sVar37 = strlen(pcVar27);\n            sVar38 = strlen((char *)pbVar56);\n            pbVar39 = (bfd_byte *)xmalloc(sVar37 + 2 + sVar38);\n            local_6c = (bfd_section *)pbVar39;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          bVar5 = *(bfd_byte *)(((bfd_section *)obfd)->id + 0x18);\n          if (bVar5 == '\0') {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n            goto LAB_0001982b;\n          }\n          if (prefix_symbols_string != (char *)0x0) {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n            goto LAB_00019ab1;\n          }\n          *pbVar56 = bVar5;\n          paVar40->name = (char *)pbVar56;\n        }\n      }\n      else {\n        if (((change_leading_char == 0) || (*(char *)(((bfd_section *)obfd)->id + 0x18) == '\0')) ||\n           (bVar5 != '\0')) goto LAB_0001982b;\nLAB_00019ab1:\n        sVar37 = strlen(pcVar27);\n        sVar38 = strlen((char *)pbVar56);\n        pbVar39 = (bfd_byte *)xmalloc(sVar37 + 2 + sVar38);\n        local_6c = (bfd_section *)(pbVar39 + 1);\n        *pbVar39 = *(bfd_byte *)(((bfd_section *)obfd)->id + 0x18);\nLAB_00019858:\n        pcVar27 = prefix_symbols_string;\n        if (prefix_symbols_string != (char *)0x0) {\n          strcpy((char *)local_6c,prefix_symbols_string);\n          sVar37 = strlen(pcVar27);\n          local_6c = (bfd_section *)((int)local_6c + sVar37);\n        }\n        strcpy((char *)local_6c,(char *)pbVar56);\n        paVar40->name = (char *)pbVar39;\n        pbVar56 = pbVar39;\n      }\n      if (strip_symbols == STRIP_ALL) goto LAB_00019928;\n      if ((uVar48 & 0x20) == 0) {\n        if (((uVar48 & 0x100) == 0) || (((*paVar40->section->symbol_ptr_ptr)->flags & 0x20) == 0)) {\n          if ((((uVar63 >> 5 & 0x42) == 0) &&\n              (((uVar48 & 0x82) != 0 || ((paVar40->section->flags & 0x1000) != 0)))) ||\n             (iVar22 = bfd_decode_symclass(paVar40), iVar22 == 0x49)) {\nLAB_00019b80:\n            bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n            if (bVar25 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar48 & 0x82) == 0) &&\n                   (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0))) &&\n                  ((paVar40->section->flags & 0x1000) == 0)) {\n            if ((uVar48 & 4) == 0) {\n              if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                  (pvVar75 = paVar40->section->used_by_bfd, pvVar75 == (void *)0x0)) ||\n                 (*(int *)((int)pvVar75 + 0x2c) == 0)) {\n                if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                goto LAB_00019928;\n                if (discard_locals == LOCALS_START_L) {\n                  iVar22 = bfd_is_local_label(ibfd,paVar40,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar22 = convert_debugging;\n            if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0001a753:\n              if (iVar22 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (strip_symbols != STRIP_UNNEEDED) goto LAB_00019b80;\n        }\n        else {\n          bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n          if (bVar25 != 0) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "not stripping symbol `%s\' because it is named in a relocation"\n                                        ,5,bVar25);\n            non_fatal(pcVar27,pbVar56);\n            status = 1;\n          }\nLAB_00019910:\n          bVar25 = is_specified_symbol((char *)pbVar56,strip_unneeded_htab);\n          if (bVar25 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((keep_file_symbols != 0) && ((uVar48 & 0x4000) != 0)) ||\n           (bVar25 = is_specified_symbol((char *)pbVar56,keep_specific_htab), bVar25 != 0))\n        goto LAB_0001994f;\n      }\n      else {\n        bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n        if (bVar25 != 0) {\n          pcVar27 = (char *)dcgettext(0,\n                                      "not stripping symbol `%s\' because it is named in a relocation"\n                                      ,5);\n          non_fatal(pcVar27,pbVar56);\n          status = 1;\n        }\nLAB_0001994f:\n        bVar25 = is_strip_section((bfd *)in_stack_ffffff24,in_stack_ffffff28);\n        if (bVar25 == 0) {\n          if (((uVar48 & 2) != 0) &&\n             ((weaken != 0 ||\n              (bVar25 = is_specified_symbol((char *)pbVar56,weaken_specific_htab), bVar25 != 0)))) {\n            paVar40->flags = paVar40->flags & 0xfffffffd | 0x80;\n          }\n          if (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0)) {\n            if (((uVar48 & 0x82) != 0) &&\n               (((bVar25 = is_specified_symbol((char *)pbVar56,localize_specific_htab), bVar25 != 0\n                 || ((iVar22 = htab_elements(keepglobal_specific_htab), iVar22 != 0 &&\n                     (bVar25 = is_specified_symbol((char *)pbVar56,keepglobal_specific_htab),\n                     bVar25 == 0)))) ||\n                ((localize_hidden != 0 &&\n                 ((((pbVar46 = paVar40->the_bfd, pbVar46 != (bfd *)0x0 &&\n                    (pbVar46->xvec->flavour == bfd_target_elf_flavour)) &&\n                   ((pbVar46->tdata).aout_data != (aout_data_struct *)0x0)) &&\n                  ((*(byte *)((int)&paVar40[1].section + 1) & 3) - 1 < 2)))))))) {\n              paVar40->flags = paVar40->flags & 0xffffff7d | 1;\n            }\n            if (((uVar48 & 1) != 0) &&\n               (bVar25 = is_specified_symbol((char *)pbVar56,globalize_specific_htab), bVar25 != 0))\n            {\n              paVar40->flags = paVar40->flags & 0xfffffffe | 2;\n            }\n          }\n          ppaVar34[local_8c] = paVar40;\n          local_8c = local_8c + 1;\n        }\n      }\n      local_84 = local_84 + 1;\n    } while (ppaVar2 != local_84);\n  }\n  local_6c = (bfd_section *)add_sym_list;\n  if ((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) {\n    iVar22 = 0;\n    do {\n      pcVar27 = (char *)local_6c->flags;\n      if (pcVar27 == (char *)0x0) {\n        paVar40 = create_new_symbol((addsym_node *)local_6c,obfd);\n        ppaVar34[local_8c] = paVar40;\n        local_8c = local_8c + 1;\n      }\n      else if (*pcVar27 != '\0') {\n        pcVar26 = (char *)dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    /* WARNING: Subroutine does not return */\n        fatal(pcVar26,pcVar27);\n      }\n      iVar22 = iVar22 + 1;\n      local_6c = (bfd_section *)local_6c->name;\n    } while (iVar22 < add_symbols);\n  }\n  ppaVar34[local_8c] = (asymbol *)0x0;\n  if ((convert_debugging != 0) && (local_c0 != (void *)0x0)) {\n    iVar22 = ((undefined4 *)((bfd_section *)obfd)->id)[1];\n    if ((iVar22 == 2) || (iVar22 == 5)) {\n      bVar25 = write_stabs_in_sections_debugging_info\n                         (obfd,local_c0,&syms,(bfd_size_type *)file_alignment,&strings,\n                          (bfd_size_type *)&contents);\n      if (bVar25 != 0) {\n        iVar22 = bfd_make_section_with_flags(obfd,".stab",0x2108);\n        iVar52 = bfd_make_section_with_flags(obfd,".stabstr",0x2108);\n        if ((((iVar22 == 0) || (iVar52 == 0)) ||\n            (iVar43 = bfd_set_section_size(obfd,iVar22,file_alignment._0_4_,file_alignment._4_4_),\n            iVar43 == 0)) ||\n           (iVar43 = bfd_set_section_size(obfd,iVar52,contents,local_30), iVar43 == 0)) {\n          pcVar27 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar22 + 0x58) = 2;\n          *(undefined4 *)(iVar52 + 0x58) = 0;\n          iVar22 = bfd_set_section_contents\n                             (obfd,iVar22,syms,0,0,file_alignment._0_4_,file_alignment._4_4_,iVar43)\n          ;\n          if ((iVar22 != 0) &&\n             (iVar22 = bfd_set_section_contents\n                                 (obfd,iVar52,strings,0,0,contents,local_30,extraout_ECX),\n             iVar22 != 0)) goto LAB_00019e4d;\n          pcVar27 = "can\'t set debugging section contents";\n          iVar22 = iVar52;\n        }\n        pcVar27 = (char *)dcgettext(0,pcVar27,5,iVar22);\n        bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27);\n      }\n    }\n    else {\n      uVar32 = *(undefined4 *)((bfd_section *)obfd)->id;\n      pcVar27 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",5);\n      bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27,uVar32);\n    }\n    status = 1;\n    return 0;\n  }\nLAB_00019e4d:\n  bfd_set_symtab(obfd,osympp,local_8c);\n  bfd_map_over_sections(ibfd,copy_relocations_in_section,obfd);\n  bfd_map_over_sections(ibfd,copy_section,obfd);\n  for (psVar57 = add_sections; pbVar35 = (bfd_section *)obfd, psVar17 = update_sections,\n      psVar57 != (section_add *)0x0; psVar57 = psVar57->next) {\n    iVar22 = bfd_set_section_contents(obfd,psVar57->section,psVar57->contents,0,0,psVar57->size,0);\n    if (iVar22 == 0) {\nLAB_00019d5e:\n      bfd_nonfatal_message((char *)0x0,obfd,psVar57->section,(char *)0x0);\n      return 0;\n    }\n  }\n  while( true ) {\n    if (psVar17 == (section_add *)0x0) {\n      paVar30 = (asection *)0x0;\n      if (merge_notes != 0) {\n        paVar30 = (asection *)bfd_get_section_by_name(obfd,".gnu.build.attributes");\n        if (((paVar30 == (asection *)0x0) || (merge_notes == 0)) ||\n           ((*(int *)(((bfd_section *)obfd)->id + 4) != 5 ||\n            (bVar25 = is_merged_note_section\n                                ((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1_00),\n            bVar25 == 0)))) {\n          if (is_strip == 0) {\n            pcVar27 = (char *)dcgettext(0,"could not find any mergeable note sections",5,0);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n          }\n        }\n        else {\n          iVar22 = bfd_set_section_contents\n                             (obfd,paVar30,merged_notes,0,0,(char *)merged_size,merged_size._4_4_,\n                              bVar25);\n          if (iVar22 == 0) {\n            pcVar27 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n            return 0;\n          }\n        }\n        free(merged_notes);\n        merged_notes = (bfd_byte *)0x0;\n        merge_notes = 0;\n        pbVar35 = (bfd_section *)obfd;\n      }\n      if ((gnu_debuglink_filename != (char *)0x0) &&\n         (iVar22 = bfd_fill_in_gnu_debuglink_section(obfd,local_c4,gnu_debuglink_filename),\n         pcVar27 = gnu_debuglink_filename, iVar22 == 0)) {\n        pcVar26 = (char *)dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar26,pcVar27);\n        return 0;\n      }\n      if (gap_fill_set != 0 || pad_to_set != 0) {\n        paVar30 = (asection *)0x2000;\n        if (local_bc == 0 && (uint)((asection *)0x2000 < local_b8) <= -local_bc) {\n          paVar30 = local_b8;\n        }\n        puVar41 = (undefined4 *)xmalloc(paVar30);\n        pcVar27 = (char *)((uint)gap_fill * 0x1010101);\n        if (paVar30 < (asection *)0x4) {\n          if ((paVar30 != (asection *)0x0) &&\n             (*(char *)puVar41 = (char)pcVar27, ((uint)paVar30 & 2) != 0)) {\n            *(short *)((int)puVar41 + -2 + (int)paVar30) = (short)pcVar27;\n          }\n        }\n        else {\n          *puVar41 = pcVar27;\n          *(char **)((int)(puVar41 + -1) + (int)paVar30) = pcVar27;\n          pbVar35 = (bfd_section *)((uint)(puVar41 + 1) & 0xfffffffc);\n          for (uVar63 = (uint)(((int)puVar41 - (int)((uint)(puVar41 + 1) & 0xfffffffc)) +\n                              (int)paVar30) >> 2; uVar63 != 0; uVar63 = uVar63 - 1) {\n            pbVar35->name = pcVar27;\n            pbVar35 = (bfd_section *)((int)pbVar35 + (uint)bVar71 * -8 + 4);\n          }\n        }\n        iVar22 = (int)((bfd_section *)obfd)->filepos;\n        if (iVar22 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar44 = local_64;\n            pbVar35 = *(bfd_section **)((int)local_b4 + (int)local_64 * 8 + 4);\n            paVar30 = *(asection **)((int)local_b4 + (int)local_64 * 8);\n            if (pbVar35 != (bfd_section *)0x0 || paVar30 != (asection *)0x0) {\n              piVar4 = (int *)((int)local_a8 + local_64 * 4);\n              local_64 = *(int **)((int)local_a8 + local_64 * 4);\n              local_6c = (bfd_section *)((int)*(asection **)((int)local_64 + 0x2c) - (int)paVar30);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)pbVar35) -\n                         (uint)(*(asection **)((int)local_64 + 0x2c) < paVar30);\n              while( true ) {\n                pbVar50 = pbVar35;\n                paVar53 = paVar30;\n                if (pbVar35 != (bfd_section *)0x0 ||\n                    (uint)-(int)pbVar35 < (uint)((asection *)0x2000 < paVar30)) {\n                  paVar53 = (asection *)0x2000;\n                  pbVar50 = (bfd_section *)0x0;\n                }\n                iVar52 = bfd_set_section_contents\n                                   (obfd,local_64,puVar41,local_6c,local_68,paVar53,pbVar50);\n                if (iVar52 == 0) {\n                  bfd_nonfatal_message((char *)0x0,obfd,(asection *)*piVar4,(char *)0x0);\n                  return 0;\n                }\n                bVar69 = paVar30 < paVar53;\n                paVar30 = (asection *)((int)paVar30 - (int)paVar53);\n                pbVar35 = (bfd_section *)((int)pbVar35 + (-(uint)bVar69 - (int)pbVar50));\n                bVar69 = CARRY4((uint)local_6c,(uint)paVar53);\n                local_6c = (bfd_section *)((int)&paVar53->name + (int)local_6c);\n                local_68 = (int)&pbVar50->name + (uint)bVar69 + local_68;\n                if (pbVar35 == (bfd_section *)0x0 && paVar30 == (asection *)0x0) break;\n                local_64 = *(int **)((int)local_a8 + piVar44 * 4);\n              }\n            }\n            local_64 = (int *)((int)piVar44 + 1);\n          } while ((int *)iVar22 != local_64);\n        }\n      }\n      iVar22 = (**(code **)(((bfd_section *)obfd)->id + 0xa8))(ibfd,obfd);\n      if (iVar22 == 0) {\n        pcVar27 = (char *)dcgettext(0,"error copying private BFD data",5,pbVar35);\n        bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27);\n        return 0;\n      }\n      if ((use_alt_mach_code != 0) &&\n         (iVar22 = bfd_alt_mach_code(obfd,use_alt_mach_code,paVar30,paVar30),\n         uVar24 = use_alt_mach_code, iVar22 == 0)) {\n        pcVar27 = (char *)dcgettext(0,"this target does not support %lu alternative machine codes",5\n                                    ,pbVar35);\n        non_fatal(pcVar27,uVar24);\n        if (*(int *)(((bfd_section *)obfd)->id + 4) != 5) {\n          pcVar27 = (char *)dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          non_fatal(pcVar27);\n          return 1;\n        }\n        pcVar27 = (char *)dcgettext(0,"treating that number as an absolute e_machine value instead",\n                                    5,uVar24);\n        non_fatal(pcVar27);\n        *(short *)(((bfd_section *)obfd)->target_index + 0x32) = (short)use_alt_mach_code;\n      }\n      return 1;\n    }\n    pbVar35 = psVar17->section->output_section;\n    bVar25 = bfd_set_section_contents(obfd,pbVar35,psVar17->contents,0,0,psVar17->size,0);\n    local_6c = (bfd_section *)obfd;\n    if (bVar25 == 0) break;\n    psVar17 = psVar17->next;\n  }\nLAB_00019fa0:\n  bfd_nonfatal_message((char *)0x0,(bfd *)local_6c,pbVar35,(char *)0x0);\n  return bVar25;\nLAB_0001b1a6:\n  if ((char *)((int)&pbVar14->name + (int)pcVar47) <= pcVar31) goto LAB_0001b1aa;\n  *pcVar31 = (char)uVar63;\n  if (uVar63 == 0) goto LAB_0001b1aa;\n  uVar63 = uVar63 >> 8;\n  pcVar31 = pcVar31 + 1;\n  goto LAB_0001b1a6;\nLAB_0001b1aa:\n  bVar69 = true;\n  *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;\n  goto LAB_0001afd1;\n}\n\n" comment comment comment (function_definition "bfd_boolean __regparm3 copy_object(bfd *ibfd,bfd *obfd,bfd_arch_info_type *input_arch)\n\n{\n  bfd_vma *pbVar1;\n  void *__dest;\n  asymbol **ppaVar2;\n  asymbol **ppaVar3;\n  int *piVar4;\n  bfd_byte bVar5;\n  byte bVar6;\n  char cVar7;\n  bfd_endian bVar8;\n  bfd_endian bVar9;\n  pe_tdata *ppVar10;\n  reloc_cache_entry *prVar11;\n  reloc_cache_entry *prVar12;\n  bfd_target *pbVar13;\n  bfd_section *pbVar14;\n  _func_void_bfd_vma_void_ptr *p_Var15;\n  bfd_flavour bVar16;\n  section_add *psVar17;\n  section_rename *psVar18;\n  undefined1 uVar19;\n  undefined1 uVar20;\n  asection *paVar21;\n  int iVar22;\n  bfd_architecture bVar23;\n  ulong uVar24;\n  bfd_boolean bVar25;\n  char *pcVar26;\n  char *pcVar27;\n  long lVar28;\n  section_list *psVar29;\n  asection *paVar30;\n  FILE *__s;\n  char *pcVar31;\n  undefined4 uVar32;\n  undefined4 uVar33;\n  asymbol **ppaVar34;\n  bfd_section *pbVar35;\n  asymbol *paVar36;\n  size_t sVar37;\n  size_t sVar38;\n  bfd_byte *pbVar39;\n  asymbol *paVar40;\n  undefined4 *puVar41;\n  reloc_cache_entry *prVar42;\n  int iVar43;\n  int *piVar44;\n  char *pcVar45;\n  bfd *pbVar46;\n  char *pcVar47;\n  uint uVar48;\n  void *pvVar49;\n  asection *sec_1;\n  bfd_section *pbVar50;\n  undefined4 extraout_ECX;\n  asection *sec_1_00;\n  undefined4 extraout_ECX_00;\n  char *extraout_ECX_01;\n  char *extraout_ECX_02;\n  asection *paVar51;\n  int iVar52;\n  asection *paVar53;\n  void *pvVar54;\n  uint uVar55;\n  addsym_node *ptr;\n  bfd_byte *pbVar56;\n  section_add *psVar57;\n  byte *pbVar58;\n  uint *puVar59;\n  uint uVar60;\n  reloc_cache_entry *prVar61;\n  reloc_cache_entry *prVar62;\n  uint uVar63;\n  uint uVar64;\n  byte *pbVar65;\n  internal_extra_pe_aouthdr *piVar66;\n  uint uVar67;\n  asection *paVar68;\n  bool bVar69;\n  bool bVar70;\n  byte bVar71;\n  bfd_vma bVar72;\n  bfd_uint64_t bVar73;\n  bfd_uint64_t bVar74;\n  void *pvVar75;\n  bfd_section *in_stack_ffffff24;\n  asection *in_stack_ffffff28;\n  char *local_cc;\n  char *local_c4;\n  void *local_c0;\n  uint local_bc;\n  asection *local_b8;\n  void *local_b4;\n  asection *local_a8;\n  int local_a4;\n  int local_8c;\n  asymbol **local_84;\n  char *local_7c;\n  asection *local_78;\n  asection *local_74;\n  bfd_section *local_6c;\n  int local_68;\n  int *local_64;\n  bfd_byte *syms;\n  bfd_byte *strings;\n  char file_alignment [20];\n  bfd_byte *contents;\n  undefined4 local_30;\n  undefined4 uStack_14;\n  \n  bVar71 = 0;\n  uStack_14 = 0x1892b;\n  bVar8 = ibfd->xvec->byteorder;\n  bVar9 = obfd->xvec->byteorder;\n  if ((bVar8 != bVar9 && bVar8 != BFD_ENDIAN_UNKNOWN) && (bVar9 != BFD_ENDIAN_UNKNOWN)) {\n    pcVar27 = (char *)dcgettext(0,"Unable to change endianness of input file(s)",5);\n    non_fatal(pcVar27);\n    return 0;\n  }\n  iVar22 = bfd_set_format(obfd,ibfd->field_0x28 & 7);\n  if (iVar22 == 0) {\n    bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,(char *)0x0);\n    return 0;\n  }\n  if (ibfd->sections == (bfd_section *)0x0) {\n    pcVar26 = bfd_get_archive_filename(ibfd);\n    pcVar27 = "error: the input file \'%s\' has no sections";\n    goto LAB_00018f38;\n  }\n  if (ibfd->xvec->flavour != bfd_target_elf_flavour) {\n    if ((do_debug_sections != _sch_isblank) && ((do_debug_sections & _sch_isblank) != nothing)) {\n      pcVar26 = bfd_get_archive_filename(ibfd);\n      pcVar27 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\nLAB_00018f38:\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      non_fatal(pcVar27,pcVar26);\n      return 0;\n    }\n    if (do_elf_stt_common != unchanged) {\n      pcVar26 = bfd_get_archive_filename(ibfd);\n      pcVar27 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      goto LAB_00018f38;\n    }\n  }\n  if (verbose != 0) {\n    pcVar27 = ibfd->xvec->name;\n    pcVar26 = obfd->xvec->name;\n    pcVar45 = obfd->filename;\n    pcVar47 = bfd_get_archive_filename(ibfd);\n    pcVar31 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n    printf(pcVar31,pcVar47,pcVar27,pcVar45,pcVar26);\n  }\n  iVar22 = 0;\n  iVar52 = 0;\n  if (extract_symbol == 0) {\n    uVar63 = (uint)set_start;\n    iVar52 = set_start._4_4_;\n    if (set_start_set == 0) {\n      uVar63 = (uint)ibfd->start_address;\n      iVar52 = *(int *)((int)&ibfd->start_address + 4);\n    }\n    iVar22 = uVar63 + (uint)change_start;\n    iVar52 = iVar52 + change_start._4_4_ + (uint)CARRY4(uVar63,(uint)change_start);\n  }\n  if ((obfd->field_0x28 & 7) != 3) {\n    uVar63 = ~bfd_flags_to_clear & obfd->xvec->object_flags &\n             (*(uint *)&ibfd->field_0x28 >> 5 & 0xfffff | bfd_flags_to_set);\n    if (strip_symbols == STRIP_ALL) {\n      uVar63 = uVar63 & 0xfffffffe;\n    }\n    iVar22 = bfd_set_start_address(obfd,iVar22,iVar52);\n    if ((iVar22 == 0) || (iVar22 = bfd_set_file_flags(obfd,uVar63), iVar22 == 0)) goto LAB_00018b70;\n  }\n  bVar23 = bfd_get_arch(ibfd);\n  uVar24 = bfd_get_mach(ibfd);\n  if (input_arch != (bfd_arch_info_type *)0x0) {\n    iVar22 = bfd_get_arch_info(ibfd);\n    if ((iVar22 == 0) || (iVar22 = bfd_get_arch_info(ibfd), *(int *)(iVar22 + 0xc) == 0)) {\n      bVar23 = input_arch->arch;\n      uVar24 = input_arch->mach;\n    }\n    else {\n      pcVar27 = bfd_get_archive_filename(ibfd);\n      pcVar26 = (char *)dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n      non_fatal(pcVar26,pcVar27);\n    }\n  }\n  bVar25 = (*obfd->xvec->_bfd_set_arch_mach)(obfd,bVar23,uVar24);\n  if (bVar25 == 0) {\n    if ((ibfd->field_0x2b & 4) != 0) {\nLAB_00018b20:\n      iVar22 = bfd_get_arch(ibfd);\n      if (iVar22 == 0) {\n        pcVar26 = bfd_get_archive_filename(ibfd);\n        pcVar27 = "Unable to recognise the format of the input file `%s\'";\n      }\n      else {\n        uVar32 = bfd_get_mach(ibfd);\n        uVar33 = bfd_get_arch(ibfd);\n        pcVar26 = (char *)bfd_printable_arch_mach(uVar33,uVar32);\n        pcVar27 = "Output file cannot represent architecture `%s\'";\n      }\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      non_fatal(pcVar27,pcVar26);\n      return 0;\n    }\n    iVar22 = bfd_get_arch(ibfd);\n    iVar52 = bfd_get_arch(obfd);\n    if (iVar22 != iVar52) goto LAB_00018b20;\n  }\n  iVar22 = bfd_set_format(obfd,ibfd->field_0x28 & 7);\n  if (iVar22 == 0) {\nLAB_00018b70:\n    bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,(char *)0x0);\n    return 0;\n  }\n  bVar16 = obfd->xvec->flavour;\n  bVar69 = bVar16 < bfd_target_coff_flavour;\n  bVar70 = bVar16 == bfd_target_coff_flavour;\n  if (bVar70) {\n    iVar22 = 4;\n    pbVar58 = (byte *)obfd->xvec->name;\n    pbVar65 = &DAT_0002f16a;\n    do {\n      if (iVar22 == 0) break;\n      iVar22 = iVar22 + -1;\n      bVar69 = *pbVar58 < *pbVar65;\n      bVar70 = *pbVar58 == *pbVar65;\n      pbVar58 = pbVar58 + (uint)bVar71 * -2 + 1;\n      pbVar65 = pbVar65 + (uint)bVar71 * -2 + 1;\n    } while (bVar70);\n    if ((!bVar69 && !bVar70) == bVar69) {\n      ppVar10 = (obfd->tdata).pe_obj_data;\n      bVar16 = ibfd->xvec->flavour;\n      bVar69 = bVar16 < bfd_target_coff_flavour;\n      bVar70 = bVar16 == bfd_target_coff_flavour;\n      if (bVar70) {\n        iVar22 = 4;\n        pbVar58 = (byte *)ibfd->xvec->name;\n        pbVar65 = &DAT_0002f16a;\n        do {\n          if (iVar22 == 0) break;\n          iVar22 = iVar22 + -1;\n          bVar69 = *pbVar58 < *pbVar65;\n          bVar70 = *pbVar58 == *pbVar65;\n          pbVar58 = pbVar58 + (uint)bVar71 * -2 + 1;\n          pbVar65 = pbVar65 + (uint)bVar71 * -2 + 1;\n        } while (bVar70);\n        if ((!bVar69 && !bVar70) == bVar69) {\n          puVar59 = &(((ibfd->tdata).elf_obj_data)->symtab_hdr).sh_link;\n          piVar66 = &ppVar10->pe_opthdr;\n          for (iVar22 = 0x52; iVar22 != 0; iVar22 = iVar22 + -1) {\n            uVar19 = *(undefined1 *)((int)puVar59 + 2);\n            uVar20 = *(undefined1 *)((int)puVar59 + 3);\n            piVar66->Magic = *(undefined2 *)puVar59;\n            piVar66->MajorLinkerVersion = uVar19;\n            piVar66->MinorLinkerVersion = uVar20;\n            puVar59 = puVar59 + (uint)bVar71 * -2 + 1;\n            piVar66 = (internal_extra_pe_aouthdr *)((int)piVar66 + (uint)bVar71 * -8 + 4);\n          }\n        }\n      }\n      uVar63 = pe_file_alignment._4_4_;\n      if ((pe_file_alignment._4_4_ & (uint)pe_file_alignment) == 0xffffffff) {\n        pe_file_alignment._0_4_ = 0x200;\n        pe_file_alignment._4_4_ = 0;\n      }\n      else {\n        *(uint *)&(ppVar10->pe_opthdr).FileAlignment = (uint)pe_file_alignment;\n        *(uint *)((int)&(ppVar10->pe_opthdr).FileAlignment + 4) = uVar63;\n      }\n      uVar63 = pe_heap_commit._4_4_;\n      if ((pe_heap_commit._4_4_ & (uint)pe_heap_commit) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfHeapCommit = (uint)pe_heap_commit;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4) = uVar63;\n      }\n      uVar63 = pe_heap_reserve._4_4_;\n      if ((pe_heap_reserve._4_4_ & (uint)pe_heap_reserve) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfHeapCommit = (uint)pe_heap_reserve;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4) = uVar63;\n      }\n      uVar63 = pe_image_base._4_4_;\n      if ((pe_image_base._4_4_ & (uint)pe_image_base) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).ImageBase = (uint)pe_image_base;\n        *(uint *)((int)&(ppVar10->pe_opthdr).ImageBase + 4) = uVar63;\n      }\n      uVar63 = pe_section_alignment._4_4_;\n      local_64 = (int *)(uint)pe_section_alignment;\n      if (((uint)pe_section_alignment & pe_section_alignment._4_4_) == 0xffffffff) {\n        pe_section_alignment._0_4_ = 0x1000;\n        uVar63 = 0;\n        pe_section_alignment._4_4_ = 0;\n        local_64 = (int *)0x1000;\n      }\n      else {\n        *(uint *)&(ppVar10->pe_opthdr).SectionAlignment = (uint)pe_section_alignment;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SectionAlignment + 4) = uVar63;\n      }\n      uVar48 = pe_stack_commit._4_4_;\n      if ((pe_stack_commit._4_4_ & (uint)pe_stack_commit) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfStackCommit = (uint)pe_stack_commit;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4) = uVar48;\n      }\n      uVar48 = pe_stack_reserve._4_4_;\n      if ((pe_stack_reserve._4_4_ & (uint)pe_stack_reserve) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfStackCommit = (uint)pe_stack_reserve;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4) = uVar48;\n      }\n      if (pe_subsystem != -1) {\n        (ppVar10->pe_opthdr).Subsystem = pe_subsystem;\n      }\n      if (pe_major_subsystem_version != -1) {\n        (ppVar10->pe_opthdr).MajorSubsystemVersion = pe_major_subsystem_version;\n      }\n      if (pe_minor_subsystem_version != -1) {\n        (ppVar10->pe_opthdr).MinorSubsystemVersion = pe_minor_subsystem_version;\n      }\n      if (uVar63 < pe_file_alignment._4_4_ ||\n          uVar63 - pe_file_alignment._4_4_ < (uint)(local_64 < (uint)pe_file_alignment)) {\n        sprintf(file_alignment,"%016llx",(uint)pe_file_alignment,pe_file_alignment._4_4_);\n        sprintf((char *)&contents,"%016llx",(uint)pe_section_alignment,pe_section_alignment._4_4_);\n        pcVar27 = (char *)dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5)\n        ;\n        non_fatal(pcVar27,file_alignment,&contents);\n      }\n    }\n  }\n  ppaVar34 = isympp;\n  if (isympp != (asymbol **)0x0) {\n    free(isympp);\n  }\n  if (ppaVar34 != osympp) {\n    free(osympp);\n  }\n  isympp = (asymbol **)0x0;\n  osympp = (asymbol **)0x0;\n  lVar28 = (*ibfd->xvec->_bfd_get_symtab_upper_bound)(ibfd);\n  if (lVar28 < 0) goto LAB_00018b70;\n  osympp = (asymbol **)xmalloc(lVar28);\n  isympp = osympp;\n  local_8c = (*ibfd->xvec->_bfd_canonicalize_symtab)(ibfd,osympp);\n  if (local_8c < 0) goto LAB_00018b70;\n  if (local_8c == 0) {\n    free(isympp);\n    isympp = (asymbol **)0x0;\n    osympp = (asymbol **)0x0;\n  }\n  bfd_map_over_sections(ibfd,setup_section,obfd);\n  psVar57 = add_sections;\n  if ((extract_symbol == 0) &&\n     (bVar25 = (*obfd->xvec->_bfd_copy_private_header_data)(ibfd,obfd), psVar57 = add_sections,\n     bVar25 == 0)) {\n    status = 1;\n    pcVar27 = (char *)dcgettext(0,"error in private header data",5);\n    bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar27);\n    psVar57 = add_sections;\n  }\n  for (; psVar17 = update_sections, psVar57 != (section_add *)0x0; psVar57 = psVar57->next) {\n    uVar63 = 0x128;\n    psVar29 = find_section_list(psVar57->name,0,0x40);\n    if (psVar29 != (section_list *)0x0) {\n      uVar63 = psVar29->flags | 0x100;\n    }\n    iVar22 = bfd_get_section_by_name(obfd,psVar57->name);\n    if (iVar22 != 0) {\n      pcVar26 = psVar57->name;\n      pcVar27 = "can\'t add section \'%s\'";\nLAB_00019591:\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27,pcVar26);\n      return 0;\n    }\n    paVar30 = (asection *)bfd_make_section_with_flags(obfd,psVar57->name,uVar63 | 0x100000);\n    psVar57->section = paVar30;\n    if (paVar30 == (asection *)0x0) {\n      pcVar26 = psVar57->name;\n      pcVar27 = "can\'t create section `%s\'";\n      goto LAB_00019591;\n    }\n    iVar22 = bfd_set_section_size(obfd,paVar30,psVar57->size,0);\n    if (iVar22 == 0) goto LAB_00019d5e;\n    psVar29 = find_section_list(psVar57->name,0,0xc);\n    if (psVar29 != (section_list *)0x0) {\n      paVar30 = psVar57->section;\n      uVar32 = *(undefined4 *)((int)&psVar29->vma_val + 4);\n      uVar33 = (undefined4)psVar29->vma_val;\n      paVar30->field_0x18 = paVar30->field_0x18 | 1;\n      *(undefined4 *)&paVar30->lma = uVar33;\n      *(undefined4 *)((int)&paVar30->lma + 4) = uVar32;\n      *(undefined4 *)&paVar30->vma = uVar33;\n      *(undefined4 *)((int)&paVar30->vma + 4) = uVar32;\n    }\n    psVar29 = find_section_list(psVar57->name,0,0x30);\n    if (psVar29 != (section_list *)0x0) {\n      paVar30 = psVar57->section;\n      bVar72 = psVar29->lma_val;\n      *(undefined4 *)((int)&paVar30->lma + 4) = *(undefined4 *)((int)&psVar29->lma_val + 4);\n      *(int *)&paVar30->lma = (int)bVar72;\n    }\n  }\n  for (; local_6c = (bfd_section *)obfd, psVar17 != (section_add *)0x0; psVar17 = psVar17->next) {\n    paVar30 = (asection *)bfd_get_section_by_name(ibfd,psVar17->name);\n    psVar17->section = paVar30;\n    if (paVar30 == (asection *)0x0) {\n      pcVar26 = psVar17->name;\n      pcVar27 = "error: %s not found, can\'t be updated";\n      goto LAB_00018f38;\n    }\n    pbVar35 = paVar30->output_section;\n    bVar25 = bfd_set_section_size(obfd,pbVar35,psVar17->size,0);\n    if (bVar25 == 0) goto LAB_00019fa0;\n  }\n  if ((((merge_notes != 0) &&\n       (paVar30 = (asection *)bfd_get_section_by_name(ibfd,".gnu.build.attributes"),\n       paVar30 != (asection *)0x0)) && (merge_notes != 0)) &&\n     ((ibfd->xvec->flavour == bfd_target_elf_flavour &&\n      (bVar25 = is_merged_note_section((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1),\n      bVar25 != 0)))) {\n    paVar53 = *(asection **)((int)&paVar30->size + 4);\n    pcVar27 = *(char **)&paVar30->size;\n    if (paVar53 == (asection *)0x0 && pcVar27 == (char *)0x0) {\n      pcVar27 = (char *)dcgettext(0,"warning: note section is empty",5,pcVar27);\n      bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n      merge_notes = 0;\n    }\n    else {\n      iVar22 = bfd_get_full_section_contents(ibfd,paVar30,&merged_notes,pcVar27);\n      pbVar39 = merged_notes;\n      if (iVar22 == 0) {\n        pcVar27 = (char *)dcgettext(0,"warning: could not load note section",5,0);\n        bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n        free(merged_notes);\n        merged_notes = (bfd_byte *)0x0;\n        merge_notes = 0;\n      }\n      else {\n        iVar22 = bfd_get_reloc_upper_bound(ibfd,paVar30,paVar30,paVar30);\n        pcVar26 = extraout_ECX_01;\n        pbVar46 = ibfd;\n        if (0 < iVar22) {\n          pbVar46 = (bfd *)xmalloc(iVar22);\n          iVar22 = bfd_canonicalize_reloc(ibfd,paVar30,pbVar46,isympp);\n          free(pbVar46);\n          pcVar26 = extraout_ECX_02;\n          if (iVar22 == 0) goto LAB_0001ab09;\n          local_74 = (asection *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar75 = (void *)0x30;\n        pcVar45 = pcVar26;\n        uVar32 = __udivdi3(pcVar27,paVar53,0xc,0,pbVar46,0x30,pcVar26,pcVar26);\n        local_74 = (asection *)xcalloc(uVar32);\n        local_bc = 0;\n        local_c4 = (char *)0x0;\n        local_b8 = (asection *)0x0;\n        local_c0 = (void *)0x0;\n        local_84 = (asymbol **)0x0;\n        local_a8 = (asection *)0x0;\n        local_a4 = 0;\n        pbVar56 = pbVar39;\n        paVar68 = local_74;\n        local_7c = pcVar27;\n        local_78 = paVar53;\n        while (local_78 != (asection *)0x0 || (uint)-(int)local_78 < (uint)((char *)0xb < local_7c))\n        {\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56);\n          pcVar47 = (char *)((int)bVar72 + 3U & 0xfffffffc);\n          paVar68->name = pcVar47;\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56 + 4);\n          uVar63 = (int)bVar72 + 3U & 0xfffffffc;\n          paVar68->id = uVar63;\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56 + 8);\n          uVar48 = (uint)bVar72;\n          paVar68->index = uVar48;\n          if (1 < uVar48 - 0x100) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                                        (int)(bVar72 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          pcVar31 = pcVar47 + uVar63 + 0xc;\n          iVar22 = (int)local_78 - (int)(uint)(local_7c < pcVar31);\n          if (local_78 < (asection *)(uint)(local_7c < pcVar31)) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar22)\n            ;\n            goto LAB_0001ae12;\n          }\n          if (pcVar47 < (char *)0x2) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: name too small",5,\n                                        iVar22);\n            goto LAB_0001ae12;\n          }\n          paVar68->next = (bfd_section *)(pbVar56 + 0xc);\n          pbVar35 = (bfd_section *)(pbVar56 + (int)(pcVar47 + 0xc));\n          bVar69 = local_7c < pcVar31;\n          local_7c = local_7c + -(int)pcVar31;\n          local_78 = (asection *)((int)local_78 - (uint)bVar69);\n          paVar68->prev = pbVar35;\n          bVar6 = pbVar56[0xc];\n          uVar60 = (uint)bVar6;\n          if (bVar6 == 0x24) {\n            if ((pbVar56[0xd] == '\x01') && (pbVar56[0xe] == '1')) {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if (((((char *)0x4 < pcVar47) && (bVar6 == 0x47)) && (pbVar56[0xd] == 'A')) &&\n                  ((pbVar56[0xe] == '$' && (pbVar56[0xf] == '\x01')))) {\n            bVar6 = pbVar56[0x10];\n            uVar60 = (uint)bVar6;\n            if (bVar6 == 0x32) {\n              local_a8 = (asection *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar6 != 0x33) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "corrupt GNU build attribute note: unsupported version",\n                                            5,uVar60);\n                goto LAB_0001ae12;\n              }\n              local_84 = (asymbol **)((int)local_84 + 1);\n            }\n          }\n          if (uVar63 == 4) {\n            bVar73 = (*ibfd->xvec->bfd_getx32)(pbVar35);\nLAB_0001ade8:\n            bVar74 = 0xffffffffffffffff;\n          }\n          else if (uVar63 < 5) {\n            if (uVar63 != 0) {\nLAB_0001ae8d:\n              pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: bad description size"\n                                          ,5,uVar60);\n              goto LAB_0001ae12;\n            }\n            bVar74 = 0;\n            bVar73 = 0;\n          }\n          else if (uVar63 == 8) {\n            pbVar13 = ibfd->xvec;\n            if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n              bVar73 = (*pbVar13->bfd_getx64)(pbVar35);\n              goto LAB_0001ade8;\n            }\n            bVar73 = (*pbVar13->bfd_getx32)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx32)(&pbVar35->id);\n          }\n          else {\n            uVar60 = uVar63;\n            if (uVar63 != 0x10) goto LAB_0001ae8d;\n            bVar73 = (*ibfd->xvec->bfd_getx64)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx64)(&pbVar35->index);\n          }\n          if (uVar48 == 0x100) {\n            paVar51 = (asection *)(int)bVar73;\n            if (bVar73 == 0) {\n              paVar51 = local_b8;\n            }\n            uVar63 = (int)bVar74;\n            if (bVar74 == 0) {\n              uVar63 = local_bc;\n            }\n            *(undefined4 *)((int)&paVar68->vma + 4) = 0;\n            *(asection **)&paVar68->vma = paVar51;\n            *(uint *)&paVar68->lma = uVar63;\n            *(undefined4 *)((int)&paVar68->lma + 4) = 0;\n            local_bc = uVar63;\n            local_b8 = paVar51;\n          }\n          else {\n            pvVar49 = (void *)(int)bVar73;\n            if (bVar73 == 0) {\n              pvVar49 = local_c0;\n            }\n            pcVar47 = (char *)(int)bVar74;\n            if (bVar74 == 0) {\n              pcVar47 = local_c4;\n            }\n            *(undefined4 *)((int)&paVar68->vma + 4) = 0;\n            *(void **)&paVar68->vma = pvVar49;\n            *(char **)&paVar68->lma = pcVar47;\n            *(undefined4 *)((int)&paVar68->lma + 4) = 0;\n            local_c4 = pcVar47;\n            local_c0 = pvVar49;\n          }\n          if (*(char *)((int)&paVar68->next->name + (int)(paVar68->name + -1)) != '\0') {\n            pcVar27 = (char *)dcgettext(0,\n                                        "corrupt GNU build attribute note: name not NUL terminated",\n                                        5,paVar68->name);\n            goto LAB_0001ae12;\n          }\n          paVar68 = (asection *)((int)&paVar68->size + 4);\n          pbVar56 = pbVar56 + (int)pcVar31;\n        }\n        if (local_78 == (asection *)0x0 && local_7c == (char *)0x0) {\n          if (local_a4 == 0 && (local_a8 == (asection *)0x0 && local_84 == (asymbol **)0x0)) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: no known versions detected",\n                                        5,-(int)local_78 - (uint)((char *)0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (asection *)0x0 || local_84 != (asymbol **)0x0)) ||\n             ((local_a8 != (asection *)0x0 && (local_84 != (asymbol **)0x0)))) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: multiple different versions"\n                                        ,5,paVar68);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (asection *)0x1) || (local_84 == (asymbol **)0x1))\n          goto LAB_0001ae41;\n          uVar63 = -(uint)(local_a4 == 0) & 2;\n          iVar22 = uVar63 + 1;\n          if (*(char *)((int)&local_74->next->name + iVar22) != '\x01') {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: first note not version note"\n                                        ,5,iVar22);\n            goto LAB_0001ae12;\n          }\n          bVar69 = false;\n          iVar52 = uVar63 + 2;\n          pbVar35 = local_74;\nLAB_0001afd1:\n          paVar51 = pbVar35;\n          local_6c = (bfd_section *)((int)&paVar51->size + 4);\n          pbVar35 = local_6c;\n          if (local_6c < paVar68) {\n            if (*(int *)((int)&paVar51->rawsize + 4) == 0x100) {\n              local_a8 = (asection *)0x0;\n              pvVar49 = *(void **)&paVar51->compressed_size;\n              local_6c = paVar51;\n              while (pbVar50 = local_6c, local_74 <= local_6c) {\n                pbVar14 = local_6c->next;\n                cVar7 = *(char *)((int)&pbVar14->name + iVar22);\n                paVar21 = local_a8;\n                if ((((local_a8 != (asection *)0x0) || (local_6c->id == 0)) ||\n                    (paVar21 = local_6c, local_6c->index != 0x101)) &&\n                   ((local_a8 = paVar21, *(char *)((int)pvVar49 + iVar22) == cVar7 &&\n                    (local_6c->index == 0x100)))) {\n                  pcVar47 = pbVar35->name;\n                  if (cVar7 != '\x04') {\n                    pcVar31 = local_6c->name;\n                    if ((pcVar31 == pcVar47) &&\n                       (iVar43 = memcmp(pbVar14,pvVar49,(size_t)pcVar31), pvVar75 = pvVar49,\n                       pcVar26 = pcVar31, pcVar45 = pcVar47, iVar43 == 0)) {\n                      uVar63 = *(uint *)((int)&local_6c->lma + 4);\n                      pbVar50 = *(bfd_section **)&local_6c->lma;\n                      if (uVar63 != 0 || pbVar50 != (bfd_section *)0x0) {\n                        pbVar14 = paVar51->output_section;\n                        uVar48 = paVar51->alignment_power;\n                        if ((uVar48 != 0 || pbVar14 != (bfd_section *)0x0) &&\n                           ((-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)))) {\n                          *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;\n                          if (uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)) {\n                            *(bfd_section **)&local_6c->lma = pbVar14;\n                            *(uint *)((int)&local_6c->lma + 4) = uVar48;\n                          }\n                          bVar69 = true;\n                          if (local_84 != (asymbol **)0x0) {\n                            *(undefined4 *)&local_6c->size = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (asymbol **)0x0) {\n                      if ((((int)paVar51->rawsize == 0) && (local_a8 != (asection *)0x0)) &&\n                         (local_a8->index == 0)) {\n                        local_a8->index = 0x100;\n                      }\n                    }\n                    else {\n                      paVar51->relocation = (reloc_cache_entry *)0x1;\n                      *(undefined4 *)((int)&paVar51->rawsize + 4) = 0x101;\n                      *(undefined4 *)&local_6c->size = 1;\n                      local_6c->index = 0x101;\n                    }\n                    break;\n                  }\n                  uVar63 = 0;\n                  for (iVar43 = 0; (int)pcVar47 - iVar52 != iVar43; iVar43 = iVar43 + 1) {\n                    uVar63 = uVar63 | (uint)*(byte *)((int)pvVar49 + iVar43 + iVar52) <<\n                                      ((char)iVar43 * '\b' & 0x1fU);\n                  }\n                  local_6c = (bfd_section *)0x0;\n                  pcVar47 = pbVar50->name;\n                  pcVar31 = (char *)((int)&pbVar14->name + iVar52);\n                  for (uVar48 = 0; (int)pcVar47 - iVar52 != uVar48; uVar48 = uVar48 + 1) {\n                    local_6c = (bfd_section *)\n                               ((uint)local_6c |\n                               (uint)(byte)pcVar31[uVar48] << ((char)uVar48 * '\b' & 0x1fU));\n                  }\n                  uVar67 = 0;\n                  uVar63 = (int)local_6c + uVar63;\n                  for (uVar60 = uVar63; uVar60 != 0; uVar60 = uVar60 >> 8) {\n                    uVar67 = uVar67 + 1;\n                  }\n                  in_stack_ffffff28 = pbVar50;\n                  if (uVar67 < uVar48) {\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = (bfd_section *)&pbVar50[-1].entsize;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          if (!bVar69) goto LAB_0001ae41;\n          pvVar49 = (void *)xmalloc(pcVar27,pvVar75,pcVar26,pcVar45);\n          local_cc = local_7c;\n          pvVar75 = pvVar49;\n          in_stack_ffffff28 = local_78;\n          local_a8 = (asection *)pbVar39;\n          for (paVar51 = local_74; paVar51 < paVar68;\n              paVar51 = (asection *)((int)&paVar51->size + 4)) {\n            pcVar45 = paVar51->name;\n            uVar63 = paVar51->index;\n            pcVar26 = pcVar45 + paVar51->id + 0xc;\n            pvVar54 = pvVar75;\n            if (uVar63 != 0) {\n              if ((int)paVar51->size == 0) {\n                memcpy(pvVar75,local_a8,(size_t)pcVar26);\n                pvVar54 = (void *)((int)pvVar75 + (int)pcVar26);\n              }\n              else {\n                pbVar1 = &paVar51->vma;\n                bVar72 = *pbVar1;\n                bVar73 = *pbVar1;\n                p_Var15 = ibfd->xvec->bfd_putx32;\n                __dest = (void *)((int)pvVar75 + 0xc);\n                pvVar54 = (void *)((int)__dest + (int)pcVar45);\n                if (((*(asection **)((int)&paVar51->vma + 4) == local_78) &&\n                    (*(char **)pbVar1 == local_7c)) &&\n                   ((*(asection **)((int)&paVar51->lma + 4) == in_stack_ffffff28 &&\n                    (*(char **)&paVar51->lma == local_cc)))) {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  (*ibfd->xvec->bfd_putx32)(0,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                }\n                else {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  uVar48 = 8;\n                  if ((ibfd->xvec->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    uVar48 = 0x10;\n                  }\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar48,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                  pbVar13 = ibfd->xvec;\n                  if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    (*pbVar13->bfd_putx64)(bVar73,pvVar54);\n                    (*ibfd->xvec->bfd_putx64)(paVar51->lma,(void *)((int)pvVar54 + 8));\n                    pvVar54 = (void *)((int)pvVar54 + 0x10);\n                  }\n                  else {\n                    (*pbVar13->bfd_putx32)(bVar72,pvVar54);\n                    (*ibfd->xvec->bfd_putx32)(paVar51->lma,(void *)((int)pvVar54 + 4));\n                    pvVar54 = (void *)((int)pvVar54 + 8);\n                  }\n                }\n              }\n              local_7c = *(char **)&paVar51->vma;\n              local_78 = *(asection **)((int)&paVar51->vma + 4);\n              local_cc = *(char **)&paVar51->lma;\n              in_stack_ffffff28 = *(asection **)((int)&paVar51->lma + 4);\n            }\n            local_a8 = (asection *)((int)local_a8 + (int)pcVar26);\n            pvVar75 = pvVar54;\n          }\n          pcVar26 = (char *)((int)pvVar75 - (int)pvVar49);\n          paVar68 = (asection *)((int)pcVar26 >> 0x1f);\n          in_stack_ffffff24 = (bfd_section *)obfd;\n          memcpy(pbVar39,pvVar49,(size_t)pcVar26);\n          free(pvVar49);\n          free(local_74);\n          local_6c = (bfd_section *)obfd;\n          merged_size._0_4_ = pcVar26;\n          merged_size._4_4_ = paVar68;\n          if ((paVar53 != paVar68) || (pcVar27 != pcVar26)) {\n            pbVar35 = paVar30->output_section;\n            if ((pbVar35 != (bfd_section *)0x0) &&\n               (pbVar35 = (bfd_section *)bfd_set_section_size(obfd,pbVar35,pcVar26,paVar68),\n               pbVar35 != (bfd_section *)0x0)) goto LAB_00018e0e;\n            pcVar27 = (char *)dcgettext(0,"warning: failed to set merged notes size",5,pbVar35);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n          }\n        }\n        else {\n          pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,\n                                      local_7c);\nLAB_0001ae12:\n          if (pcVar27 != (char *)0x0) {\n            bfd_set_error(0x11);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            status = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n          local_6c = (bfd_section *)obfd;\n        }\n        free(merged_notes);\n        merged_notes = (bfd_byte *)0x0;\n        merge_notes = 0;\n        merged_size._0_4_ = (char *)0x0;\n        merged_size._4_4_ = (asection *)0x0;\n      }\n    }\n  }\nLAB_00018e0e:\n  obfd = (bfd *)local_6c;\n  local_c4 = gnu_debuglink_filename;\n  for (psVar57 = dump_sections; gnu_debuglink_filename = local_c4, psVar57 != (section_add *)0x0;\n      psVar57 = psVar57->next) {\n    paVar30 = (asection *)bfd_get_section_by_name(ibfd,*(char **)((int)psVar57 + 4));\n    if (paVar30 == (asection *)0x0) {\n      pcVar27 = *(char **)((int)psVar57 + 4);\n      pcVar26 = (char *)dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n      bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar26,pcVar27);\n    }\n    else {\n      if ((paVar30->flags & 0x100) == 0) {\n        pcVar27 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar37 = (size_t)paVar30->size;\n        iVar22 = *(int *)((int)&paVar30->size + 4);\n        if (iVar22 != 0 || sVar37 != 0) {\n          __s = fopen64(*(char **)((int)psVar57 + 8),"w");\n          if (__s == (FILE *)0x0) {\n            pcVar27 = (char *)dcgettext(0,"could not open section dump file",5);\n            bfd_nonfatal_message(*(char **)((int)psVar57 + 8),(bfd *)0x0,(asection *)0x0,pcVar27);\n          }\n          else {\n            iVar52 = bfd_malloc_and_get_section(ibfd,paVar30,&contents);\n            if (iVar52 == 0) {\n              pcVar27 = (char *)dcgettext(0,"could not retrieve section contents",5);\n              bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            }\n            else {\n              sVar38 = fwrite(contents,1,sVar37,__s);\n              if (iVar22 != 0 || sVar37 != sVar38) {\n                piVar44 = __errno_location();\n                pcVar26 = strerror(*piVar44);\n                pcVar27 = *(char **)((int)psVar57 + 8);\n                pcVar45 = (char *)dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                non_fatal(pcVar45,pcVar27,pcVar26);\n                free(contents);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(contents);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar27 = "can\'t dump section - it is empty";\n      }\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n    }\nLAB_00018eb1:\n    local_c4 = gnu_debuglink_filename;\n  }\n  if (local_c4 != (char *)0x0) {\n    iVar22 = bfd_get_section_by_name(local_6c,".gnu_debuglink");\n    if (iVar22 == 0) {\n      local_c4 = (char *)bfd_create_gnu_debuglink_section(local_6c,gnu_debuglink_filename);\n      pcVar27 = gnu_debuglink_filename;\n      if (local_c4 == (char *)0x0) {\n        pcVar26 = (char *)dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        bfd_nonfatal_message((char *)0x0,(bfd *)local_6c,(asection *)0x0,pcVar26,pcVar27);\n        return 0;\n      }\n      if (*(int *)(local_6c->id + 4) == 2) {\n        prVar42 = (reloc_cache_entry *)local_6c->orelocation;\n        prVar62 = (reloc_cache_entry *)0x0;\n        if (prVar42 == (reloc_cache_entry *)0x0) {\nLAB_0001aa69:\n          uVar63 = 0x1000;\n          iVar22 = 0;\n        }\n        else {\n          do {\n            prVar12 = *(reloc_cache_entry **)((int)&prVar42[1].address + 4);\n            prVar61 = prVar62;\n            if (((prVar12 != (reloc_cache_entry *)0x0 ||\n                  *(reloc_cache_entry **)&prVar42[1].address != (reloc_cache_entry *)0x0) &&\n                (prVar61 = prVar42, prVar62 != (reloc_cache_entry *)0x0)) &&\n               (prVar11 = *(reloc_cache_entry **)((int)&prVar62[1].address + 4), prVar61 = prVar62,\n               prVar11 < prVar12 ||\n               (uint)((int)prVar11 - (int)prVar12) <\n               (uint)(*(reloc_cache_entry **)&prVar62[1].address <\n                     *(reloc_cache_entry **)&prVar42[1].address))) {\n              prVar61 = prVar42;\n            }\n            prVar42 = *(reloc_cache_entry **)&prVar42->addend;\n            prVar62 = prVar61;\n          } while (prVar42 != (reloc_cache_entry *)0x0);\n          if (prVar61 == (reloc_cache_entry *)0x0) goto LAB_0001aa69;\n          uVar63 = (int)&(prVar61[1].howto)->type + (int)*(reloc_cache_entry **)&prVar61[1].address;\n          iVar22 = (int)&((reloc_cache_entry *)prVar61[2].sym_ptr_ptr)->sym_ptr_ptr +\n                   (int)&(*(reloc_cache_entry **)((int)&prVar61[1].address + 4))->sym_ptr_ptr +\n                   (uint)CARRY4((uint)prVar61[1].howto,\n                                (uint)*(reloc_cache_entry **)&prVar61[1].address);\n          if (-iVar22 - 1U < (uint)(0xfffff000 < uVar63)) {\n            uVar63 = 0xffffffff;\n            iVar22 = -1;\n          }\n          else {\n            iVar22 = iVar22 + (uint)(0xfffff000 < uVar63);\n            uVar63 = uVar63 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(local_c4 + 0x24) = uVar63;\n        *(int *)(local_c4 + 0x28) = iVar22;\n        *(uint *)(local_c4 + 0x1c) = uVar63;\n        *(int *)(local_c4 + 0x20) = iVar22;\n        local_c4[0x18] = local_c4[0x18] | 1;\n      }\n    }\n    else {\n      pcVar27 = local_6c->name;\n      pcVar26 = (char *)dcgettext(0,"%s: debuglink section already exists",5);\n      non_fatal(pcVar26,pcVar27);\n      gnu_debuglink_filename = (char *)0x0;\n      local_c4 = (char *)0x0;\n    }\n  }\n  sVar37 = (size_t)local_6c->filepos;\n  if ((sVar37 == 0) || (gap_fill_set == 0 && pad_to_set == 0)) {\n    local_b8 = (asection *)0x0;\n    local_bc = 0;\n    local_b4 = (void *)0x0;\n    local_a8 = (asection *)0x0;\n    uVar63 = local_bc;\n    paVar30 = local_b8;\n  }\n  else {\n    local_a8 = (asection *)xmalloc(sVar37 * 4);\n    contents = (bfd_byte *)local_a8;\n    bfd_map_over_sections(local_6c,get_sections,&contents);\n    qsort(local_a8,sVar37,4,compare_section_lma);\n    sVar38 = sVar37 * 8;\n    local_b4 = (void *)xmalloc(sVar38);\n    memset(local_b4,0,sVar38);\n    if ((gap_fill_set == 0) || (sVar37 == 1)) {\n      local_b8 = (asection *)0x0;\n      local_bc = 0;\n    }\n    else {\n      local_b8 = (asection *)0x0;\n      local_bc = 0;\n      local_6c = (bfd_section *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (bfd_section *)((int)local_6c + 1);\n        iVar22 = *local_64;\n        uVar63 = local_bc;\n        paVar30 = local_b8;\n        if ((*(uint *)(iVar22 + 0x14) & 0x102) == 0x102) {\n          uVar48 = *(uint *)(iVar22 + 0x2c);\n          uVar60 = *(uint *)(local_64[1] + 0x28);\n          uVar67 = *(uint *)(local_64[1] + 0x24);\n          uVar55 = uVar48 + *(uint *)(iVar22 + 0x24);\n          uVar64 = *(int *)(iVar22 + 0x30) + *(int *)(iVar22 + 0x28) +\n                   (uint)CARRY4(uVar48,*(uint *)(iVar22 + 0x24));\n          if (uVar64 < uVar60 || uVar64 - uVar60 < (uint)(uVar55 < uVar67)) {\n            paVar30 = (asection *)(uVar67 - uVar55);\n            uVar63 = (uVar60 - uVar64) - (uint)(uVar67 < uVar55);\n            iVar22 = bfd_set_section_size\n                               (obfd,iVar22,(int)&paVar30->name + uVar48,\n                                *(int *)(iVar22 + 0x30) + uVar63 +\n                                (uint)CARRY4(uVar48,(uint)paVar30));\n            if (iVar22 == 0) {\n              pcVar27 = (char *)dcgettext(0,"Can\'t fill gap after section",5,0);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_64,pcVar27);\n              status = 1;\n              break;\n            }\n            *(asection **)((int)local_b4 + (int)local_6c * 8 + -8) = paVar30;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar63;\n            if (uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63) {\n              uVar63 = local_bc;\n              paVar30 = local_b8;\n            }\n          }\n        }\n        local_b8 = paVar30;\n        local_bc = uVar63;\n        local_64 = local_64 + 1;\n      } while ((bfd_section *)(sVar37 - 1) != local_6c);\n    }\n    uVar63 = local_bc;\n    paVar30 = local_b8;\n    if (pad_to_set != 0) {\n      iVar22 = *(int *)((int)local_a8 + (sVar37 - 1) * 4);\n      uVar48 = *(uint *)(iVar22 + 0x24);\n      uVar60 = uVar48 + *(uint *)(iVar22 + 0x2c);\n      uVar67 = *(int *)(iVar22 + 0x28) + *(int *)(iVar22 + 0x30) +\n               (uint)CARRY4(uVar48,*(uint *)(iVar22 + 0x2c));\n      if (uVar67 < pad_to._4_4_ || uVar67 - pad_to._4_4_ < (uint)(uVar60 < (uint)pad_to)) {\n        iVar22 = bfd_set_section_size\n                           (obfd,iVar22,(uint)pad_to - uVar48,\n                            (pad_to._4_4_ - *(int *)(iVar22 + 0x28)) - (uint)((uint)pad_to < uVar48)\n                           );\n        if (iVar22 == 0) {\n          pcVar27 = (char *)dcgettext(0,"can\'t add padding",5,uVar60);\n          bfd_nonfatal_message\n                    ((char *)0x0,obfd,*(asection **)((int)local_a8 + (sVar37 - 1) * 4),pcVar27);\n          status = 1;\n        }\n        else {\n          paVar30 = (asection *)((uint)pad_to - uVar60);\n          uVar63 = (pad_to._4_4_ - uVar67) - (uint)((uint)pad_to < uVar60);\n          *(asection **)((int)local_b4 + (sVar38 - 8)) = paVar30;\n          *(uint *)((int)local_b4 + (sVar38 - 4)) = uVar63;\n          if (uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63) {\n            uVar63 = local_bc;\n            paVar30 = local_b8;\n          }\n        }\n      }\n    }\n  }\n  local_b8 = paVar30;\n  local_bc = uVar63;\n  local_c0 = (void *)0x0;\n  if (convert_debugging != 0) {\n    local_c0 = read_debugging_info(ibfd,isympp,local_8c,0);\n  }\n  if (strip_symbols - STRIP_DEBUG < 6) {\nLAB_0001962a:\n    if (strip_symbols != STRIP_ALL) goto LAB_0001962f;\n  }\n  else {\n    if (localize_hidden == 0 && discard_locals == LOCALS_UNDEF) {\n      iVar22 = htab_elements(strip_specific_htab);\n      if ((((((iVar22 == 0) && (iVar22 = htab_elements(keep_specific_htab), iVar22 == 0)) &&\n            (iVar22 = htab_elements(localize_specific_htab), iVar22 == 0)) &&\n           ((iVar22 = htab_elements(globalize_specific_htab), iVar22 == 0 &&\n            (iVar22 = htab_elements(keepglobal_specific_htab), iVar22 == 0)))) &&\n          (iVar22 = htab_elements(weaken_specific_htab), iVar22 == 0)) &&\n         (((iVar22 = htab_elements(redefine_specific_htab), 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) && iVar22 == 0)))) goto LAB_00019e4d;\n      goto LAB_0001962a;\n    }\nLAB_0001962f:\n    bfd_set_error(0);\n    bfd_map_over_sections(ibfd,mark_symbols_used_in_relocations,isympp);\n    iVar22 = bfd_get_error();\n    if (iVar22 != 0) {\n      status = 1;\n      return 0;\n    }\n  }\n  ppaVar34 = (asymbol **)xmalloc((add_symbols + local_8c) * 4 + 4);\n  local_84 = isympp;\n  uVar63 = *(uint *)&ibfd->field_0x28;\n  osympp = ppaVar34;\n  if (local_8c != 0) {\n    ppaVar2 = isympp + local_8c;\n    local_8c = 0;\n    pbVar35 = (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0);\n    do {\n      iVar22 = add_symbols;\n      paVar40 = *local_84;\n      uVar48 = paVar40->flags;\n      pbVar39 = (bfd_byte *)paVar40->name;\n      pbVar50 = paVar40->section;\n      if (((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&\n         (pcVar27 = add_sym_list->othersym, pcVar27 != (char *)0x0)) {\n        local_6c = (bfd_section *)0x0;\n        ptr = add_sym_list;\n        while (iVar52 = strcmp(pcVar27,(char *)pbVar39), iVar52 != 0) {\n          local_6c = (bfd_section *)((int)local_6c + 1);\n          ptr = ptr->next;\n          if ((local_6c == (bfd_section *)iVar22) ||\n             (pcVar27 = ptr->othersym, pcVar27 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar27);\n        ptr->othersym = "";\n        ppaVar3 = ppaVar34 + local_8c;\n        local_8c = local_8c + 1;\n        paVar36 = create_new_symbol(ptr,obfd);\n        *ppaVar3 = paVar36;\n      }\nLAB_000197a8:\n      iVar22 = htab_elements(redefine_specific_htab);\n      pbVar56 = pbVar39;\n      if ((iVar22 != 0) || (section_rename_list != (section_rename *)0x0)) {\n        local_30 = 0;\n        contents = pbVar39;\n        iVar22 = htab_find(redefine_specific_htab,&contents);\n        if (((iVar22 == 0) || (pbVar56 = *(bfd_byte **)(iVar22 + 4), pbVar39 == pbVar56)) &&\n           (psVar18 = section_rename_list, (uVar48 & 0x100) != 0)) {\n          for (; pbVar56 = pbVar39, psVar18 != (section_rename *)0x0; psVar18 = psVar18->next) {\n            iVar22 = strcmp(psVar18->old_name,(char *)pbVar39);\n            if (iVar22 == 0) {\n              pbVar56 = (bfd_byte *)psVar18->new_name;\n              break;\n            }\n          }\n        }\n        paVar40->name = (char *)pbVar56;\n      }\n      pcVar27 = prefix_symbols_string;\n      bVar5 = ibfd->xvec->symbol_leading_char;\n      if (*pbVar56 == bVar5) {\n        if (change_leading_char == 0) {\n          if ((remove_leading_char != 0) &&\n             ((((uVar48 & 0x82) != 0 || (pbVar50 == pbVar35)) ||\n              ((paVar40->section->flags & 0x1000) != 0)))) {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n          }\nLAB_0001982b:\n          if (pcVar27 != (char *)0x0) {\n            sVar37 = strlen(pcVar27);\n            sVar38 = strlen((char *)pbVar56);\n            pbVar39 = (bfd_byte *)xmalloc(sVar37 + 2 + sVar38);\n            local_6c = (bfd_section *)pbVar39;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          bVar5 = *(bfd_byte *)(((bfd_section *)obfd)->id + 0x18);\n          if (bVar5 == '\0') {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n            goto LAB_0001982b;\n          }\n          if (prefix_symbols_string != (char *)0x0) {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n            goto LAB_00019ab1;\n          }\n          *pbVar56 = bVar5;\n          paVar40->name = (char *)pbVar56;\n        }\n      }\n      else {\n        if (((change_leading_char == 0) || (*(char *)(((bfd_section *)obfd)->id + 0x18) == '\0')) ||\n           (bVar5 != '\0')) goto LAB_0001982b;\nLAB_00019ab1:\n        sVar37 = strlen(pcVar27);\n        sVar38 = strlen((char *)pbVar56);\n        pbVar39 = (bfd_byte *)xmalloc(sVar37 + 2 + sVar38);\n        local_6c = (bfd_section *)(pbVar39 + 1);\n        *pbVar39 = *(bfd_byte *)(((bfd_section *)obfd)->id + 0x18);\nLAB_00019858:\n        pcVar27 = prefix_symbols_string;\n        if (prefix_symbols_string != (char *)0x0) {\n          strcpy((char *)local_6c,prefix_symbols_string);\n          sVar37 = strlen(pcVar27);\n          local_6c = (bfd_section *)((int)local_6c + sVar37);\n        }\n        strcpy((char *)local_6c,(char *)pbVar56);\n        paVar40->name = (char *)pbVar39;\n        pbVar56 = pbVar39;\n      }\n      if (strip_symbols == STRIP_ALL) goto LAB_00019928;\n      if ((uVar48 & 0x20) == 0) {\n        if (((uVar48 & 0x100) == 0) || (((*paVar40->section->symbol_ptr_ptr)->flags & 0x20) == 0)) {\n          if ((((uVar63 >> 5 & 0x42) == 0) &&\n              (((uVar48 & 0x82) != 0 || ((paVar40->section->flags & 0x1000) != 0)))) ||\n             (iVar22 = bfd_decode_symclass(paVar40), iVar22 == 0x49)) {\nLAB_00019b80:\n            bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n            if (bVar25 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar48 & 0x82) == 0) &&\n                   (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0))) &&\n                  ((paVar40->section->flags & 0x1000) == 0)) {\n            if ((uVar48 & 4) == 0) {\n              if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                  (pvVar75 = paVar40->section->used_by_bfd, pvVar75 == (void *)0x0)) ||\n                 (*(int *)((int)pvVar75 + 0x2c) == 0)) {\n                if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                goto LAB_00019928;\n                if (discard_locals == LOCALS_START_L) {\n                  iVar22 = bfd_is_local_label(ibfd,paVar40,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar22 = convert_debugging;\n            if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0001a753:\n              if (iVar22 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (strip_symbols != STRIP_UNNEEDED) goto LAB_00019b80;\n        }\n        else {\n          bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n          if (bVar25 != 0) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "not stripping symbol `%s\' because it is named in a relocation"\n                                        ,5,bVar25);\n            non_fatal(pcVar27,pbVar56);\n            status = 1;\n          }\nLAB_00019910:\n          bVar25 = is_specified_symbol((char *)pbVar56,strip_unneeded_htab);\n          if (bVar25 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((keep_file_symbols != 0) && ((uVar48 & 0x4000) != 0)) ||\n           (bVar25 = is_specified_symbol((char *)pbVar56,keep_specific_htab), bVar25 != 0))\n        goto LAB_0001994f;\n      }\n      else {\n        bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n        if (bVar25 != 0) {\n          pcVar27 = (char *)dcgettext(0,\n                                      "not stripping symbol `%s\' because it is named in a relocation"\n                                      ,5);\n          non_fatal(pcVar27,pbVar56);\n          status = 1;\n        }\nLAB_0001994f:\n        bVar25 = is_strip_section((bfd *)in_stack_ffffff24,in_stack_ffffff28);\n        if (bVar25 == 0) {\n          if (((uVar48 & 2) != 0) &&\n             ((weaken != 0 ||\n              (bVar25 = is_specified_symbol((char *)pbVar56,weaken_specific_htab), bVar25 != 0)))) {\n            paVar40->flags = paVar40->flags & 0xfffffffd | 0x80;\n          }\n          if (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0)) {\n            if (((uVar48 & 0x82) != 0) &&\n               (((bVar25 = is_specified_symbol((char *)pbVar56,localize_specific_htab), bVar25 != 0\n                 || ((iVar22 = htab_elements(keepglobal_specific_htab), iVar22 != 0 &&\n                     (bVar25 = is_specified_symbol((char *)pbVar56,keepglobal_specific_htab),\n                     bVar25 == 0)))) ||\n                ((localize_hidden != 0 &&\n                 ((((pbVar46 = paVar40->the_bfd, pbVar46 != (bfd *)0x0 &&\n                    (pbVar46->xvec->flavour == bfd_target_elf_flavour)) &&\n                   ((pbVar46->tdata).aout_data != (aout_data_struct *)0x0)) &&\n                  ((*(byte *)((int)&paVar40[1].section + 1) & 3) - 1 < 2)))))))) {\n              paVar40->flags = paVar40->flags & 0xffffff7d | 1;\n            }\n            if (((uVar48 & 1) != 0) &&\n               (bVar25 = is_specified_symbol((char *)pbVar56,globalize_specific_htab), bVar25 != 0))\n            {\n              paVar40->flags = paVar40->flags & 0xfffffffe | 2;\n            }\n          }\n          ppaVar34[local_8c] = paVar40;\n          local_8c = local_8c + 1;\n        }\n      }\n      local_84 = local_84 + 1;\n    } while (ppaVar2 != local_84);\n  }\n  local_6c = (bfd_section *)add_sym_list;\n  if ((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) {\n    iVar22 = 0;\n    do {\n      pcVar27 = (char *)local_6c->flags;\n      if (pcVar27 == (char *)0x0) {\n        paVar40 = create_new_symbol((addsym_node *)local_6c,obfd);\n        ppaVar34[local_8c] = paVar40;\n        local_8c = local_8c + 1;\n      }\n      else if (*pcVar27 != '\0') {\n        pcVar26 = (char *)dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    /* WARNING: Subroutine does not return */\n        fatal(pcVar26,pcVar27);\n      }\n      iVar22 = iVar22 + 1;\n      local_6c = (bfd_section *)local_6c->name;\n    } while (iVar22 < add_symbols);\n  }\n  ppaVar34[local_8c] = (asymbol *)0x0;\n  if ((convert_debugging != 0) && (local_c0 != (void *)0x0)) {\n    iVar22 = ((undefined4 *)((bfd_section *)obfd)->id)[1];\n    if ((iVar22 == 2) || (iVar22 == 5)) {\n      bVar25 = write_stabs_in_sections_debugging_info\n                         (obfd,local_c0,&syms,(bfd_size_type *)file_alignment,&strings,\n                          (bfd_size_type *)&contents);\n      if (bVar25 != 0) {\n        iVar22 = bfd_make_section_with_flags(obfd,".stab",0x2108);\n        iVar52 = bfd_make_section_with_flags(obfd,".stabstr",0x2108);\n        if ((((iVar22 == 0) || (iVar52 == 0)) ||\n            (iVar43 = bfd_set_section_size(obfd,iVar22,file_alignment._0_4_,file_alignment._4_4_),\n            iVar43 == 0)) ||\n           (iVar43 = bfd_set_section_size(obfd,iVar52,contents,local_30), iVar43 == 0)) {\n          pcVar27 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar22 + 0x58) = 2;\n          *(undefined4 *)(iVar52 + 0x58) = 0;\n          iVar22 = bfd_set_section_contents\n                             (obfd,iVar22,syms,0,0,file_alignment._0_4_,file_alignment._4_4_,iVar43)\n          ;\n          if ((iVar22 != 0) &&\n             (iVar22 = bfd_set_section_contents\n                                 (obfd,iVar52,strings,0,0,contents,local_30,extraout_ECX),\n             iVar22 != 0)) goto LAB_00019e4d;\n          pcVar27 = "can\'t set debugging section contents";\n          iVar22 = iVar52;\n        }\n        pcVar27 = (char *)dcgettext(0,pcVar27,5,iVar22);\n        bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27);\n      }\n    }\n    else {\n      uVar32 = *(undefined4 *)((bfd_section *)obfd)->id;\n      pcVar27 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",5);\n      bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27,uVar32);\n    }\n    status = 1;\n    return 0;\n  }\nLAB_00019e4d:\n  bfd_set_symtab(obfd,osympp,local_8c);\n  bfd_map_over_sections(ibfd,copy_relocations_in_section,obfd);\n  bfd_map_over_sections(ibfd,copy_section,obfd);\n  for (psVar57 = add_sections; pbVar35 = (bfd_section *)obfd, psVar17 = update_sections,\n      psVar57 != (section_add *)0x0; psVar57 = psVar57->next) {\n    iVar22 = bfd_set_section_contents(obfd,psVar57->section,psVar57->contents,0,0,psVar57->size,0);\n    if (iVar22 == 0) {\nLAB_00019d5e:\n      bfd_nonfatal_message((char *)0x0,obfd,psVar57->section,(char *)0x0);\n      return 0;\n    }\n  }\n  while( true ) {\n    if (psVar17 == (section_add *)0x0) {\n      paVar30 = (asection *)0x0;\n      if (merge_notes != 0) {\n        paVar30 = (asection *)bfd_get_section_by_name(obfd,".gnu.build.attributes");\n        if (((paVar30 == (asection *)0x0) || (merge_notes == 0)) ||\n           ((*(int *)(((bfd_section *)obfd)->id + 4) != 5 ||\n            (bVar25 = is_merged_note_section\n                                ((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1_00),\n            bVar25 == 0)))) {\n          if (is_strip == 0) {\n            pcVar27 = (char *)dcgettext(0,"could not find any mergeable note sections",5,0);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n          }\n        }\n        else {\n          iVar22 = bfd_set_section_contents\n                             (obfd,paVar30,merged_notes,0,0,(char *)merged_size,merged_size._4_4_,\n                              bVar25);\n          if (iVar22 == 0) {\n            pcVar27 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n            return 0;\n          }\n        }\n        free(merged_notes);\n        merged_notes = (bfd_byte *)0x0;\n        merge_notes = 0;\n        pbVar35 = (bfd_section *)obfd;\n      }\n      if ((gnu_debuglink_filename != (char *)0x0) &&\n         (iVar22 = bfd_fill_in_gnu_debuglink_section(obfd,local_c4,gnu_debuglink_filename),\n         pcVar27 = gnu_debuglink_filename, iVar22 == 0)) {\n        pcVar26 = (char *)dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar26,pcVar27);\n        return 0;\n      }\n      if (gap_fill_set != 0 || pad_to_set != 0) {\n        paVar30 = (asection *)0x2000;\n        if (local_bc == 0 && (uint)((asection *)0x2000 < local_b8) <= -local_bc) {\n          paVar30 = local_b8;\n        }\n        puVar41 = (undefined4 *)xmalloc(paVar30);\n        pcVar27 = (char *)((uint)gap_fill * 0x1010101);\n        if (paVar30 < (asection *)0x4) {\n          if ((paVar30 != (asection *)0x0) &&\n             (*(char *)puVar41 = (char)pcVar27, ((uint)paVar30 & 2) != 0)) {\n            *(short *)((int)puVar41 + -2 + (int)paVar30) = (short)pcVar27;\n          }\n        }\n        else {\n          *puVar41 = pcVar27;\n          *(char **)((int)(puVar41 + -1) + (int)paVar30) = pcVar27;\n          pbVar35 = (bfd_section *)((uint)(puVar41 + 1) & 0xfffffffc);\n          for (uVar63 = (uint)(((int)puVar41 - (int)((uint)(puVar41 + 1) & 0xfffffffc)) +\n                              (int)paVar30) >> 2; uVar63 != 0; uVar63 = uVar63 - 1) {\n            pbVar35->name = pcVar27;\n            pbVar35 = (bfd_section *)((int)pbVar35 + (uint)bVar71 * -8 + 4);\n          }\n        }\n        iVar22 = (int)((bfd_section *)obfd)->filepos;\n        if (iVar22 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar44 = local_64;\n            pbVar35 = *(bfd_section **)((int)local_b4 + (int)local_64 * 8 + 4);\n            paVar30 = *(asection **)((int)local_b4 + (int)local_64 * 8);\n            if (pbVar35 != (bfd_section *)0x0 || paVar30 != (asection *)0x0) {\n              piVar4 = (int *)((int)local_a8 + local_64 * 4);\n              local_64 = *(int **)((int)local_a8 + local_64 * 4);\n              local_6c = (bfd_section *)((int)*(asection **)((int)local_64 + 0x2c) - (int)paVar30);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)pbVar35) -\n                         (uint)(*(asection **)((int)local_64 + 0x2c) < paVar30);\n              while( true ) {\n                pbVar50 = pbVar35;\n                paVar53 = paVar30;\n                if (pbVar35 != (bfd_section *)0x0 ||\n                    (uint)-(int)pbVar35 < (uint)((asection *)0x2000 < paVar30)) {\n                  paVar53 = (asection *)0x2000;\n                  pbVar50 = (bfd_section *)0x0;\n                }\n                iVar52 = bfd_set_section_contents\n                                   (obfd,local_64,puVar41,local_6c,local_68,paVar53,pbVar50);\n                if (iVar52 == 0) {\n                  bfd_nonfatal_message((char *)0x0,obfd,(asection *)*piVar4,(char *)0x0);\n                  return 0;\n                }\n                bVar69 = paVar30 < paVar53;\n                paVar30 = (asection *)((int)paVar30 - (int)paVar53);\n                pbVar35 = (bfd_section *)((int)pbVar35 + (-(uint)bVar69 - (int)pbVar50));\n                bVar69 = CARRY4((uint)local_6c,(uint)paVar53);\n                local_6c = (bfd_section *)((int)&paVar53->name + (int)local_6c);\n                local_68 = (int)&pbVar50->name + (uint)bVar69 + local_68;\n                if (pbVar35 == (bfd_section *)0x0 && paVar30 == (asection *)0x0) break;\n                local_64 = *(int **)((int)local_a8 + piVar44 * 4);\n              }\n            }\n            local_64 = (int *)((int)piVar44 + 1);\n          } while ((int *)iVar22 != local_64);\n        }\n      }\n      iVar22 = (**(code **)(((bfd_section *)obfd)->id + 0xa8))(ibfd,obfd);\n      if (iVar22 == 0) {\n        pcVar27 = (char *)dcgettext(0,"error copying private BFD data",5,pbVar35);\n        bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27);\n        return 0;\n      }\n      if ((use_alt_mach_code != 0) &&\n         (iVar22 = bfd_alt_mach_code(obfd,use_alt_mach_code,paVar30,paVar30),\n         uVar24 = use_alt_mach_code, iVar22 == 0)) {\n        pcVar27 = (char *)dcgettext(0,"this target does not support %lu alternative machine codes",5\n                                    ,pbVar35);\n        non_fatal(pcVar27,uVar24);\n        if (*(int *)(((bfd_section *)obfd)->id + 4) != 5) {\n          pcVar27 = (char *)dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          non_fatal(pcVar27);\n          return 1;\n        }\n        pcVar27 = (char *)dcgettext(0,"treating that number as an absolute e_machine value instead",\n                                    5,uVar24);\n        non_fatal(pcVar27);\n        *(short *)(((bfd_section *)obfd)->target_index + 0x32) = (short)use_alt_mach_code;\n      }\n      return 1;\n    }\n    pbVar35 = psVar17->section->output_section;\n    bVar25 = bfd_set_section_contents(obfd,pbVar35,psVar17->contents,0,0,psVar17->size,0);\n    local_6c = (bfd_section *)obfd;\n    if (bVar25 == 0) break;\n    psVar17 = psVar17->next;\n  }\nLAB_00019fa0:\n  bfd_nonfatal_message((char *)0x0,(bfd *)local_6c,pbVar35,(char *)0x0);\n  return bVar25;\nLAB_0001b1a6:\n  if ((char *)((int)&pbVar14->name + (int)pcVar47) <= pcVar31) goto LAB_0001b1aa;\n  *pcVar31 = (char)uVar63;\n  if (uVar63 == 0) goto LAB_0001b1aa;\n  uVar63 = uVar63 >> 8;\n  pcVar31 = pcVar31 + 1;\n  goto LAB_0001b1a6;\nLAB_0001b1aa:\n  bVar69 = true;\n  *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;\n  goto LAB_0001afd1;\n}" type_identifier (ERROR "__regparm3" 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  bfd_vma *pbVar1;\n  void *__dest;\n  asymbol **ppaVar2;\n  asymbol **ppaVar3;\n  int *piVar4;\n  bfd_byte bVar5;\n  byte bVar6;\n  char cVar7;\n  bfd_endian bVar8;\n  bfd_endian bVar9;\n  pe_tdata *ppVar10;\n  reloc_cache_entry *prVar11;\n  reloc_cache_entry *prVar12;\n  bfd_target *pbVar13;\n  bfd_section *pbVar14;\n  _func_void_bfd_vma_void_ptr *p_Var15;\n  bfd_flavour bVar16;\n  section_add *psVar17;\n  section_rename *psVar18;\n  undefined1 uVar19;\n  undefined1 uVar20;\n  asection *paVar21;\n  int iVar22;\n  bfd_architecture bVar23;\n  ulong uVar24;\n  bfd_boolean bVar25;\n  char *pcVar26;\n  char *pcVar27;\n  long lVar28;\n  section_list *psVar29;\n  asection *paVar30;\n  FILE *__s;\n  char *pcVar31;\n  undefined4 uVar32;\n  undefined4 uVar33;\n  asymbol **ppaVar34;\n  bfd_section *pbVar35;\n  asymbol *paVar36;\n  size_t sVar37;\n  size_t sVar38;\n  bfd_byte *pbVar39;\n  asymbol *paVar40;\n  undefined4 *puVar41;\n  reloc_cache_entry *prVar42;\n  int iVar43;\n  int *piVar44;\n  char *pcVar45;\n  bfd *pbVar46;\n  char *pcVar47;\n  uint uVar48;\n  void *pvVar49;\n  asection *sec_1;\n  bfd_section *pbVar50;\n  undefined4 extraout_ECX;\n  asection *sec_1_00;\n  undefined4 extraout_ECX_00;\n  char *extraout_ECX_01;\n  char *extraout_ECX_02;\n  asection *paVar51;\n  int iVar52;\n  asection *paVar53;\n  void *pvVar54;\n  uint uVar55;\n  addsym_node *ptr;\n  bfd_byte *pbVar56;\n  section_add *psVar57;\n  byte *pbVar58;\n  uint *puVar59;\n  uint uVar60;\n  reloc_cache_entry *prVar61;\n  reloc_cache_entry *prVar62;\n  uint uVar63;\n  uint uVar64;\n  byte *pbVar65;\n  internal_extra_pe_aouthdr *piVar66;\n  uint uVar67;\n  asection *paVar68;\n  bool bVar69;\n  bool bVar70;\n  byte bVar71;\n  bfd_vma bVar72;\n  bfd_uint64_t bVar73;\n  bfd_uint64_t bVar74;\n  void *pvVar75;\n  bfd_section *in_stack_ffffff24;\n  asection *in_stack_ffffff28;\n  char *local_cc;\n  char *local_c4;\n  void *local_c0;\n  uint local_bc;\n  asection *local_b8;\n  void *local_b4;\n  asection *local_a8;\n  int local_a4;\n  int local_8c;\n  asymbol **local_84;\n  char *local_7c;\n  asection *local_78;\n  asection *local_74;\n  bfd_section *local_6c;\n  int local_68;\n  int *local_64;\n  bfd_byte *syms;\n  bfd_byte *strings;\n  char file_alignment [20];\n  bfd_byte *contents;\n  undefined4 local_30;\n  undefined4 uStack_14;\n  \n  bVar71 = 0;\n  uStack_14 = 0x1892b;\n  bVar8 = ibfd->xvec->byteorder;\n  bVar9 = obfd->xvec->byteorder;\n  if ((bVar8 != bVar9 && bVar8 != BFD_ENDIAN_UNKNOWN) && (bVar9 != BFD_ENDIAN_UNKNOWN)) {\n    pcVar27 = (char *)dcgettext(0,"Unable to change endianness of input file(s)",5);\n    non_fatal(pcVar27);\n    return 0;\n  }\n  iVar22 = bfd_set_format(obfd,ibfd->field_0x28 & 7);\n  if (iVar22 == 0) {\n    bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,(char *)0x0);\n    return 0;\n  }\n  if (ibfd->sections == (bfd_section *)0x0) {\n    pcVar26 = bfd_get_archive_filename(ibfd);\n    pcVar27 = "error: the input file \'%s\' has no sections";\n    goto LAB_00018f38;\n  }\n  if (ibfd->xvec->flavour != bfd_target_elf_flavour) {\n    if ((do_debug_sections != _sch_isblank) && ((do_debug_sections & _sch_isblank) != nothing)) {\n      pcVar26 = bfd_get_archive_filename(ibfd);\n      pcVar27 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\nLAB_00018f38:\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      non_fatal(pcVar27,pcVar26);\n      return 0;\n    }\n    if (do_elf_stt_common != unchanged) {\n      pcVar26 = bfd_get_archive_filename(ibfd);\n      pcVar27 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      goto LAB_00018f38;\n    }\n  }\n  if (verbose != 0) {\n    pcVar27 = ibfd->xvec->name;\n    pcVar26 = obfd->xvec->name;\n    pcVar45 = obfd->filename;\n    pcVar47 = bfd_get_archive_filename(ibfd);\n    pcVar31 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n    printf(pcVar31,pcVar47,pcVar27,pcVar45,pcVar26);\n  }\n  iVar22 = 0;\n  iVar52 = 0;\n  if (extract_symbol == 0) {\n    uVar63 = (uint)set_start;\n    iVar52 = set_start._4_4_;\n    if (set_start_set == 0) {\n      uVar63 = (uint)ibfd->start_address;\n      iVar52 = *(int *)((int)&ibfd->start_address + 4);\n    }\n    iVar22 = uVar63 + (uint)change_start;\n    iVar52 = iVar52 + change_start._4_4_ + (uint)CARRY4(uVar63,(uint)change_start);\n  }\n  if ((obfd->field_0x28 & 7) != 3) {\n    uVar63 = ~bfd_flags_to_clear & obfd->xvec->object_flags &\n             (*(uint *)&ibfd->field_0x28 >> 5 & 0xfffff | bfd_flags_to_set);\n    if (strip_symbols == STRIP_ALL) {\n      uVar63 = uVar63 & 0xfffffffe;\n    }\n    iVar22 = bfd_set_start_address(obfd,iVar22,iVar52);\n    if ((iVar22 == 0) || (iVar22 = bfd_set_file_flags(obfd,uVar63), iVar22 == 0)) goto LAB_00018b70;\n  }\n  bVar23 = bfd_get_arch(ibfd);\n  uVar24 = bfd_get_mach(ibfd);\n  if (input_arch != (bfd_arch_info_type *)0x0) {\n    iVar22 = bfd_get_arch_info(ibfd);\n    if ((iVar22 == 0) || (iVar22 = bfd_get_arch_info(ibfd), *(int *)(iVar22 + 0xc) == 0)) {\n      bVar23 = input_arch->arch;\n      uVar24 = input_arch->mach;\n    }\n    else {\n      pcVar27 = bfd_get_archive_filename(ibfd);\n      pcVar26 = (char *)dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n      non_fatal(pcVar26,pcVar27);\n    }\n  }\n  bVar25 = (*obfd->xvec->_bfd_set_arch_mach)(obfd,bVar23,uVar24);\n  if (bVar25 == 0) {\n    if ((ibfd->field_0x2b & 4) != 0) {\nLAB_00018b20:\n      iVar22 = bfd_get_arch(ibfd);\n      if (iVar22 == 0) {\n        pcVar26 = bfd_get_archive_filename(ibfd);\n        pcVar27 = "Unable to recognise the format of the input file `%s\'";\n      }\n      else {\n        uVar32 = bfd_get_mach(ibfd);\n        uVar33 = bfd_get_arch(ibfd);\n        pcVar26 = (char *)bfd_printable_arch_mach(uVar33,uVar32);\n        pcVar27 = "Output file cannot represent architecture `%s\'";\n      }\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      non_fatal(pcVar27,pcVar26);\n      return 0;\n    }\n    iVar22 = bfd_get_arch(ibfd);\n    iVar52 = bfd_get_arch(obfd);\n    if (iVar22 != iVar52) goto LAB_00018b20;\n  }\n  iVar22 = bfd_set_format(obfd,ibfd->field_0x28 & 7);\n  if (iVar22 == 0) {\nLAB_00018b70:\n    bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,(char *)0x0);\n    return 0;\n  }\n  bVar16 = obfd->xvec->flavour;\n  bVar69 = bVar16 < bfd_target_coff_flavour;\n  bVar70 = bVar16 == bfd_target_coff_flavour;\n  if (bVar70) {\n    iVar22 = 4;\n    pbVar58 = (byte *)obfd->xvec->name;\n    pbVar65 = &DAT_0002f16a;\n    do {\n      if (iVar22 == 0) break;\n      iVar22 = iVar22 + -1;\n      bVar69 = *pbVar58 < *pbVar65;\n      bVar70 = *pbVar58 == *pbVar65;\n      pbVar58 = pbVar58 + (uint)bVar71 * -2 + 1;\n      pbVar65 = pbVar65 + (uint)bVar71 * -2 + 1;\n    } while (bVar70);\n    if ((!bVar69 && !bVar70) == bVar69) {\n      ppVar10 = (obfd->tdata).pe_obj_data;\n      bVar16 = ibfd->xvec->flavour;\n      bVar69 = bVar16 < bfd_target_coff_flavour;\n      bVar70 = bVar16 == bfd_target_coff_flavour;\n      if (bVar70) {\n        iVar22 = 4;\n        pbVar58 = (byte *)ibfd->xvec->name;\n        pbVar65 = &DAT_0002f16a;\n        do {\n          if (iVar22 == 0) break;\n          iVar22 = iVar22 + -1;\n          bVar69 = *pbVar58 < *pbVar65;\n          bVar70 = *pbVar58 == *pbVar65;\n          pbVar58 = pbVar58 + (uint)bVar71 * -2 + 1;\n          pbVar65 = pbVar65 + (uint)bVar71 * -2 + 1;\n        } while (bVar70);\n        if ((!bVar69 && !bVar70) == bVar69) {\n          puVar59 = &(((ibfd->tdata).elf_obj_data)->symtab_hdr).sh_link;\n          piVar66 = &ppVar10->pe_opthdr;\n          for (iVar22 = 0x52; iVar22 != 0; iVar22 = iVar22 + -1) {\n            uVar19 = *(undefined1 *)((int)puVar59 + 2);\n            uVar20 = *(undefined1 *)((int)puVar59 + 3);\n            piVar66->Magic = *(undefined2 *)puVar59;\n            piVar66->MajorLinkerVersion = uVar19;\n            piVar66->MinorLinkerVersion = uVar20;\n            puVar59 = puVar59 + (uint)bVar71 * -2 + 1;\n            piVar66 = (internal_extra_pe_aouthdr *)((int)piVar66 + (uint)bVar71 * -8 + 4);\n          }\n        }\n      }\n      uVar63 = pe_file_alignment._4_4_;\n      if ((pe_file_alignment._4_4_ & (uint)pe_file_alignment) == 0xffffffff) {\n        pe_file_alignment._0_4_ = 0x200;\n        pe_file_alignment._4_4_ = 0;\n      }\n      else {\n        *(uint *)&(ppVar10->pe_opthdr).FileAlignment = (uint)pe_file_alignment;\n        *(uint *)((int)&(ppVar10->pe_opthdr).FileAlignment + 4) = uVar63;\n      }\n      uVar63 = pe_heap_commit._4_4_;\n      if ((pe_heap_commit._4_4_ & (uint)pe_heap_commit) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfHeapCommit = (uint)pe_heap_commit;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4) = uVar63;\n      }\n      uVar63 = pe_heap_reserve._4_4_;\n      if ((pe_heap_reserve._4_4_ & (uint)pe_heap_reserve) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfHeapCommit = (uint)pe_heap_reserve;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4) = uVar63;\n      }\n      uVar63 = pe_image_base._4_4_;\n      if ((pe_image_base._4_4_ & (uint)pe_image_base) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).ImageBase = (uint)pe_image_base;\n        *(uint *)((int)&(ppVar10->pe_opthdr).ImageBase + 4) = uVar63;\n      }\n      uVar63 = pe_section_alignment._4_4_;\n      local_64 = (int *)(uint)pe_section_alignment;\n      if (((uint)pe_section_alignment & pe_section_alignment._4_4_) == 0xffffffff) {\n        pe_section_alignment._0_4_ = 0x1000;\n        uVar63 = 0;\n        pe_section_alignment._4_4_ = 0;\n        local_64 = (int *)0x1000;\n      }\n      else {\n        *(uint *)&(ppVar10->pe_opthdr).SectionAlignment = (uint)pe_section_alignment;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SectionAlignment + 4) = uVar63;\n      }\n      uVar48 = pe_stack_commit._4_4_;\n      if ((pe_stack_commit._4_4_ & (uint)pe_stack_commit) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfStackCommit = (uint)pe_stack_commit;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4) = uVar48;\n      }\n      uVar48 = pe_stack_reserve._4_4_;\n      if ((pe_stack_reserve._4_4_ & (uint)pe_stack_reserve) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfStackCommit = (uint)pe_stack_reserve;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4) = uVar48;\n      }\n      if (pe_subsystem != -1) {\n        (ppVar10->pe_opthdr).Subsystem = pe_subsystem;\n      }\n      if (pe_major_subsystem_version != -1) {\n        (ppVar10->pe_opthdr).MajorSubsystemVersion = pe_major_subsystem_version;\n      }\n      if (pe_minor_subsystem_version != -1) {\n        (ppVar10->pe_opthdr).MinorSubsystemVersion = pe_minor_subsystem_version;\n      }\n      if (uVar63 < pe_file_alignment._4_4_ ||\n          uVar63 - pe_file_alignment._4_4_ < (uint)(local_64 < (uint)pe_file_alignment)) {\n        sprintf(file_alignment,"%016llx",(uint)pe_file_alignment,pe_file_alignment._4_4_);\n        sprintf((char *)&contents,"%016llx",(uint)pe_section_alignment,pe_section_alignment._4_4_);\n        pcVar27 = (char *)dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5)\n        ;\n        non_fatal(pcVar27,file_alignment,&contents);\n      }\n    }\n  }\n  ppaVar34 = isympp;\n  if (isympp != (asymbol **)0x0) {\n    free(isympp);\n  }\n  if (ppaVar34 != osympp) {\n    free(osympp);\n  }\n  isympp = (asymbol **)0x0;\n  osympp = (asymbol **)0x0;\n  lVar28 = (*ibfd->xvec->_bfd_get_symtab_upper_bound)(ibfd);\n  if (lVar28 < 0) goto LAB_00018b70;\n  osympp = (asymbol **)xmalloc(lVar28);\n  isympp = osympp;\n  local_8c = (*ibfd->xvec->_bfd_canonicalize_symtab)(ibfd,osympp);\n  if (local_8c < 0) goto LAB_00018b70;\n  if (local_8c == 0) {\n    free(isympp);\n    isympp = (asymbol **)0x0;\n    osympp = (asymbol **)0x0;\n  }\n  bfd_map_over_sections(ibfd,setup_section,obfd);\n  psVar57 = add_sections;\n  if ((extract_symbol == 0) &&\n     (bVar25 = (*obfd->xvec->_bfd_copy_private_header_data)(ibfd,obfd), psVar57 = add_sections,\n     bVar25 == 0)) {\n    status = 1;\n    pcVar27 = (char *)dcgettext(0,"error in private header data",5);\n    bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar27);\n    psVar57 = add_sections;\n  }\n  for (; psVar17 = update_sections, psVar57 != (section_add *)0x0; psVar57 = psVar57->next) {\n    uVar63 = 0x128;\n    psVar29 = find_section_list(psVar57->name,0,0x40);\n    if (psVar29 != (section_list *)0x0) {\n      uVar63 = psVar29->flags | 0x100;\n    }\n    iVar22 = bfd_get_section_by_name(obfd,psVar57->name);\n    if (iVar22 != 0) {\n      pcVar26 = psVar57->name;\n      pcVar27 = "can\'t add section \'%s\'";\nLAB_00019591:\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27,pcVar26);\n      return 0;\n    }\n    paVar30 = (asection *)bfd_make_section_with_flags(obfd,psVar57->name,uVar63 | 0x100000);\n    psVar57->section = paVar30;\n    if (paVar30 == (asection *)0x0) {\n      pcVar26 = psVar57->name;\n      pcVar27 = "can\'t create section `%s\'";\n      goto LAB_00019591;\n    }\n    iVar22 = bfd_set_section_size(obfd,paVar30,psVar57->size,0);\n    if (iVar22 == 0) goto LAB_00019d5e;\n    psVar29 = find_section_list(psVar57->name,0,0xc);\n    if (psVar29 != (section_list *)0x0) {\n      paVar30 = psVar57->section;\n      uVar32 = *(undefined4 *)((int)&psVar29->vma_val + 4);\n      uVar33 = (undefined4)psVar29->vma_val;\n      paVar30->field_0x18 = paVar30->field_0x18 | 1;\n      *(undefined4 *)&paVar30->lma = uVar33;\n      *(undefined4 *)((int)&paVar30->lma + 4) = uVar32;\n      *(undefined4 *)&paVar30->vma = uVar33;\n      *(undefined4 *)((int)&paVar30->vma + 4) = uVar32;\n    }\n    psVar29 = find_section_list(psVar57->name,0,0x30);\n    if (psVar29 != (section_list *)0x0) {\n      paVar30 = psVar57->section;\n      bVar72 = psVar29->lma_val;\n      *(undefined4 *)((int)&paVar30->lma + 4) = *(undefined4 *)((int)&psVar29->lma_val + 4);\n      *(int *)&paVar30->lma = (int)bVar72;\n    }\n  }\n  for (; local_6c = (bfd_section *)obfd, psVar17 != (section_add *)0x0; psVar17 = psVar17->next) {\n    paVar30 = (asection *)bfd_get_section_by_name(ibfd,psVar17->name);\n    psVar17->section = paVar30;\n    if (paVar30 == (asection *)0x0) {\n      pcVar26 = psVar17->name;\n      pcVar27 = "error: %s not found, can\'t be updated";\n      goto LAB_00018f38;\n    }\n    pbVar35 = paVar30->output_section;\n    bVar25 = bfd_set_section_size(obfd,pbVar35,psVar17->size,0);\n    if (bVar25 == 0) goto LAB_00019fa0;\n  }\n  if ((((merge_notes != 0) &&\n       (paVar30 = (asection *)bfd_get_section_by_name(ibfd,".gnu.build.attributes"),\n       paVar30 != (asection *)0x0)) && (merge_notes != 0)) &&\n     ((ibfd->xvec->flavour == bfd_target_elf_flavour &&\n      (bVar25 = is_merged_note_section((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1),\n      bVar25 != 0)))) {\n    paVar53 = *(asection **)((int)&paVar30->size + 4);\n    pcVar27 = *(char **)&paVar30->size;\n    if (paVar53 == (asection *)0x0 && pcVar27 == (char *)0x0) {\n      pcVar27 = (char *)dcgettext(0,"warning: note section is empty",5,pcVar27);\n      bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n      merge_notes = 0;\n    }\n    else {\n      iVar22 = bfd_get_full_section_contents(ibfd,paVar30,&merged_notes,pcVar27);\n      pbVar39 = merged_notes;\n      if (iVar22 == 0) {\n        pcVar27 = (char *)dcgettext(0,"warning: could not load note section",5,0);\n        bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n        free(merged_notes);\n        merged_notes = (bfd_byte *)0x0;\n        merge_notes = 0;\n      }\n      else {\n        iVar22 = bfd_get_reloc_upper_bound(ibfd,paVar30,paVar30,paVar30);\n        pcVar26 = extraout_ECX_01;\n        pbVar46 = ibfd;\n        if (0 < iVar22) {\n          pbVar46 = (bfd *)xmalloc(iVar22);\n          iVar22 = bfd_canonicalize_reloc(ibfd,paVar30,pbVar46,isympp);\n          free(pbVar46);\n          pcVar26 = extraout_ECX_02;\n          if (iVar22 == 0) goto LAB_0001ab09;\n          local_74 = (asection *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar75 = (void *)0x30;\n        pcVar45 = pcVar26;\n        uVar32 = __udivdi3(pcVar27,paVar53,0xc,0,pbVar46,0x30,pcVar26,pcVar26);\n        local_74 = (asection *)xcalloc(uVar32);\n        local_bc = 0;\n        local_c4 = (char *)0x0;\n        local_b8 = (asection *)0x0;\n        local_c0 = (void *)0x0;\n        local_84 = (asymbol **)0x0;\n        local_a8 = (asection *)0x0;\n        local_a4 = 0;\n        pbVar56 = pbVar39;\n        paVar68 = local_74;\n        local_7c = pcVar27;\n        local_78 = paVar53;\n        while (local_78 != (asection *)0x0 || (uint)-(int)local_78 < (uint)((char *)0xb < local_7c))\n        {\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56);\n          pcVar47 = (char *)((int)bVar72 + 3U & 0xfffffffc);\n          paVar68->name = pcVar47;\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56 + 4);\n          uVar63 = (int)bVar72 + 3U & 0xfffffffc;\n          paVar68->id = uVar63;\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56 + 8);\n          uVar48 = (uint)bVar72;\n          paVar68->index = uVar48;\n          if (1 < uVar48 - 0x100) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                                        (int)(bVar72 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          pcVar31 = pcVar47 + uVar63 + 0xc;\n          iVar22 = (int)local_78 - (int)(uint)(local_7c < pcVar31);\n          if (local_78 < (asection *)(uint)(local_7c < pcVar31)) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar22)\n            ;\n            goto LAB_0001ae12;\n          }\n          if (pcVar47 < (char *)0x2) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: name too small",5,\n                                        iVar22);\n            goto LAB_0001ae12;\n          }\n          paVar68->next = (bfd_section *)(pbVar56 + 0xc);\n          pbVar35 = (bfd_section *)(pbVar56 + (int)(pcVar47 + 0xc));\n          bVar69 = local_7c < pcVar31;\n          local_7c = local_7c + -(int)pcVar31;\n          local_78 = (asection *)((int)local_78 - (uint)bVar69);\n          paVar68->prev = pbVar35;\n          bVar6 = pbVar56[0xc];\n          uVar60 = (uint)bVar6;\n          if (bVar6 == 0x24) {\n            if ((pbVar56[0xd] == '\x01') && (pbVar56[0xe] == '1')) {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if (((((char *)0x4 < pcVar47) && (bVar6 == 0x47)) && (pbVar56[0xd] == 'A')) &&\n                  ((pbVar56[0xe] == '$' && (pbVar56[0xf] == '\x01')))) {\n            bVar6 = pbVar56[0x10];\n            uVar60 = (uint)bVar6;\n            if (bVar6 == 0x32) {\n              local_a8 = (asection *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar6 != 0x33) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "corrupt GNU build attribute note: unsupported version",\n                                            5,uVar60);\n                goto LAB_0001ae12;\n              }\n              local_84 = (asymbol **)((int)local_84 + 1);\n            }\n          }\n          if (uVar63 == 4) {\n            bVar73 = (*ibfd->xvec->bfd_getx32)(pbVar35);\nLAB_0001ade8:\n            bVar74 = 0xffffffffffffffff;\n          }\n          else if (uVar63 < 5) {\n            if (uVar63 != 0) {\nLAB_0001ae8d:\n              pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: bad description size"\n                                          ,5,uVar60);\n              goto LAB_0001ae12;\n            }\n            bVar74 = 0;\n            bVar73 = 0;\n          }\n          else if (uVar63 == 8) {\n            pbVar13 = ibfd->xvec;\n            if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n              bVar73 = (*pbVar13->bfd_getx64)(pbVar35);\n              goto LAB_0001ade8;\n            }\n            bVar73 = (*pbVar13->bfd_getx32)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx32)(&pbVar35->id);\n          }\n          else {\n            uVar60 = uVar63;\n            if (uVar63 != 0x10) goto LAB_0001ae8d;\n            bVar73 = (*ibfd->xvec->bfd_getx64)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx64)(&pbVar35->index);\n          }\n          if (uVar48 == 0x100) {\n            paVar51 = (asection *)(int)bVar73;\n            if (bVar73 == 0) {\n              paVar51 = local_b8;\n            }\n            uVar63 = (int)bVar74;\n            if (bVar74 == 0) {\n              uVar63 = local_bc;\n            }\n            *(undefined4 *)((int)&paVar68->vma + 4) = 0;\n            *(asection **)&paVar68->vma = paVar51;\n            *(uint *)&paVar68->lma = uVar63;\n            *(undefined4 *)((int)&paVar68->lma + 4) = 0;\n            local_bc = uVar63;\n            local_b8 = paVar51;\n          }\n          else {\n            pvVar49 = (void *)(int)bVar73;\n            if (bVar73 == 0) {\n              pvVar49 = local_c0;\n            }\n            pcVar47 = (char *)(int)bVar74;\n            if (bVar74 == 0) {\n              pcVar47 = local_c4;\n            }\n            *(undefined4 *)((int)&paVar68->vma + 4) = 0;\n            *(void **)&paVar68->vma = pvVar49;\n            *(char **)&paVar68->lma = pcVar47;\n            *(undefined4 *)((int)&paVar68->lma + 4) = 0;\n            local_c4 = pcVar47;\n            local_c0 = pvVar49;\n          }\n          if (*(char *)((int)&paVar68->next->name + (int)(paVar68->name + -1)) != '\0') {\n            pcVar27 = (char *)dcgettext(0,\n                                        "corrupt GNU build attribute note: name not NUL terminated",\n                                        5,paVar68->name);\n            goto LAB_0001ae12;\n          }\n          paVar68 = (asection *)((int)&paVar68->size + 4);\n          pbVar56 = pbVar56 + (int)pcVar31;\n        }\n        if (local_78 == (asection *)0x0 && local_7c == (char *)0x0) {\n          if (local_a4 == 0 && (local_a8 == (asection *)0x0 && local_84 == (asymbol **)0x0)) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: no known versions detected",\n                                        5,-(int)local_78 - (uint)((char *)0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (asection *)0x0 || local_84 != (asymbol **)0x0)) ||\n             ((local_a8 != (asection *)0x0 && (local_84 != (asymbol **)0x0)))) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: multiple different versions"\n                                        ,5,paVar68);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (asection *)0x1) || (local_84 == (asymbol **)0x1))\n          goto LAB_0001ae41;\n          uVar63 = -(uint)(local_a4 == 0) & 2;\n          iVar22 = uVar63 + 1;\n          if (*(char *)((int)&local_74->next->name + iVar22) != '\x01') {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: first note not version note"\n                                        ,5,iVar22);\n            goto LAB_0001ae12;\n          }\n          bVar69 = false;\n          iVar52 = uVar63 + 2;\n          pbVar35 = local_74;\nLAB_0001afd1:\n          paVar51 = pbVar35;\n          local_6c = (bfd_section *)((int)&paVar51->size + 4);\n          pbVar35 = local_6c;\n          if (local_6c < paVar68) {\n            if (*(int *)((int)&paVar51->rawsize + 4) == 0x100) {\n              local_a8 = (asection *)0x0;\n              pvVar49 = *(void **)&paVar51->compressed_size;\n              local_6c = paVar51;\n              while (pbVar50 = local_6c, local_74 <= local_6c) {\n                pbVar14 = local_6c->next;\n                cVar7 = *(char *)((int)&pbVar14->name + iVar22);\n                paVar21 = local_a8;\n                if ((((local_a8 != (asection *)0x0) || (local_6c->id == 0)) ||\n                    (paVar21 = local_6c, local_6c->index != 0x101)) &&\n                   ((local_a8 = paVar21, *(char *)((int)pvVar49 + iVar22) == cVar7 &&\n                    (local_6c->index == 0x100)))) {\n                  pcVar47 = pbVar35->name;\n                  if (cVar7 != '\x04') {\n                    pcVar31 = local_6c->name;\n                    if ((pcVar31 == pcVar47) &&\n                       (iVar43 = memcmp(pbVar14,pvVar49,(size_t)pcVar31), pvVar75 = pvVar49,\n                       pcVar26 = pcVar31, pcVar45 = pcVar47, iVar43 == 0)) {\n                      uVar63 = *(uint *)((int)&local_6c->lma + 4);\n                      pbVar50 = *(bfd_section **)&local_6c->lma;\n                      if (uVar63 != 0 || pbVar50 != (bfd_section *)0x0) {\n                        pbVar14 = paVar51->output_section;\n                        uVar48 = paVar51->alignment_power;\n                        if ((uVar48 != 0 || pbVar14 != (bfd_section *)0x0) &&\n                           ((-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)))) {\n                          *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;\n                          if (uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)) {\n                            *(bfd_section **)&local_6c->lma = pbVar14;\n                            *(uint *)((int)&local_6c->lma + 4) = uVar48;\n                          }\n                          bVar69 = true;\n                          if (local_84 != (asymbol **)0x0) {\n                            *(undefined4 *)&local_6c->size = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (asymbol **)0x0) {\n                      if ((((int)paVar51->rawsize == 0) && (local_a8 != (asection *)0x0)) &&\n                         (local_a8->index == 0)) {\n                        local_a8->index = 0x100;\n                      }\n                    }\n                    else {\n                      paVar51->relocation = (reloc_cache_entry *)0x1;\n                      *(undefined4 *)((int)&paVar51->rawsize + 4) = 0x101;\n                      *(undefined4 *)&local_6c->size = 1;\n                      local_6c->index = 0x101;\n                    }\n                    break;\n                  }\n                  uVar63 = 0;\n                  for (iVar43 = 0; (int)pcVar47 - iVar52 != iVar43; iVar43 = iVar43 + 1) {\n                    uVar63 = uVar63 | (uint)*(byte *)((int)pvVar49 + iVar43 + iVar52) <<\n                                      ((char)iVar43 * '\b' & 0x1fU);\n                  }\n                  local_6c = (bfd_section *)0x0;\n                  pcVar47 = pbVar50->name;\n                  pcVar31 = (char *)((int)&pbVar14->name + iVar52);\n                  for (uVar48 = 0; (int)pcVar47 - iVar52 != uVar48; uVar48 = uVar48 + 1) {\n                    local_6c = (bfd_section *)\n                               ((uint)local_6c |\n                               (uint)(byte)pcVar31[uVar48] << ((char)uVar48 * '\b' & 0x1fU));\n                  }\n                  uVar67 = 0;\n                  uVar63 = (int)local_6c + uVar63;\n                  for (uVar60 = uVar63; uVar60 != 0; uVar60 = uVar60 >> 8) {\n                    uVar67 = uVar67 + 1;\n                  }\n                  in_stack_ffffff28 = pbVar50;\n                  if (uVar67 < uVar48) {\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = (bfd_section *)&pbVar50[-1].entsize;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          if (!bVar69) goto LAB_0001ae41;\n          pvVar49 = (void *)xmalloc(pcVar27,pvVar75,pcVar26,pcVar45);\n          local_cc = local_7c;\n          pvVar75 = pvVar49;\n          in_stack_ffffff28 = local_78;\n          local_a8 = (asection *)pbVar39;\n          for (paVar51 = local_74; paVar51 < paVar68;\n              paVar51 = (asection *)((int)&paVar51->size + 4)) {\n            pcVar45 = paVar51->name;\n            uVar63 = paVar51->index;\n            pcVar26 = pcVar45 + paVar51->id + 0xc;\n            pvVar54 = pvVar75;\n            if (uVar63 != 0) {\n              if ((int)paVar51->size == 0) {\n                memcpy(pvVar75,local_a8,(size_t)pcVar26);\n                pvVar54 = (void *)((int)pvVar75 + (int)pcVar26);\n              }\n              else {\n                pbVar1 = &paVar51->vma;\n                bVar72 = *pbVar1;\n                bVar73 = *pbVar1;\n                p_Var15 = ibfd->xvec->bfd_putx32;\n                __dest = (void *)((int)pvVar75 + 0xc);\n                pvVar54 = (void *)((int)__dest + (int)pcVar45);\n                if (((*(asection **)((int)&paVar51->vma + 4) == local_78) &&\n                    (*(char **)pbVar1 == local_7c)) &&\n                   ((*(asection **)((int)&paVar51->lma + 4) == in_stack_ffffff28 &&\n                    (*(char **)&paVar51->lma == local_cc)))) {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  (*ibfd->xvec->bfd_putx32)(0,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                }\n                else {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  uVar48 = 8;\n                  if ((ibfd->xvec->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    uVar48 = 0x10;\n                  }\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar48,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                  pbVar13 = ibfd->xvec;\n                  if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    (*pbVar13->bfd_putx64)(bVar73,pvVar54);\n                    (*ibfd->xvec->bfd_putx64)(paVar51->lma,(void *)((int)pvVar54 + 8));\n                    pvVar54 = (void *)((int)pvVar54 + 0x10);\n                  }\n                  else {\n                    (*pbVar13->bfd_putx32)(bVar72,pvVar54);\n                    (*ibfd->xvec->bfd_putx32)(paVar51->lma,(void *)((int)pvVar54 + 4));\n                    pvVar54 = (void *)((int)pvVar54 + 8);\n                  }\n                }\n              }\n              local_7c = *(char **)&paVar51->vma;\n              local_78 = *(asection **)((int)&paVar51->vma + 4);\n              local_cc = *(char **)&paVar51->lma;\n              in_stack_ffffff28 = *(asection **)((int)&paVar51->lma + 4);\n            }\n            local_a8 = (asection *)((int)local_a8 + (int)pcVar26);\n            pvVar75 = pvVar54;\n          }\n          pcVar26 = (char *)((int)pvVar75 - (int)pvVar49);\n          paVar68 = (asection *)((int)pcVar26 >> 0x1f);\n          in_stack_ffffff24 = (bfd_section *)obfd;\n          memcpy(pbVar39,pvVar49,(size_t)pcVar26);\n          free(pvVar49);\n          free(local_74);\n          local_6c = (bfd_section *)obfd;\n          merged_size._0_4_ = pcVar26;\n          merged_size._4_4_ = paVar68;\n          if ((paVar53 != paVar68) || (pcVar27 != pcVar26)) {\n            pbVar35 = paVar30->output_section;\n            if ((pbVar35 != (bfd_section *)0x0) &&\n               (pbVar35 = (bfd_section *)bfd_set_section_size(obfd,pbVar35,pcVar26,paVar68),\n               pbVar35 != (bfd_section *)0x0)) goto LAB_00018e0e;\n            pcVar27 = (char *)dcgettext(0,"warning: failed to set merged notes size",5,pbVar35);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n          }\n        }\n        else {\n          pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,\n                                      local_7c);\nLAB_0001ae12:\n          if (pcVar27 != (char *)0x0) {\n            bfd_set_error(0x11);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            status = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n          local_6c = (bfd_section *)obfd;\n        }\n        free(merged_notes);\n        merged_notes = (bfd_byte *)0x0;\n        merge_notes = 0;\n        merged_size._0_4_ = (char *)0x0;\n        merged_size._4_4_ = (asection *)0x0;\n      }\n    }\n  }\nLAB_00018e0e:\n  obfd = (bfd *)local_6c;\n  local_c4 = gnu_debuglink_filename;\n  for (psVar57 = dump_sections; gnu_debuglink_filename = local_c4, psVar57 != (section_add *)0x0;\n      psVar57 = psVar57->next) {\n    paVar30 = (asection *)bfd_get_section_by_name(ibfd,*(char **)((int)psVar57 + 4));\n    if (paVar30 == (asection *)0x0) {\n      pcVar27 = *(char **)((int)psVar57 + 4);\n      pcVar26 = (char *)dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n      bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar26,pcVar27);\n    }\n    else {\n      if ((paVar30->flags & 0x100) == 0) {\n        pcVar27 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar37 = (size_t)paVar30->size;\n        iVar22 = *(int *)((int)&paVar30->size + 4);\n        if (iVar22 != 0 || sVar37 != 0) {\n          __s = fopen64(*(char **)((int)psVar57 + 8),"w");\n          if (__s == (FILE *)0x0) {\n            pcVar27 = (char *)dcgettext(0,"could not open section dump file",5);\n            bfd_nonfatal_message(*(char **)((int)psVar57 + 8),(bfd *)0x0,(asection *)0x0,pcVar27);\n          }\n          else {\n            iVar52 = bfd_malloc_and_get_section(ibfd,paVar30,&contents);\n            if (iVar52 == 0) {\n              pcVar27 = (char *)dcgettext(0,"could not retrieve section contents",5);\n              bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            }\n            else {\n              sVar38 = fwrite(contents,1,sVar37,__s);\n              if (iVar22 != 0 || sVar37 != sVar38) {\n                piVar44 = __errno_location();\n                pcVar26 = strerror(*piVar44);\n                pcVar27 = *(char **)((int)psVar57 + 8);\n                pcVar45 = (char *)dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                non_fatal(pcVar45,pcVar27,pcVar26);\n                free(contents);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(contents);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar27 = "can\'t dump section - it is empty";\n      }\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n    }\nLAB_00018eb1:\n    local_c4 = gnu_debuglink_filename;\n  }\n  if (local_c4 != (char *)0x0) {\n    iVar22 = bfd_get_section_by_name(local_6c,".gnu_debuglink");\n    if (iVar22 == 0) {\n      local_c4 = (char *)bfd_create_gnu_debuglink_section(local_6c,gnu_debuglink_filename);\n      pcVar27 = gnu_debuglink_filename;\n      if (local_c4 == (char *)0x0) {\n        pcVar26 = (char *)dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        bfd_nonfatal_message((char *)0x0,(bfd *)local_6c,(asection *)0x0,pcVar26,pcVar27);\n        return 0;\n      }\n      if (*(int *)(local_6c->id + 4) == 2) {\n        prVar42 = (reloc_cache_entry *)local_6c->orelocation;\n        prVar62 = (reloc_cache_entry *)0x0;\n        if (prVar42 == (reloc_cache_entry *)0x0) {\nLAB_0001aa69:\n          uVar63 = 0x1000;\n          iVar22 = 0;\n        }\n        else {\n          do {\n            prVar12 = *(reloc_cache_entry **)((int)&prVar42[1].address + 4);\n            prVar61 = prVar62;\n            if (((prVar12 != (reloc_cache_entry *)0x0 ||\n                  *(reloc_cache_entry **)&prVar42[1].address != (reloc_cache_entry *)0x0) &&\n                (prVar61 = prVar42, prVar62 != (reloc_cache_entry *)0x0)) &&\n               (prVar11 = *(reloc_cache_entry **)((int)&prVar62[1].address + 4), prVar61 = prVar62,\n               prVar11 < prVar12 ||\n               (uint)((int)prVar11 - (int)prVar12) <\n               (uint)(*(reloc_cache_entry **)&prVar62[1].address <\n                     *(reloc_cache_entry **)&prVar42[1].address))) {\n              prVar61 = prVar42;\n            }\n            prVar42 = *(reloc_cache_entry **)&prVar42->addend;\n            prVar62 = prVar61;\n          } while (prVar42 != (reloc_cache_entry *)0x0);\n          if (prVar61 == (reloc_cache_entry *)0x0) goto LAB_0001aa69;\n          uVar63 = (int)&(prVar61[1].howto)->type + (int)*(reloc_cache_entry **)&prVar61[1].address;\n          iVar22 = (int)&((reloc_cache_entry *)prVar61[2].sym_ptr_ptr)->sym_ptr_ptr +\n                   (int)&(*(reloc_cache_entry **)((int)&prVar61[1].address + 4))->sym_ptr_ptr +\n                   (uint)CARRY4((uint)prVar61[1].howto,\n                                (uint)*(reloc_cache_entry **)&prVar61[1].address);\n          if (-iVar22 - 1U < (uint)(0xfffff000 < uVar63)) {\n            uVar63 = 0xffffffff;\n            iVar22 = -1;\n          }\n          else {\n            iVar22 = iVar22 + (uint)(0xfffff000 < uVar63);\n            uVar63 = uVar63 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(local_c4 + 0x24) = uVar63;\n        *(int *)(local_c4 + 0x28) = iVar22;\n        *(uint *)(local_c4 + 0x1c) = uVar63;\n        *(int *)(local_c4 + 0x20) = iVar22;\n        local_c4[0x18] = local_c4[0x18] | 1;\n      }\n    }\n    else {\n      pcVar27 = local_6c->name;\n      pcVar26 = (char *)dcgettext(0,"%s: debuglink section already exists",5);\n      non_fatal(pcVar26,pcVar27);\n      gnu_debuglink_filename = (char *)0x0;\n      local_c4 = (char *)0x0;\n    }\n  }\n  sVar37 = (size_t)local_6c->filepos;\n  if ((sVar37 == 0) || (gap_fill_set == 0 && pad_to_set == 0)) {\n    local_b8 = (asection *)0x0;\n    local_bc = 0;\n    local_b4 = (void *)0x0;\n    local_a8 = (asection *)0x0;\n    uVar63 = local_bc;\n    paVar30 = local_b8;\n  }\n  else {\n    local_a8 = (asection *)xmalloc(sVar37 * 4);\n    contents = (bfd_byte *)local_a8;\n    bfd_map_over_sections(local_6c,get_sections,&contents);\n    qsort(local_a8,sVar37,4,compare_section_lma);\n    sVar38 = sVar37 * 8;\n    local_b4 = (void *)xmalloc(sVar38);\n    memset(local_b4,0,sVar38);\n    if ((gap_fill_set == 0) || (sVar37 == 1)) {\n      local_b8 = (asection *)0x0;\n      local_bc = 0;\n    }\n    else {\n      local_b8 = (asection *)0x0;\n      local_bc = 0;\n      local_6c = (bfd_section *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (bfd_section *)((int)local_6c + 1);\n        iVar22 = *local_64;\n        uVar63 = local_bc;\n        paVar30 = local_b8;\n        if ((*(uint *)(iVar22 + 0x14) & 0x102) == 0x102) {\n          uVar48 = *(uint *)(iVar22 + 0x2c);\n          uVar60 = *(uint *)(local_64[1] + 0x28);\n          uVar67 = *(uint *)(local_64[1] + 0x24);\n          uVar55 = uVar48 + *(uint *)(iVar22 + 0x24);\n          uVar64 = *(int *)(iVar22 + 0x30) + *(int *)(iVar22 + 0x28) +\n                   (uint)CARRY4(uVar48,*(uint *)(iVar22 + 0x24));\n          if (uVar64 < uVar60 || uVar64 - uVar60 < (uint)(uVar55 < uVar67)) {\n            paVar30 = (asection *)(uVar67 - uVar55);\n            uVar63 = (uVar60 - uVar64) - (uint)(uVar67 < uVar55);\n            iVar22 = bfd_set_section_size\n                               (obfd,iVar22,(int)&paVar30->name + uVar48,\n                                *(int *)(iVar22 + 0x30) + uVar63 +\n                                (uint)CARRY4(uVar48,(uint)paVar30));\n            if (iVar22 == 0) {\n              pcVar27 = (char *)dcgettext(0,"Can\'t fill gap after section",5,0);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_64,pcVar27);\n              status = 1;\n              break;\n            }\n            *(asection **)((int)local_b4 + (int)local_6c * 8 + -8) = paVar30;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar63;\n            if (uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63) {\n              uVar63 = local_bc;\n              paVar30 = local_b8;\n            }\n          }\n        }\n        local_b8 = paVar30;\n        local_bc = uVar63;\n        local_64 = local_64 + 1;\n      } while ((bfd_section *)(sVar37 - 1) != local_6c);\n    }\n    uVar63 = local_bc;\n    paVar30 = local_b8;\n    if (pad_to_set != 0) {\n      iVar22 = *(int *)((int)local_a8 + (sVar37 - 1) * 4);\n      uVar48 = *(uint *)(iVar22 + 0x24);\n      uVar60 = uVar48 + *(uint *)(iVar22 + 0x2c);\n      uVar67 = *(int *)(iVar22 + 0x28) + *(int *)(iVar22 + 0x30) +\n               (uint)CARRY4(uVar48,*(uint *)(iVar22 + 0x2c));\n      if (uVar67 < pad_to._4_4_ || uVar67 - pad_to._4_4_ < (uint)(uVar60 < (uint)pad_to)) {\n        iVar22 = bfd_set_section_size\n                           (obfd,iVar22,(uint)pad_to - uVar48,\n                            (pad_to._4_4_ - *(int *)(iVar22 + 0x28)) - (uint)((uint)pad_to < uVar48)\n                           );\n        if (iVar22 == 0) {\n          pcVar27 = (char *)dcgettext(0,"can\'t add padding",5,uVar60);\n          bfd_nonfatal_message\n                    ((char *)0x0,obfd,*(asection **)((int)local_a8 + (sVar37 - 1) * 4),pcVar27);\n          status = 1;\n        }\n        else {\n          paVar30 = (asection *)((uint)pad_to - uVar60);\n          uVar63 = (pad_to._4_4_ - uVar67) - (uint)((uint)pad_to < uVar60);\n          *(asection **)((int)local_b4 + (sVar38 - 8)) = paVar30;\n          *(uint *)((int)local_b4 + (sVar38 - 4)) = uVar63;\n          if (uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63) {\n            uVar63 = local_bc;\n            paVar30 = local_b8;\n          }\n        }\n      }\n    }\n  }\n  local_b8 = paVar30;\n  local_bc = uVar63;\n  local_c0 = (void *)0x0;\n  if (convert_debugging != 0) {\n    local_c0 = read_debugging_info(ibfd,isympp,local_8c,0);\n  }\n  if (strip_symbols - STRIP_DEBUG < 6) {\nLAB_0001962a:\n    if (strip_symbols != STRIP_ALL) goto LAB_0001962f;\n  }\n  else {\n    if (localize_hidden == 0 && discard_locals == LOCALS_UNDEF) {\n      iVar22 = htab_elements(strip_specific_htab);\n      if ((((((iVar22 == 0) && (iVar22 = htab_elements(keep_specific_htab), iVar22 == 0)) &&\n            (iVar22 = htab_elements(localize_specific_htab), iVar22 == 0)) &&\n           ((iVar22 = htab_elements(globalize_specific_htab), iVar22 == 0 &&\n            (iVar22 = htab_elements(keepglobal_specific_htab), iVar22 == 0)))) &&\n          (iVar22 = htab_elements(weaken_specific_htab), iVar22 == 0)) &&\n         (((iVar22 = htab_elements(redefine_specific_htab), 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) && iVar22 == 0)))) goto LAB_00019e4d;\n      goto LAB_0001962a;\n    }\nLAB_0001962f:\n    bfd_set_error(0);\n    bfd_map_over_sections(ibfd,mark_symbols_used_in_relocations,isympp);\n    iVar22 = bfd_get_error();\n    if (iVar22 != 0) {\n      status = 1;\n      return 0;\n    }\n  }\n  ppaVar34 = (asymbol **)xmalloc((add_symbols + local_8c) * 4 + 4);\n  local_84 = isympp;\n  uVar63 = *(uint *)&ibfd->field_0x28;\n  osympp = ppaVar34;\n  if (local_8c != 0) {\n    ppaVar2 = isympp + local_8c;\n    local_8c = 0;\n    pbVar35 = (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0);\n    do {\n      iVar22 = add_symbols;\n      paVar40 = *local_84;\n      uVar48 = paVar40->flags;\n      pbVar39 = (bfd_byte *)paVar40->name;\n      pbVar50 = paVar40->section;\n      if (((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&\n         (pcVar27 = add_sym_list->othersym, pcVar27 != (char *)0x0)) {\n        local_6c = (bfd_section *)0x0;\n        ptr = add_sym_list;\n        while (iVar52 = strcmp(pcVar27,(char *)pbVar39), iVar52 != 0) {\n          local_6c = (bfd_section *)((int)local_6c + 1);\n          ptr = ptr->next;\n          if ((local_6c == (bfd_section *)iVar22) ||\n             (pcVar27 = ptr->othersym, pcVar27 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar27);\n        ptr->othersym = "";\n        ppaVar3 = ppaVar34 + local_8c;\n        local_8c = local_8c + 1;\n        paVar36 = create_new_symbol(ptr,obfd);\n        *ppaVar3 = paVar36;\n      }\nLAB_000197a8:\n      iVar22 = htab_elements(redefine_specific_htab);\n      pbVar56 = pbVar39;\n      if ((iVar22 != 0) || (section_rename_list != (section_rename *)0x0)) {\n        local_30 = 0;\n        contents = pbVar39;\n        iVar22 = htab_find(redefine_specific_htab,&contents);\n        if (((iVar22 == 0) || (pbVar56 = *(bfd_byte **)(iVar22 + 4), pbVar39 == pbVar56)) &&\n           (psVar18 = section_rename_list, (uVar48 & 0x100) != 0)) {\n          for (; pbVar56 = pbVar39, psVar18 != (section_rename *)0x0; psVar18 = psVar18->next) {\n            iVar22 = strcmp(psVar18->old_name,(char *)pbVar39);\n            if (iVar22 == 0) {\n              pbVar56 = (bfd_byte *)psVar18->new_name;\n              break;\n            }\n          }\n        }\n        paVar40->name = (char *)pbVar56;\n      }\n      pcVar27 = prefix_symbols_string;\n      bVar5 = ibfd->xvec->symbol_leading_char;\n      if (*pbVar56 == bVar5) {\n        if (change_leading_char == 0) {\n          if ((remove_leading_char != 0) &&\n             ((((uVar48 & 0x82) != 0 || (pbVar50 == pbVar35)) ||\n              ((paVar40->section->flags & 0x1000) != 0)))) {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n          }\nLAB_0001982b:\n          if (pcVar27 != (char *)0x0) {\n            sVar37 = strlen(pcVar27);\n            sVar38 = strlen((char *)pbVar56);\n            pbVar39 = (bfd_byte *)xmalloc(sVar37 + 2 + sVar38);\n            local_6c = (bfd_section *)pbVar39;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          bVar5 = *(bfd_byte *)(((bfd_section *)obfd)->id + 0x18);\n          if (bVar5 == '\0') {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n            goto LAB_0001982b;\n          }\n          if (prefix_symbols_string != (char *)0x0) {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n            goto LAB_00019ab1;\n          }\n          *pbVar56 = bVar5;\n          paVar40->name = (char *)pbVar56;\n        }\n      }\n      else {\n        if (((change_leading_char == 0) || (*(char *)(((bfd_section *)obfd)->id + 0x18) == '\0')) ||\n           (bVar5 != '\0')) goto LAB_0001982b;\nLAB_00019ab1:\n        sVar37 = strlen(pcVar27);\n        sVar38 = strlen((char *)pbVar56);\n        pbVar39 = (bfd_byte *)xmalloc(sVar37 + 2 + sVar38);\n        local_6c = (bfd_section *)(pbVar39 + 1);\n        *pbVar39 = *(bfd_byte *)(((bfd_section *)obfd)->id + 0x18);\nLAB_00019858:\n        pcVar27 = prefix_symbols_string;\n        if (prefix_symbols_string != (char *)0x0) {\n          strcpy((char *)local_6c,prefix_symbols_string);\n          sVar37 = strlen(pcVar27);\n          local_6c = (bfd_section *)((int)local_6c + sVar37);\n        }\n        strcpy((char *)local_6c,(char *)pbVar56);\n        paVar40->name = (char *)pbVar39;\n        pbVar56 = pbVar39;\n      }\n      if (strip_symbols == STRIP_ALL) goto LAB_00019928;\n      if ((uVar48 & 0x20) == 0) {\n        if (((uVar48 & 0x100) == 0) || (((*paVar40->section->symbol_ptr_ptr)->flags & 0x20) == 0)) {\n          if ((((uVar63 >> 5 & 0x42) == 0) &&\n              (((uVar48 & 0x82) != 0 || ((paVar40->section->flags & 0x1000) != 0)))) ||\n             (iVar22 = bfd_decode_symclass(paVar40), iVar22 == 0x49)) {\nLAB_00019b80:\n            bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n            if (bVar25 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar48 & 0x82) == 0) &&\n                   (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0))) &&\n                  ((paVar40->section->flags & 0x1000) == 0)) {\n            if ((uVar48 & 4) == 0) {\n              if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                  (pvVar75 = paVar40->section->used_by_bfd, pvVar75 == (void *)0x0)) ||\n                 (*(int *)((int)pvVar75 + 0x2c) == 0)) {\n                if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                goto LAB_00019928;\n                if (discard_locals == LOCALS_START_L) {\n                  iVar22 = bfd_is_local_label(ibfd,paVar40,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar22 = convert_debugging;\n            if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0001a753:\n              if (iVar22 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (strip_symbols != STRIP_UNNEEDED) goto LAB_00019b80;\n        }\n        else {\n          bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n          if (bVar25 != 0) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "not stripping symbol `%s\' because it is named in a relocation"\n                                        ,5,bVar25);\n            non_fatal(pcVar27,pbVar56);\n            status = 1;\n          }\nLAB_00019910:\n          bVar25 = is_specified_symbol((char *)pbVar56,strip_unneeded_htab);\n          if (bVar25 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((keep_file_symbols != 0) && ((uVar48 & 0x4000) != 0)) ||\n           (bVar25 = is_specified_symbol((char *)pbVar56,keep_specific_htab), bVar25 != 0))\n        goto LAB_0001994f;\n      }\n      else {\n        bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n        if (bVar25 != 0) {\n          pcVar27 = (char *)dcgettext(0,\n                                      "not stripping symbol `%s\' because it is named in a relocation"\n                                      ,5);\n          non_fatal(pcVar27,pbVar56);\n          status = 1;\n        }\nLAB_0001994f:\n        bVar25 = is_strip_section((bfd *)in_stack_ffffff24,in_stack_ffffff28);\n        if (bVar25 == 0) {\n          if (((uVar48 & 2) != 0) &&\n             ((weaken != 0 ||\n              (bVar25 = is_specified_symbol((char *)pbVar56,weaken_specific_htab), bVar25 != 0)))) {\n            paVar40->flags = paVar40->flags & 0xfffffffd | 0x80;\n          }\n          if (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0)) {\n            if (((uVar48 & 0x82) != 0) &&\n               (((bVar25 = is_specified_symbol((char *)pbVar56,localize_specific_htab), bVar25 != 0\n                 || ((iVar22 = htab_elements(keepglobal_specific_htab), iVar22 != 0 &&\n                     (bVar25 = is_specified_symbol((char *)pbVar56,keepglobal_specific_htab),\n                     bVar25 == 0)))) ||\n                ((localize_hidden != 0 &&\n                 ((((pbVar46 = paVar40->the_bfd, pbVar46 != (bfd *)0x0 &&\n                    (pbVar46->xvec->flavour == bfd_target_elf_flavour)) &&\n                   ((pbVar46->tdata).aout_data != (aout_data_struct *)0x0)) &&\n                  ((*(byte *)((int)&paVar40[1].section + 1) & 3) - 1 < 2)))))))) {\n              paVar40->flags = paVar40->flags & 0xffffff7d | 1;\n            }\n            if (((uVar48 & 1) != 0) &&\n               (bVar25 = is_specified_symbol((char *)pbVar56,globalize_specific_htab), bVar25 != 0))\n            {\n              paVar40->flags = paVar40->flags & 0xfffffffe | 2;\n            }\n          }\n          ppaVar34[local_8c] = paVar40;\n          local_8c = local_8c + 1;\n        }\n      }\n      local_84 = local_84 + 1;\n    } while (ppaVar2 != local_84);\n  }\n  local_6c = (bfd_section *)add_sym_list;\n  if ((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) {\n    iVar22 = 0;\n    do {\n      pcVar27 = (char *)local_6c->flags;\n      if (pcVar27 == (char *)0x0) {\n        paVar40 = create_new_symbol((addsym_node *)local_6c,obfd);\n        ppaVar34[local_8c] = paVar40;\n        local_8c = local_8c + 1;\n      }\n      else if (*pcVar27 != '\0') {\n        pcVar26 = (char *)dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    /* WARNING: Subroutine does not return */\n        fatal(pcVar26,pcVar27);\n      }\n      iVar22 = iVar22 + 1;\n      local_6c = (bfd_section *)local_6c->name;\n    } while (iVar22 < add_symbols);\n  }\n  ppaVar34[local_8c] = (asymbol *)0x0;\n  if ((convert_debugging != 0) && (local_c0 != (void *)0x0)) {\n    iVar22 = ((undefined4 *)((bfd_section *)obfd)->id)[1];\n    if ((iVar22 == 2) || (iVar22 == 5)) {\n      bVar25 = write_stabs_in_sections_debugging_info\n                         (obfd,local_c0,&syms,(bfd_size_type *)file_alignment,&strings,\n                          (bfd_size_type *)&contents);\n      if (bVar25 != 0) {\n        iVar22 = bfd_make_section_with_flags(obfd,".stab",0x2108);\n        iVar52 = bfd_make_section_with_flags(obfd,".stabstr",0x2108);\n        if ((((iVar22 == 0) || (iVar52 == 0)) ||\n            (iVar43 = bfd_set_section_size(obfd,iVar22,file_alignment._0_4_,file_alignment._4_4_),\n            iVar43 == 0)) ||\n           (iVar43 = bfd_set_section_size(obfd,iVar52,contents,local_30), iVar43 == 0)) {\n          pcVar27 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar22 + 0x58) = 2;\n          *(undefined4 *)(iVar52 + 0x58) = 0;\n          iVar22 = bfd_set_section_contents\n                             (obfd,iVar22,syms,0,0,file_alignment._0_4_,file_alignment._4_4_,iVar43)\n          ;\n          if ((iVar22 != 0) &&\n             (iVar22 = bfd_set_section_contents\n                                 (obfd,iVar52,strings,0,0,contents,local_30,extraout_ECX),\n             iVar22 != 0)) goto LAB_00019e4d;\n          pcVar27 = "can\'t set debugging section contents";\n          iVar22 = iVar52;\n        }\n        pcVar27 = (char *)dcgettext(0,pcVar27,5,iVar22);\n        bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27);\n      }\n    }\n    else {\n      uVar32 = *(undefined4 *)((bfd_section *)obfd)->id;\n      pcVar27 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",5);\n      bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27,uVar32);\n    }\n    status = 1;\n    return 0;\n  }\nLAB_00019e4d:\n  bfd_set_symtab(obfd,osympp,local_8c);\n  bfd_map_over_sections(ibfd,copy_relocations_in_section,obfd);\n  bfd_map_over_sections(ibfd,copy_section,obfd);\n  for (psVar57 = add_sections; pbVar35 = (bfd_section *)obfd, psVar17 = update_sections,\n      psVar57 != (section_add *)0x0; psVar57 = psVar57->next) {\n    iVar22 = bfd_set_section_contents(obfd,psVar57->section,psVar57->contents,0,0,psVar57->size,0);\n    if (iVar22 == 0) {\nLAB_00019d5e:\n      bfd_nonfatal_message((char *)0x0,obfd,psVar57->section,(char *)0x0);\n      return 0;\n    }\n  }\n  while( true ) {\n    if (psVar17 == (section_add *)0x0) {\n      paVar30 = (asection *)0x0;\n      if (merge_notes != 0) {\n        paVar30 = (asection *)bfd_get_section_by_name(obfd,".gnu.build.attributes");\n        if (((paVar30 == (asection *)0x0) || (merge_notes == 0)) ||\n           ((*(int *)(((bfd_section *)obfd)->id + 4) != 5 ||\n            (bVar25 = is_merged_note_section\n                                ((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1_00),\n            bVar25 == 0)))) {\n          if (is_strip == 0) {\n            pcVar27 = (char *)dcgettext(0,"could not find any mergeable note sections",5,0);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n          }\n        }\n        else {\n          iVar22 = bfd_set_section_contents\n                             (obfd,paVar30,merged_notes,0,0,(char *)merged_size,merged_size._4_4_,\n                              bVar25);\n          if (iVar22 == 0) {\n            pcVar27 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n            return 0;\n          }\n        }\n        free(merged_notes);\n        merged_notes = (bfd_byte *)0x0;\n        merge_notes = 0;\n        pbVar35 = (bfd_section *)obfd;\n      }\n      if ((gnu_debuglink_filename != (char *)0x0) &&\n         (iVar22 = bfd_fill_in_gnu_debuglink_section(obfd,local_c4,gnu_debuglink_filename),\n         pcVar27 = gnu_debuglink_filename, iVar22 == 0)) {\n        pcVar26 = (char *)dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar26,pcVar27);\n        return 0;\n      }\n      if (gap_fill_set != 0 || pad_to_set != 0) {\n        paVar30 = (asection *)0x2000;\n        if (local_bc == 0 && (uint)((asection *)0x2000 < local_b8) <= -local_bc) {\n          paVar30 = local_b8;\n        }\n        puVar41 = (undefined4 *)xmalloc(paVar30);\n        pcVar27 = (char *)((uint)gap_fill * 0x1010101);\n        if (paVar30 < (asection *)0x4) {\n          if ((paVar30 != (asection *)0x0) &&\n             (*(char *)puVar41 = (char)pcVar27, ((uint)paVar30 & 2) != 0)) {\n            *(short *)((int)puVar41 + -2 + (int)paVar30) = (short)pcVar27;\n          }\n        }\n        else {\n          *puVar41 = pcVar27;\n          *(char **)((int)(puVar41 + -1) + (int)paVar30) = pcVar27;\n          pbVar35 = (bfd_section *)((uint)(puVar41 + 1) & 0xfffffffc);\n          for (uVar63 = (uint)(((int)puVar41 - (int)((uint)(puVar41 + 1) & 0xfffffffc)) +\n                              (int)paVar30) >> 2; uVar63 != 0; uVar63 = uVar63 - 1) {\n            pbVar35->name = pcVar27;\n            pbVar35 = (bfd_section *)((int)pbVar35 + (uint)bVar71 * -8 + 4);\n          }\n        }\n        iVar22 = (int)((bfd_section *)obfd)->filepos;\n        if (iVar22 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar44 = local_64;\n            pbVar35 = *(bfd_section **)((int)local_b4 + (int)local_64 * 8 + 4);\n            paVar30 = *(asection **)((int)local_b4 + (int)local_64 * 8);\n            if (pbVar35 != (bfd_section *)0x0 || paVar30 != (asection *)0x0) {\n              piVar4 = (int *)((int)local_a8 + local_64 * 4);\n              local_64 = *(int **)((int)local_a8 + local_64 * 4);\n              local_6c = (bfd_section *)((int)*(asection **)((int)local_64 + 0x2c) - (int)paVar30);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)pbVar35) -\n                         (uint)(*(asection **)((int)local_64 + 0x2c) < paVar30);\n              while( true ) {\n                pbVar50 = pbVar35;\n                paVar53 = paVar30;\n                if (pbVar35 != (bfd_section *)0x0 ||\n                    (uint)-(int)pbVar35 < (uint)((asection *)0x2000 < paVar30)) {\n                  paVar53 = (asection *)0x2000;\n                  pbVar50 = (bfd_section *)0x0;\n                }\n                iVar52 = bfd_set_section_contents\n                                   (obfd,local_64,puVar41,local_6c,local_68,paVar53,pbVar50);\n                if (iVar52 == 0) {\n                  bfd_nonfatal_message((char *)0x0,obfd,(asection *)*piVar4,(char *)0x0);\n                  return 0;\n                }\n                bVar69 = paVar30 < paVar53;\n                paVar30 = (asection *)((int)paVar30 - (int)paVar53);\n                pbVar35 = (bfd_section *)((int)pbVar35 + (-(uint)bVar69 - (int)pbVar50));\n                bVar69 = CARRY4((uint)local_6c,(uint)paVar53);\n                local_6c = (bfd_section *)((int)&paVar53->name + (int)local_6c);\n                local_68 = (int)&pbVar50->name + (uint)bVar69 + local_68;\n                if (pbVar35 == (bfd_section *)0x0 && paVar30 == (asection *)0x0) break;\n                local_64 = *(int **)((int)local_a8 + piVar44 * 4);\n              }\n            }\n            local_64 = (int *)((int)piVar44 + 1);\n          } while ((int *)iVar22 != local_64);\n        }\n      }\n      iVar22 = (**(code **)(((bfd_section *)obfd)->id + 0xa8))(ibfd,obfd);\n      if (iVar22 == 0) {\n        pcVar27 = (char *)dcgettext(0,"error copying private BFD data",5,pbVar35);\n        bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27);\n        return 0;\n      }\n      if ((use_alt_mach_code != 0) &&\n         (iVar22 = bfd_alt_mach_code(obfd,use_alt_mach_code,paVar30,paVar30),\n         uVar24 = use_alt_mach_code, iVar22 == 0)) {\n        pcVar27 = (char *)dcgettext(0,"this target does not support %lu alternative machine codes",5\n                                    ,pbVar35);\n        non_fatal(pcVar27,uVar24);\n        if (*(int *)(((bfd_section *)obfd)->id + 4) != 5) {\n          pcVar27 = (char *)dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          non_fatal(pcVar27);\n          return 1;\n        }\n        pcVar27 = (char *)dcgettext(0,"treating that number as an absolute e_machine value instead",\n                                    5,uVar24);\n        non_fatal(pcVar27);\n        *(short *)(((bfd_section *)obfd)->target_index + 0x32) = (short)use_alt_mach_code;\n      }\n      return 1;\n    }\n    pbVar35 = psVar17->section->output_section;\n    bVar25 = bfd_set_section_contents(obfd,pbVar35,psVar17->contents,0,0,psVar17->size,0);\n    local_6c = (bfd_section *)obfd;\n    if (bVar25 == 0) break;\n    psVar17 = psVar17->next;\n  }\nLAB_00019fa0:\n  bfd_nonfatal_message((char *)0x0,(bfd *)local_6c,pbVar35,(char *)0x0);\n  return bVar25;\nLAB_0001b1a6:\n  if ((char *)((int)&pbVar14->name + (int)pcVar47) <= pcVar31) goto LAB_0001b1aa;\n  *pcVar31 = (char)uVar63;\n  if (uVar63 == 0) goto LAB_0001b1aa;\n  uVar63 = uVar63 >> 8;\n  pcVar31 = pcVar31 + 1;\n  goto LAB_0001b1a6;\nLAB_0001b1aa:\n  bVar69 = true;\n  *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;\n  goto LAB_0001afd1;\n}" { (declaration "bfd_vma *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "void *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "asymbol **ppaVar2;" type_identifier (pointer_declarator "**ppaVar2" * (pointer_declarator "*ppaVar2" * identifier)) ;) (declaration "asymbol **ppaVar3;" type_identifier (pointer_declarator "**ppaVar3" * (pointer_declarator "*ppaVar3" * identifier)) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "bfd_byte bVar5;" type_identifier identifier ;) (declaration "byte bVar6;" type_identifier identifier ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "bfd_endian bVar8;" type_identifier identifier ;) (declaration "bfd_endian bVar9;" type_identifier identifier ;) (declaration "pe_tdata *ppVar10;" type_identifier (pointer_declarator "*ppVar10" * identifier) ;) (declaration "reloc_cache_entry *prVar11;" type_identifier (pointer_declarator "*prVar11" * identifier) ;) (declaration "reloc_cache_entry *prVar12;" type_identifier (pointer_declarator "*prVar12" * identifier) ;) (declaration "bfd_target *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "bfd_section *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "_func_void_bfd_vma_void_ptr *p_Var15;" type_identifier (pointer_declarator "*p_Var15" * identifier) ;) (declaration "bfd_flavour bVar16;" type_identifier identifier ;) (declaration "section_add *psVar17;" type_identifier (pointer_declarator "*psVar17" * identifier) ;) (declaration "section_rename *psVar18;" type_identifier (pointer_declarator "*psVar18" * identifier) ;) (declaration "undefined1 uVar19;" type_identifier identifier ;) (declaration "undefined1 uVar20;" type_identifier identifier ;) (declaration "asection *paVar21;" type_identifier (pointer_declarator "*paVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "bfd_architecture bVar23;" type_identifier identifier ;) (declaration "ulong uVar24;" type_identifier identifier ;) (declaration "bfd_boolean bVar25;" type_identifier identifier ;) (declaration "char *pcVar26;" primitive_type (pointer_declarator "*pcVar26" * identifier) ;) (declaration "char *pcVar27;" primitive_type (pointer_declarator "*pcVar27" * identifier) ;) (declaration "long lVar28;" (sized_type_specifier "long" long) identifier ;) (declaration "section_list *psVar29;" type_identifier (pointer_declarator "*psVar29" * identifier) ;) (declaration "asection *paVar30;" type_identifier (pointer_declarator "*paVar30" * identifier) ;) (declaration "FILE *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "char *pcVar31;" primitive_type (pointer_declarator "*pcVar31" * identifier) ;) (declaration "undefined4 uVar32;" type_identifier identifier ;) (declaration "undefined4 uVar33;" type_identifier identifier ;) (declaration "asymbol **ppaVar34;" type_identifier (pointer_declarator "**ppaVar34" * (pointer_declarator "*ppaVar34" * identifier)) ;) (declaration "bfd_section *pbVar35;" type_identifier (pointer_declarator "*pbVar35" * identifier) ;) (declaration "asymbol *paVar36;" type_identifier (pointer_declarator "*paVar36" * identifier) ;) (declaration "size_t sVar37;" primitive_type identifier ;) (declaration "size_t sVar38;" primitive_type identifier ;) (declaration "bfd_byte *pbVar39;" type_identifier (pointer_declarator "*pbVar39" * identifier) ;) (declaration "asymbol *paVar40;" type_identifier (pointer_declarator "*paVar40" * identifier) ;) (declaration "undefined4 *puVar41;" type_identifier (pointer_declarator "*puVar41" * identifier) ;) (declaration "reloc_cache_entry *prVar42;" type_identifier (pointer_declarator "*prVar42" * identifier) ;) (declaration "int iVar43;" primitive_type identifier ;) (declaration "int *piVar44;" primitive_type (pointer_declarator "*piVar44" * identifier) ;) (declaration "char *pcVar45;" primitive_type (pointer_declarator "*pcVar45" * identifier) ;) (declaration "bfd *pbVar46;" type_identifier (pointer_declarator "*pbVar46" * identifier) ;) (declaration "char *pcVar47;" primitive_type (pointer_declarator "*pcVar47" * identifier) ;) (declaration "uint uVar48;" type_identifier identifier ;) (declaration "void *pvVar49;" primitive_type (pointer_declarator "*pvVar49" * identifier) ;) (declaration "asection *sec_1;" type_identifier (pointer_declarator "*sec_1" * identifier) ;) (declaration "bfd_section *pbVar50;" type_identifier (pointer_declarator "*pbVar50" * identifier) ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "asection *sec_1_00;" type_identifier (pointer_declarator "*sec_1_00" * identifier) ;) (declaration "undefined4 extraout_ECX_00;" type_identifier identifier ;) (declaration "char *extraout_ECX_01;" primitive_type (pointer_declarator "*extraout_ECX_01" * identifier) ;) (declaration "char *extraout_ECX_02;" primitive_type (pointer_declarator "*extraout_ECX_02" * identifier) ;) (declaration "asection *paVar51;" type_identifier (pointer_declarator "*paVar51" * identifier) ;) (declaration "int iVar52;" primitive_type identifier ;) (declaration "asection *paVar53;" type_identifier (pointer_declarator "*paVar53" * identifier) ;) (declaration "void *pvVar54;" primitive_type (pointer_declarator "*pvVar54" * identifier) ;) (declaration "uint uVar55;" type_identifier identifier ;) (declaration "addsym_node *ptr;" type_identifier (pointer_declarator "*ptr" * identifier) ;) (declaration "bfd_byte *pbVar56;" type_identifier (pointer_declarator "*pbVar56" * identifier) ;) (declaration "section_add *psVar57;" type_identifier (pointer_declarator "*psVar57" * identifier) ;) (declaration "byte *pbVar58;" type_identifier (pointer_declarator "*pbVar58" * identifier) ;) (declaration "uint *puVar59;" type_identifier (pointer_declarator "*puVar59" * identifier) ;) (declaration "uint uVar60;" type_identifier identifier ;) (declaration "reloc_cache_entry *prVar61;" type_identifier (pointer_declarator "*prVar61" * identifier) ;) (declaration "reloc_cache_entry *prVar62;" type_identifier (pointer_declarator "*prVar62" * identifier) ;) (declaration "uint uVar63;" type_identifier identifier ;) (declaration "uint uVar64;" type_identifier identifier ;) (declaration "byte *pbVar65;" type_identifier (pointer_declarator "*pbVar65" * identifier) ;) (declaration "internal_extra_pe_aouthdr *piVar66;" type_identifier (pointer_declarator "*piVar66" * identifier) ;) (declaration "uint uVar67;" type_identifier identifier ;) (declaration "asection *paVar68;" type_identifier (pointer_declarator "*paVar68" * identifier) ;) (declaration "bool bVar69;" primitive_type identifier ;) (declaration "bool bVar70;" primitive_type identifier ;) (declaration "byte bVar71;" type_identifier identifier ;) (declaration "bfd_vma bVar72;" type_identifier identifier ;) (declaration "bfd_uint64_t bVar73;" type_identifier identifier ;) (declaration "bfd_uint64_t bVar74;" type_identifier identifier ;) (declaration "void *pvVar75;" primitive_type (pointer_declarator "*pvVar75" * identifier) ;) (declaration "bfd_section *in_stack_ffffff24;" type_identifier (pointer_declarator "*in_stack_ffffff24" * identifier) ;) (declaration "asection *in_stack_ffffff28;" type_identifier (pointer_declarator "*in_stack_ffffff28" * identifier) ;) (declaration "char *local_cc;" primitive_type (pointer_declarator "*local_cc" * identifier) ;) (declaration "char *local_c4;" primitive_type (pointer_declarator "*local_c4" * identifier) ;) (declaration "void *local_c0;" primitive_type (pointer_declarator "*local_c0" * identifier) ;) (declaration "uint local_bc;" type_identifier identifier ;) (declaration "asection *local_b8;" type_identifier (pointer_declarator "*local_b8" * identifier) ;) (declaration "void *local_b4;" primitive_type (pointer_declarator "*local_b4" * identifier) ;) (declaration "asection *local_a8;" type_identifier (pointer_declarator "*local_a8" * identifier) ;) (declaration "int local_a4;" primitive_type identifier ;) (declaration "int local_8c;" primitive_type identifier ;) (declaration "asymbol **local_84;" type_identifier (pointer_declarator "**local_84" * (pointer_declarator "*local_84" * identifier)) ;) (declaration "char *local_7c;" primitive_type (pointer_declarator "*local_7c" * identifier) ;) (declaration "asection *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "asection *local_74;" type_identifier (pointer_declarator "*local_74" * identifier) ;) (declaration "bfd_section *local_6c;" type_identifier (pointer_declarator "*local_6c" * identifier) ;) (declaration "int local_68;" primitive_type identifier ;) (declaration "int *local_64;" primitive_type (pointer_declarator "*local_64" * 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 "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar71 = 0;" (assignment_expression "bVar71 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x1892b;" (assignment_expression "uStack_14 = 0x1892b" identifier = number_literal) ;) (expression_statement "bVar8 = ibfd->xvec->byteorder;" (assignment_expression "bVar8 = ibfd->xvec->byteorder" identifier = (field_expression "ibfd->xvec->byteorder" (field_expression "ibfd->xvec" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "bVar9 = obfd->xvec->byteorder;" (assignment_expression "bVar9 = obfd->xvec->byteorder" identifier = (field_expression "obfd->xvec->byteorder" (field_expression "obfd->xvec" identifier -> field_identifier) -> field_identifier)) ;) (if_statement "if ((bVar8 != bVar9 && bVar8 != BFD_ENDIAN_UNKNOWN) && (bVar9 != BFD_ENDIAN_UNKNOWN)) {\n    pcVar27 = (char *)dcgettext(0,"Unable to change endianness of input file(s)",5);\n    non_fatal(pcVar27);\n    return 0;\n  }" if (parenthesized_expression "((bVar8 != bVar9 && bVar8 != BFD_ENDIAN_UNKNOWN) && (bVar9 != BFD_ENDIAN_UNKNOWN))" ( (binary_expression "(bVar8 != bVar9 && bVar8 != BFD_ENDIAN_UNKNOWN) && (bVar9 != BFD_ENDIAN_UNKNOWN)" (parenthesized_expression "(bVar8 != bVar9 && bVar8 != BFD_ENDIAN_UNKNOWN)" ( (binary_expression "bVar8 != bVar9 && bVar8 != BFD_ENDIAN_UNKNOWN" (binary_expression "bVar8 != bVar9" identifier != identifier) && (binary_expression "bVar8 != BFD_ENDIAN_UNKNOWN" identifier != identifier)) )) && (parenthesized_expression "(bVar9 != BFD_ENDIAN_UNKNOWN)" ( (binary_expression "bVar9 != BFD_ENDIAN_UNKNOWN" identifier != identifier) ))) )) (compound_statement "{\n    pcVar27 = (char *)dcgettext(0,"Unable to change endianness of input file(s)",5);\n    non_fatal(pcVar27);\n    return 0;\n  }" { (expression_statement "pcVar27 = (char *)dcgettext(0,"Unable to change endianness of input file(s)",5);" (assignment_expression "pcVar27 = (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(pcVar27);" (call_expression "non_fatal(pcVar27)" identifier (argument_list "(pcVar27)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar22 = bfd_set_format(obfd,ibfd->field_0x28 & 7);" (assignment_expression "iVar22 = bfd_set_format(obfd,ibfd->field_0x28 & 7)" identifier = (call_expression "bfd_set_format(obfd,ibfd->field_0x28 & 7)" identifier (argument_list "(obfd,ibfd->field_0x28 & 7)" ( identifier , (binary_expression "ibfd->field_0x28 & 7" (field_expression "ibfd->field_0x28" identifier -> field_identifier) & number_literal) )))) ;) (if_statement "if (iVar22 == 0) {\n    bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,(char *)0x0);\n    return 0;\n  }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\n    bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,(char *)0x0);\n    return 0;\n  }" { (expression_statement "bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,(char *)0x0);" (call_expression "bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,(char *)0x0)" identifier (argument_list "((char *)0x0,obfd,(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 ;) })) (if_statement "if (ibfd->sections == (bfd_section *)0x0) {\n    pcVar26 = bfd_get_archive_filename(ibfd);\n    pcVar27 = "error: the input file \'%s\' has no sections";\n    goto LAB_00018f38;\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    pcVar26 = bfd_get_archive_filename(ibfd);\n    pcVar27 = "error: the input file \'%s\' has no sections";\n    goto LAB_00018f38;\n  }" { (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 "pcVar27 = "error: the input file \'%s\' has no sections";" (assignment_expression "pcVar27 = "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 ")) ;) (goto_statement "goto LAB_00018f38;" goto statement_identifier ;) })) (if_statement "if (ibfd->xvec->flavour != bfd_target_elf_flavour) {\n    if ((do_debug_sections != _sch_isblank) && ((do_debug_sections & _sch_isblank) != nothing)) {\n      pcVar26 = bfd_get_archive_filename(ibfd);\n      pcVar27 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\nLAB_00018f38:\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      non_fatal(pcVar27,pcVar26);\n      return 0;\n    }\n    if (do_elf_stt_common != unchanged) {\n      pcVar26 = bfd_get_archive_filename(ibfd);\n      pcVar27 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      goto LAB_00018f38;\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 "{\n    if ((do_debug_sections != _sch_isblank) && ((do_debug_sections & _sch_isblank) != nothing)) {\n      pcVar26 = bfd_get_archive_filename(ibfd);\n      pcVar27 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\nLAB_00018f38:\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      non_fatal(pcVar27,pcVar26);\n      return 0;\n    }\n    if (do_elf_stt_common != unchanged) {\n      pcVar26 = bfd_get_archive_filename(ibfd);\n      pcVar27 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      goto LAB_00018f38;\n    }\n  }" { (if_statement "if ((do_debug_sections != _sch_isblank) && ((do_debug_sections & _sch_isblank) != nothing)) {\n      pcVar26 = bfd_get_archive_filename(ibfd);\n      pcVar27 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\nLAB_00018f38:\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      non_fatal(pcVar27,pcVar26);\n      return 0;\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      pcVar26 = bfd_get_archive_filename(ibfd);\n      pcVar27 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\nLAB_00018f38:\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      non_fatal(pcVar27,pcVar26);\n      return 0;\n    }" { (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 "pcVar27 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";" (assignment_expression "pcVar27 = "--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_00018f38:\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);" statement_identifier : (expression_statement "pcVar27 = (char *)dcgettext(0,pcVar27,5);" (assignment_expression "pcVar27 = (char *)dcgettext(0,pcVar27,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar27,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar27,5)" identifier (argument_list "(0,pcVar27,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "non_fatal(pcVar27,pcVar26);" (call_expression "non_fatal(pcVar27,pcVar26)" identifier (argument_list "(pcVar27,pcVar26)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (do_elf_stt_common != unchanged) {\n      pcVar26 = bfd_get_archive_filename(ibfd);\n      pcVar27 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      goto LAB_00018f38;\n    }" if (parenthesized_expression "(do_elf_stt_common != unchanged)" ( (binary_expression "do_elf_stt_common != unchanged" identifier != identifier) )) (compound_statement "{\n      pcVar26 = bfd_get_archive_filename(ibfd);\n      pcVar27 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      goto LAB_00018f38;\n    }" { (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 "pcVar27 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";" (assignment_expression "pcVar27 = "--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 ")) ;) (goto_statement "goto LAB_00018f38;" goto statement_identifier ;) })) })) (if_statement "if (verbose != 0) {\n    pcVar27 = ibfd->xvec->name;\n    pcVar26 = obfd->xvec->name;\n    pcVar45 = obfd->filename;\n    pcVar47 = bfd_get_archive_filename(ibfd);\n    pcVar31 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n    printf(pcVar31,pcVar47,pcVar27,pcVar45,pcVar26);\n  }" if (parenthesized_expression "(verbose != 0)" ( (binary_expression "verbose != 0" identifier != number_literal) )) (compound_statement "{\n    pcVar27 = ibfd->xvec->name;\n    pcVar26 = obfd->xvec->name;\n    pcVar45 = obfd->filename;\n    pcVar47 = bfd_get_archive_filename(ibfd);\n    pcVar31 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n    printf(pcVar31,pcVar47,pcVar27,pcVar45,pcVar26);\n  }" { (expression_statement "pcVar27 = ibfd->xvec->name;" (assignment_expression "pcVar27 = ibfd->xvec->name" identifier = (field_expression "ibfd->xvec->name" (field_expression "ibfd->xvec" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "pcVar26 = obfd->xvec->name;" (assignment_expression "pcVar26 = obfd->xvec->name" identifier = (field_expression "obfd->xvec->name" (field_expression "obfd->xvec" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "pcVar45 = obfd->filename;" (assignment_expression "pcVar45 = obfd->filename" identifier = (field_expression "obfd->filename" identifier -> field_identifier)) ;) (expression_statement "pcVar47 = bfd_get_archive_filename(ibfd);" (assignment_expression "pcVar47 = bfd_get_archive_filename(ibfd)" identifier = (call_expression "bfd_get_archive_filename(ibfd)" identifier (argument_list "(ibfd)" ( identifier )))) ;) (expression_statement "pcVar31 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);" (assignment_expression "pcVar31 = (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(pcVar31,pcVar47,pcVar27,pcVar45,pcVar26);" (call_expression "printf(pcVar31,pcVar47,pcVar27,pcVar45,pcVar26)" identifier (argument_list "(pcVar31,pcVar47,pcVar27,pcVar45,pcVar26)" ( identifier , identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "iVar52 = 0;" (assignment_expression "iVar52 = 0" identifier = number_literal) ;) (if_statement "if (extract_symbol == 0) {\n    uVar63 = (uint)set_start;\n    iVar52 = set_start._4_4_;\n    if (set_start_set == 0) {\n      uVar63 = (uint)ibfd->start_address;\n      iVar52 = *(int *)((int)&ibfd->start_address + 4);\n    }\n    iVar22 = uVar63 + (uint)change_start;\n    iVar52 = iVar52 + change_start._4_4_ + (uint)CARRY4(uVar63,(uint)change_start);\n  }" if (parenthesized_expression "(extract_symbol == 0)" ( (binary_expression "extract_symbol == 0" identifier == number_literal) )) (compound_statement "{\n    uVar63 = (uint)set_start;\n    iVar52 = set_start._4_4_;\n    if (set_start_set == 0) {\n      uVar63 = (uint)ibfd->start_address;\n      iVar52 = *(int *)((int)&ibfd->start_address + 4);\n    }\n    iVar22 = uVar63 + (uint)change_start;\n    iVar52 = iVar52 + change_start._4_4_ + (uint)CARRY4(uVar63,(uint)change_start);\n  }" { (expression_statement "uVar63 = (uint)set_start;" (assignment_expression "uVar63 = (uint)set_start" identifier = (cast_expression "(uint)set_start" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "iVar52 = set_start._4_4_;" (assignment_expression "iVar52 = set_start._4_4_" identifier = (field_expression "set_start._4_4_" identifier . field_identifier)) ;) (if_statement "if (set_start_set == 0) {\n      uVar63 = (uint)ibfd->start_address;\n      iVar52 = *(int *)((int)&ibfd->start_address + 4);\n    }" if (parenthesized_expression "(set_start_set == 0)" ( (binary_expression "set_start_set == 0" identifier == number_literal) )) (compound_statement "{\n      uVar63 = (uint)ibfd->start_address;\n      iVar52 = *(int *)((int)&ibfd->start_address + 4);\n    }" { (expression_statement "uVar63 = (uint)ibfd->start_address;" (assignment_expression "uVar63 = (uint)ibfd->start_address" identifier = (cast_expression "(uint)ibfd->start_address" ( (type_descriptor "uint" type_identifier) ) (field_expression "ibfd->start_address" identifier -> field_identifier))) ;) (expression_statement "iVar52 = *(int *)((int)&ibfd->start_address + 4);" (assignment_expression "iVar52 = *(int *)((int)&ibfd->start_address + 4)" identifier = (pointer_expression "*(int *)((int)&ibfd->start_address + 4)" * (cast_expression "(int *)((int)&ibfd->start_address + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ibfd->start_address + 4)" ( (binary_expression "(int)&ibfd->start_address + 4" (cast_expression "(int)&ibfd->start_address" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ibfd->start_address" & (field_expression "ibfd->start_address" identifier -> field_identifier))) + number_literal) ))))) ;) })) (expression_statement "iVar22 = uVar63 + (uint)change_start;" (assignment_expression "iVar22 = uVar63 + (uint)change_start" identifier = (binary_expression "uVar63 + (uint)change_start" identifier + (cast_expression "(uint)change_start" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "iVar52 = iVar52 + change_start._4_4_ + (uint)CARRY4(uVar63,(uint)change_start);" (assignment_expression "iVar52 = iVar52 + change_start._4_4_ + (uint)CARRY4(uVar63,(uint)change_start)" identifier = (binary_expression "iVar52 + change_start._4_4_ + (uint)CARRY4(uVar63,(uint)change_start)" (binary_expression "iVar52 + change_start._4_4_" identifier + (field_expression "change_start._4_4_" identifier . field_identifier)) + (cast_expression "(uint)CARRY4(uVar63,(uint)change_start)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar63,(uint)change_start)" identifier (argument_list "(uVar63,(uint)change_start)" ( identifier , (cast_expression "(uint)change_start" ( (type_descriptor "uint" type_identifier) ) identifier) )))))) ;) })) (if_statement "if ((obfd->field_0x28 & 7) != 3) {\n    uVar63 = ~bfd_flags_to_clear & obfd->xvec->object_flags &\n             (*(uint *)&ibfd->field_0x28 >> 5 & 0xfffff | bfd_flags_to_set);\n    if (strip_symbols == STRIP_ALL) {\n      uVar63 = uVar63 & 0xfffffffe;\n    }\n    iVar22 = bfd_set_start_address(obfd,iVar22,iVar52);\n    if ((iVar22 == 0) || (iVar22 = bfd_set_file_flags(obfd,uVar63), iVar22 == 0)) goto LAB_00018b70;\n  }" if (parenthesized_expression "((obfd->field_0x28 & 7) != 3)" ( (binary_expression "(obfd->field_0x28 & 7) != 3" (parenthesized_expression "(obfd->field_0x28 & 7)" ( (binary_expression "obfd->field_0x28 & 7" (field_expression "obfd->field_0x28" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar63 = ~bfd_flags_to_clear & obfd->xvec->object_flags &\n             (*(uint *)&ibfd->field_0x28 >> 5 & 0xfffff | bfd_flags_to_set);\n    if (strip_symbols == STRIP_ALL) {\n      uVar63 = uVar63 & 0xfffffffe;\n    }\n    iVar22 = bfd_set_start_address(obfd,iVar22,iVar52);\n    if ((iVar22 == 0) || (iVar22 = bfd_set_file_flags(obfd,uVar63), iVar22 == 0)) goto LAB_00018b70;\n  }" { (expression_statement "uVar63 = ~bfd_flags_to_clear & obfd->xvec->object_flags &\n             (*(uint *)&ibfd->field_0x28 >> 5 & 0xfffff | bfd_flags_to_set);" (assignment_expression "uVar63 = ~bfd_flags_to_clear & obfd->xvec->object_flags &\n             (*(uint *)&ibfd->field_0x28 >> 5 & 0xfffff | bfd_flags_to_set)" identifier = (binary_expression "~bfd_flags_to_clear & obfd->xvec->object_flags &\n             (*(uint *)&ibfd->field_0x28 >> 5 & 0xfffff | bfd_flags_to_set)" (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 "(*(uint *)&ibfd->field_0x28 >> 5 & 0xfffff | bfd_flags_to_set)" ( (binary_expression "*(uint *)&ibfd->field_0x28 >> 5 & 0xfffff | bfd_flags_to_set" (binary_expression "*(uint *)&ibfd->field_0x28 >> 5 & 0xfffff" (binary_expression "*(uint *)&ibfd->field_0x28 >> 5" (pointer_expression "*(uint *)&ibfd->field_0x28" * (cast_expression "(uint *)&ibfd->field_0x28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ibfd->field_0x28" & (field_expression "ibfd->field_0x28" identifier -> field_identifier)))) >> number_literal) & number_literal) | identifier) )))) ;) (if_statement "if (strip_symbols == STRIP_ALL) {\n      uVar63 = uVar63 & 0xfffffffe;\n    }" if (parenthesized_expression "(strip_symbols == STRIP_ALL)" ( (binary_expression "strip_symbols == STRIP_ALL" identifier == identifier) )) (compound_statement "{\n      uVar63 = uVar63 & 0xfffffffe;\n    }" { (expression_statement "uVar63 = uVar63 & 0xfffffffe;" (assignment_expression "uVar63 = uVar63 & 0xfffffffe" identifier = (binary_expression "uVar63 & 0xfffffffe" identifier & number_literal)) ;) })) (expression_statement "iVar22 = bfd_set_start_address(obfd,iVar22,iVar52);" (assignment_expression "iVar22 = bfd_set_start_address(obfd,iVar22,iVar52)" identifier = (call_expression "bfd_set_start_address(obfd,iVar22,iVar52)" identifier (argument_list "(obfd,iVar22,iVar52)" ( identifier , identifier , identifier )))) ;) (if_statement "if ((iVar22 == 0) || (iVar22 = bfd_set_file_flags(obfd,uVar63), iVar22 == 0)) goto LAB_00018b70;" if (parenthesized_expression "((iVar22 == 0) || (iVar22 = bfd_set_file_flags(obfd,uVar63), iVar22 == 0))" ( (binary_expression "(iVar22 == 0) || (iVar22 = bfd_set_file_flags(obfd,uVar63), iVar22 == 0)" (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar22 = bfd_set_file_flags(obfd,uVar63), iVar22 == 0)" ( (comma_expression "iVar22 = bfd_set_file_flags(obfd,uVar63), iVar22 == 0" (assignment_expression "iVar22 = bfd_set_file_flags(obfd,uVar63)" identifier = (call_expression "bfd_set_file_flags(obfd,uVar63)" identifier (argument_list "(obfd,uVar63)" ( identifier , identifier )))) , (binary_expression "iVar22 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_00018b70;" goto statement_identifier ;)) })) (expression_statement "bVar23 = bfd_get_arch(ibfd);" (assignment_expression "bVar23 = bfd_get_arch(ibfd)" identifier = (call_expression "bfd_get_arch(ibfd)" identifier (argument_list "(ibfd)" ( identifier )))) ;) (expression_statement "uVar24 = bfd_get_mach(ibfd);" (assignment_expression "uVar24 = bfd_get_mach(ibfd)" identifier = (call_expression "bfd_get_mach(ibfd)" identifier (argument_list "(ibfd)" ( identifier )))) ;) (if_statement "if (input_arch != (bfd_arch_info_type *)0x0) {\n    iVar22 = bfd_get_arch_info(ibfd);\n    if ((iVar22 == 0) || (iVar22 = bfd_get_arch_info(ibfd), *(int *)(iVar22 + 0xc) == 0)) {\n      bVar23 = input_arch->arch;\n      uVar24 = input_arch->mach;\n    }\n    else {\n      pcVar27 = bfd_get_archive_filename(ibfd);\n      pcVar26 = (char *)dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n      non_fatal(pcVar26,pcVar27);\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    iVar22 = bfd_get_arch_info(ibfd);\n    if ((iVar22 == 0) || (iVar22 = bfd_get_arch_info(ibfd), *(int *)(iVar22 + 0xc) == 0)) {\n      bVar23 = input_arch->arch;\n      uVar24 = input_arch->mach;\n    }\n    else {\n      pcVar27 = bfd_get_archive_filename(ibfd);\n      pcVar26 = (char *)dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n      non_fatal(pcVar26,pcVar27);\n    }\n  }" { (expression_statement "iVar22 = bfd_get_arch_info(ibfd);" (assignment_expression "iVar22 = bfd_get_arch_info(ibfd)" identifier = (call_expression "bfd_get_arch_info(ibfd)" identifier (argument_list "(ibfd)" ( identifier )))) ;) (if_statement "if ((iVar22 == 0) || (iVar22 = bfd_get_arch_info(ibfd), *(int *)(iVar22 + 0xc) == 0)) {\n      bVar23 = input_arch->arch;\n      uVar24 = input_arch->mach;\n    }\n    else {\n      pcVar27 = bfd_get_archive_filename(ibfd);\n      pcVar26 = (char *)dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n      non_fatal(pcVar26,pcVar27);\n    }" if (parenthesized_expression "((iVar22 == 0) || (iVar22 = bfd_get_arch_info(ibfd), *(int *)(iVar22 + 0xc) == 0))" ( (binary_expression "(iVar22 == 0) || (iVar22 = bfd_get_arch_info(ibfd), *(int *)(iVar22 + 0xc) == 0)" (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar22 = bfd_get_arch_info(ibfd), *(int *)(iVar22 + 0xc) == 0)" ( (comma_expression "iVar22 = bfd_get_arch_info(ibfd), *(int *)(iVar22 + 0xc) == 0" (assignment_expression "iVar22 = bfd_get_arch_info(ibfd)" identifier = (call_expression "bfd_get_arch_info(ibfd)" identifier (argument_list "(ibfd)" ( identifier )))) , (binary_expression "*(int *)(iVar22 + 0xc) == 0" (pointer_expression "*(int *)(iVar22 + 0xc)" * (cast_expression "(int *)(iVar22 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0xc)" ( (binary_expression "iVar22 + 0xc" identifier + number_literal) )))) == number_literal)) ))) )) (compound_statement "{\n      bVar23 = input_arch->arch;\n      uVar24 = input_arch->mach;\n    }" { (expression_statement "bVar23 = input_arch->arch;" (assignment_expression "bVar23 = input_arch->arch" identifier = (field_expression "input_arch->arch" identifier -> field_identifier)) ;) (expression_statement "uVar24 = input_arch->mach;" (assignment_expression "uVar24 = input_arch->mach" identifier = (field_expression "input_arch->mach" identifier -> field_identifier)) ;) }) (else_clause "else {\n      pcVar27 = bfd_get_archive_filename(ibfd);\n      pcVar26 = (char *)dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n      non_fatal(pcVar26,pcVar27);\n    }" else (compound_statement "{\n      pcVar27 = bfd_get_archive_filename(ibfd);\n      pcVar26 = (char *)dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n      non_fatal(pcVar26,pcVar27);\n    }" { (expression_statement "pcVar27 = bfd_get_archive_filename(ibfd);" (assignment_expression "pcVar27 = bfd_get_archive_filename(ibfd)" identifier = (call_expression "bfd_get_archive_filename(ibfd)" identifier (argument_list "(ibfd)" ( identifier )))) ;) (expression_statement "pcVar26 = (char *)dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);" (assignment_expression "pcVar26 = (char *)dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5)" identifier = (cast_expression "(char *)dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (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 "non_fatal(pcVar26,pcVar27);" (call_expression "non_fatal(pcVar26,pcVar27)" identifier (argument_list "(pcVar26,pcVar27)" ( identifier , identifier ))) ;) }))) })) (expression_statement "bVar25 = (*obfd->xvec->_bfd_set_arch_mach)(obfd,bVar23,uVar24);" (assignment_expression "bVar25 = (*obfd->xvec->_bfd_set_arch_mach)(obfd,bVar23,uVar24)" identifier = (call_expression "(*obfd->xvec->_bfd_set_arch_mach)(obfd,bVar23,uVar24)" (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,bVar23,uVar24)" ( identifier , identifier , identifier )))) ;) (if_statement "if (bVar25 == 0) {\n    if ((ibfd->field_0x2b & 4) != 0) {\nLAB_00018b20:\n      iVar22 = bfd_get_arch(ibfd);\n      if (iVar22 == 0) {\n        pcVar26 = bfd_get_archive_filename(ibfd);\n        pcVar27 = "Unable to recognise the format of the input file `%s\'";\n      }\n      else {\n        uVar32 = bfd_get_mach(ibfd);\n        uVar33 = bfd_get_arch(ibfd);\n        pcVar26 = (char *)bfd_printable_arch_mach(uVar33,uVar32);\n        pcVar27 = "Output file cannot represent architecture `%s\'";\n      }\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      non_fatal(pcVar27,pcVar26);\n      return 0;\n    }\n    iVar22 = bfd_get_arch(ibfd);\n    iVar52 = bfd_get_arch(obfd);\n    if (iVar22 != iVar52) goto LAB_00018b20;\n  }" if (parenthesized_expression "(bVar25 == 0)" ( (binary_expression "bVar25 == 0" identifier == number_literal) )) (compound_statement "{\n    if ((ibfd->field_0x2b & 4) != 0) {\nLAB_00018b20:\n      iVar22 = bfd_get_arch(ibfd);\n      if (iVar22 == 0) {\n        pcVar26 = bfd_get_archive_filename(ibfd);\n        pcVar27 = "Unable to recognise the format of the input file `%s\'";\n      }\n      else {\n        uVar32 = bfd_get_mach(ibfd);\n        uVar33 = bfd_get_arch(ibfd);\n        pcVar26 = (char *)bfd_printable_arch_mach(uVar33,uVar32);\n        pcVar27 = "Output file cannot represent architecture `%s\'";\n      }\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      non_fatal(pcVar27,pcVar26);\n      return 0;\n    }\n    iVar22 = bfd_get_arch(ibfd);\n    iVar52 = bfd_get_arch(obfd);\n    if (iVar22 != iVar52) goto LAB_00018b20;\n  }" { (if_statement "if ((ibfd->field_0x2b & 4) != 0) {\nLAB_00018b20:\n      iVar22 = bfd_get_arch(ibfd);\n      if (iVar22 == 0) {\n        pcVar26 = bfd_get_archive_filename(ibfd);\n        pcVar27 = "Unable to recognise the format of the input file `%s\'";\n      }\n      else {\n        uVar32 = bfd_get_mach(ibfd);\n        uVar33 = bfd_get_arch(ibfd);\n        pcVar26 = (char *)bfd_printable_arch_mach(uVar33,uVar32);\n        pcVar27 = "Output file cannot represent architecture `%s\'";\n      }\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      non_fatal(pcVar27,pcVar26);\n      return 0;\n    }" if (parenthesized_expression "((ibfd->field_0x2b & 4) != 0)" ( (binary_expression "(ibfd->field_0x2b & 4) != 0" (parenthesized_expression "(ibfd->field_0x2b & 4)" ( (binary_expression "ibfd->field_0x2b & 4" (field_expression "ibfd->field_0x2b" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_00018b20:\n      iVar22 = bfd_get_arch(ibfd);\n      if (iVar22 == 0) {\n        pcVar26 = bfd_get_archive_filename(ibfd);\n        pcVar27 = "Unable to recognise the format of the input file `%s\'";\n      }\n      else {\n        uVar32 = bfd_get_mach(ibfd);\n        uVar33 = bfd_get_arch(ibfd);\n        pcVar26 = (char *)bfd_printable_arch_mach(uVar33,uVar32);\n        pcVar27 = "Output file cannot represent architecture `%s\'";\n      }\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      non_fatal(pcVar27,pcVar26);\n      return 0;\n    }" { (labeled_statement "LAB_00018b20:\n      iVar22 = bfd_get_arch(ibfd);" statement_identifier : (expression_statement "iVar22 = bfd_get_arch(ibfd);" (assignment_expression "iVar22 = bfd_get_arch(ibfd)" identifier = (call_expression "bfd_get_arch(ibfd)" identifier (argument_list "(ibfd)" ( identifier )))) ;)) (if_statement "if (iVar22 == 0) {\n        pcVar26 = bfd_get_archive_filename(ibfd);\n        pcVar27 = "Unable to recognise the format of the input file `%s\'";\n      }\n      else {\n        uVar32 = bfd_get_mach(ibfd);\n        uVar33 = bfd_get_arch(ibfd);\n        pcVar26 = (char *)bfd_printable_arch_mach(uVar33,uVar32);\n        pcVar27 = "Output file cannot represent architecture `%s\'";\n      }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar26 = bfd_get_archive_filename(ibfd);\n        pcVar27 = "Unable to recognise the format of the input file `%s\'";\n      }" { (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 "pcVar27 = "Unable to recognise the format of the input file `%s\'";" (assignment_expression "pcVar27 = "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        uVar32 = bfd_get_mach(ibfd);\n        uVar33 = bfd_get_arch(ibfd);\n        pcVar26 = (char *)bfd_printable_arch_mach(uVar33,uVar32);\n        pcVar27 = "Output file cannot represent architecture `%s\'";\n      }" else (compound_statement "{\n        uVar32 = bfd_get_mach(ibfd);\n        uVar33 = bfd_get_arch(ibfd);\n        pcVar26 = (char *)bfd_printable_arch_mach(uVar33,uVar32);\n        pcVar27 = "Output file cannot represent architecture `%s\'";\n      }" { (expression_statement "uVar32 = bfd_get_mach(ibfd);" (assignment_expression "uVar32 = bfd_get_mach(ibfd)" identifier = (call_expression "bfd_get_mach(ibfd)" identifier (argument_list "(ibfd)" ( identifier )))) ;) (expression_statement "uVar33 = bfd_get_arch(ibfd);" (assignment_expression "uVar33 = bfd_get_arch(ibfd)" identifier = (call_expression "bfd_get_arch(ibfd)" identifier (argument_list "(ibfd)" ( identifier )))) ;) (expression_statement "pcVar26 = (char *)bfd_printable_arch_mach(uVar33,uVar32);" (assignment_expression "pcVar26 = (char *)bfd_printable_arch_mach(uVar33,uVar32)" identifier = (cast_expression "(char *)bfd_printable_arch_mach(uVar33,uVar32)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_printable_arch_mach(uVar33,uVar32)" identifier (argument_list "(uVar33,uVar32)" ( identifier , identifier ))))) ;) (expression_statement "pcVar27 = "Output file cannot represent architecture `%s\'";" (assignment_expression "pcVar27 = "Output file cannot represent architecture `%s\'"" identifier = (string_literal ""Output file cannot represent architecture `%s\'"" " string_content escape_sequence ")) ;) }))) (expression_statement "pcVar27 = (char *)dcgettext(0,pcVar27,5);" (assignment_expression "pcVar27 = (char *)dcgettext(0,pcVar27,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar27,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar27,5)" identifier (argument_list "(0,pcVar27,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "non_fatal(pcVar27,pcVar26);" (call_expression "non_fatal(pcVar27,pcVar26)" identifier (argument_list "(pcVar27,pcVar26)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar22 = bfd_get_arch(ibfd);" (assignment_expression "iVar22 = bfd_get_arch(ibfd)" identifier = (call_expression "bfd_get_arch(ibfd)" identifier (argument_list "(ibfd)" ( identifier )))) ;) (expression_statement "iVar52 = bfd_get_arch(obfd);" (assignment_expression "iVar52 = bfd_get_arch(obfd)" identifier = (call_expression "bfd_get_arch(obfd)" identifier (argument_list "(obfd)" ( identifier )))) ;) (if_statement "if (iVar22 != iVar52) goto LAB_00018b20;" if (parenthesized_expression "(iVar22 != iVar52)" ( (binary_expression "iVar22 != iVar52" identifier != identifier) )) (goto_statement "goto LAB_00018b20;" goto statement_identifier ;)) })) (expression_statement "iVar22 = bfd_set_format(obfd,ibfd->field_0x28 & 7);" (assignment_expression "iVar22 = bfd_set_format(obfd,ibfd->field_0x28 & 7)" identifier = (call_expression "bfd_set_format(obfd,ibfd->field_0x28 & 7)" identifier (argument_list "(obfd,ibfd->field_0x28 & 7)" ( identifier , (binary_expression "ibfd->field_0x28 & 7" (field_expression "ibfd->field_0x28" identifier -> field_identifier) & number_literal) )))) ;) (if_statement "if (iVar22 == 0) {\nLAB_00018b70:\n    bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,(char *)0x0);\n    return 0;\n  }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00018b70:\n    bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,(char *)0x0);\n    return 0;\n  }" { (labeled_statement "LAB_00018b70:\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 "bVar16 = obfd->xvec->flavour;" (assignment_expression "bVar16 = obfd->xvec->flavour" identifier = (field_expression "obfd->xvec->flavour" (field_expression "obfd->xvec" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "bVar69 = bVar16 < bfd_target_coff_flavour;" (assignment_expression "bVar69 = bVar16 < bfd_target_coff_flavour" identifier = (binary_expression "bVar16 < bfd_target_coff_flavour" identifier < identifier)) ;) (expression_statement "bVar70 = bVar16 == bfd_target_coff_flavour;" (assignment_expression "bVar70 = bVar16 == bfd_target_coff_flavour" identifier = (binary_expression "bVar16 == bfd_target_coff_flavour" identifier == identifier)) ;) (if_statement "if (bVar70) {\n    iVar22 = 4;\n    pbVar58 = (byte *)obfd->xvec->name;\n    pbVar65 = &DAT_0002f16a;\n    do {\n      if (iVar22 == 0) break;\n      iVar22 = iVar22 + -1;\n      bVar69 = *pbVar58 < *pbVar65;\n      bVar70 = *pbVar58 == *pbVar65;\n      pbVar58 = pbVar58 + (uint)bVar71 * -2 + 1;\n      pbVar65 = pbVar65 + (uint)bVar71 * -2 + 1;\n    } while (bVar70);\n    if ((!bVar69 && !bVar70) == bVar69) {\n      ppVar10 = (obfd->tdata).pe_obj_data;\n      bVar16 = ibfd->xvec->flavour;\n      bVar69 = bVar16 < bfd_target_coff_flavour;\n      bVar70 = bVar16 == bfd_target_coff_flavour;\n      if (bVar70) {\n        iVar22 = 4;\n        pbVar58 = (byte *)ibfd->xvec->name;\n        pbVar65 = &DAT_0002f16a;\n        do {\n          if (iVar22 == 0) break;\n          iVar22 = iVar22 + -1;\n          bVar69 = *pbVar58 < *pbVar65;\n          bVar70 = *pbVar58 == *pbVar65;\n          pbVar58 = pbVar58 + (uint)bVar71 * -2 + 1;\n          pbVar65 = pbVar65 + (uint)bVar71 * -2 + 1;\n        } while (bVar70);\n        if ((!bVar69 && !bVar70) == bVar69) {\n          puVar59 = &(((ibfd->tdata).elf_obj_data)->symtab_hdr).sh_link;\n          piVar66 = &ppVar10->pe_opthdr;\n          for (iVar22 = 0x52; iVar22 != 0; iVar22 = iVar22 + -1) {\n            uVar19 = *(undefined1 *)((int)puVar59 + 2);\n            uVar20 = *(undefined1 *)((int)puVar59 + 3);\n            piVar66->Magic = *(undefined2 *)puVar59;\n            piVar66->MajorLinkerVersion = uVar19;\n            piVar66->MinorLinkerVersion = uVar20;\n            puVar59 = puVar59 + (uint)bVar71 * -2 + 1;\n            piVar66 = (internal_extra_pe_aouthdr *)((int)piVar66 + (uint)bVar71 * -8 + 4);\n          }\n        }\n      }\n      uVar63 = pe_file_alignment._4_4_;\n      if ((pe_file_alignment._4_4_ & (uint)pe_file_alignment) == 0xffffffff) {\n        pe_file_alignment._0_4_ = 0x200;\n        pe_file_alignment._4_4_ = 0;\n      }\n      else {\n        *(uint *)&(ppVar10->pe_opthdr).FileAlignment = (uint)pe_file_alignment;\n        *(uint *)((int)&(ppVar10->pe_opthdr).FileAlignment + 4) = uVar63;\n      }\n      uVar63 = pe_heap_commit._4_4_;\n      if ((pe_heap_commit._4_4_ & (uint)pe_heap_commit) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfHeapCommit = (uint)pe_heap_commit;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4) = uVar63;\n      }\n      uVar63 = pe_heap_reserve._4_4_;\n      if ((pe_heap_reserve._4_4_ & (uint)pe_heap_reserve) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfHeapCommit = (uint)pe_heap_reserve;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4) = uVar63;\n      }\n      uVar63 = pe_image_base._4_4_;\n      if ((pe_image_base._4_4_ & (uint)pe_image_base) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).ImageBase = (uint)pe_image_base;\n        *(uint *)((int)&(ppVar10->pe_opthdr).ImageBase + 4) = uVar63;\n      }\n      uVar63 = pe_section_alignment._4_4_;\n      local_64 = (int *)(uint)pe_section_alignment;\n      if (((uint)pe_section_alignment & pe_section_alignment._4_4_) == 0xffffffff) {\n        pe_section_alignment._0_4_ = 0x1000;\n        uVar63 = 0;\n        pe_section_alignment._4_4_ = 0;\n        local_64 = (int *)0x1000;\n      }\n      else {\n        *(uint *)&(ppVar10->pe_opthdr).SectionAlignment = (uint)pe_section_alignment;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SectionAlignment + 4) = uVar63;\n      }\n      uVar48 = pe_stack_commit._4_4_;\n      if ((pe_stack_commit._4_4_ & (uint)pe_stack_commit) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfStackCommit = (uint)pe_stack_commit;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4) = uVar48;\n      }\n      uVar48 = pe_stack_reserve._4_4_;\n      if ((pe_stack_reserve._4_4_ & (uint)pe_stack_reserve) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfStackCommit = (uint)pe_stack_reserve;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4) = uVar48;\n      }\n      if (pe_subsystem != -1) {\n        (ppVar10->pe_opthdr).Subsystem = pe_subsystem;\n      }\n      if (pe_major_subsystem_version != -1) {\n        (ppVar10->pe_opthdr).MajorSubsystemVersion = pe_major_subsystem_version;\n      }\n      if (pe_minor_subsystem_version != -1) {\n        (ppVar10->pe_opthdr).MinorSubsystemVersion = pe_minor_subsystem_version;\n      }\n      if (uVar63 < pe_file_alignment._4_4_ ||\n          uVar63 - pe_file_alignment._4_4_ < (uint)(local_64 < (uint)pe_file_alignment)) {\n        sprintf(file_alignment,"%016llx",(uint)pe_file_alignment,pe_file_alignment._4_4_);\n        sprintf((char *)&contents,"%016llx",(uint)pe_section_alignment,pe_section_alignment._4_4_);\n        pcVar27 = (char *)dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5)\n        ;\n        non_fatal(pcVar27,file_alignment,&contents);\n      }\n    }\n  }" if (parenthesized_expression "(bVar70)" ( identifier )) (compound_statement "{\n    iVar22 = 4;\n    pbVar58 = (byte *)obfd->xvec->name;\n    pbVar65 = &DAT_0002f16a;\n    do {\n      if (iVar22 == 0) break;\n      iVar22 = iVar22 + -1;\n      bVar69 = *pbVar58 < *pbVar65;\n      bVar70 = *pbVar58 == *pbVar65;\n      pbVar58 = pbVar58 + (uint)bVar71 * -2 + 1;\n      pbVar65 = pbVar65 + (uint)bVar71 * -2 + 1;\n    } while (bVar70);\n    if ((!bVar69 && !bVar70) == bVar69) {\n      ppVar10 = (obfd->tdata).pe_obj_data;\n      bVar16 = ibfd->xvec->flavour;\n      bVar69 = bVar16 < bfd_target_coff_flavour;\n      bVar70 = bVar16 == bfd_target_coff_flavour;\n      if (bVar70) {\n        iVar22 = 4;\n        pbVar58 = (byte *)ibfd->xvec->name;\n        pbVar65 = &DAT_0002f16a;\n        do {\n          if (iVar22 == 0) break;\n          iVar22 = iVar22 + -1;\n          bVar69 = *pbVar58 < *pbVar65;\n          bVar70 = *pbVar58 == *pbVar65;\n          pbVar58 = pbVar58 + (uint)bVar71 * -2 + 1;\n          pbVar65 = pbVar65 + (uint)bVar71 * -2 + 1;\n        } while (bVar70);\n        if ((!bVar69 && !bVar70) == bVar69) {\n          puVar59 = &(((ibfd->tdata).elf_obj_data)->symtab_hdr).sh_link;\n          piVar66 = &ppVar10->pe_opthdr;\n          for (iVar22 = 0x52; iVar22 != 0; iVar22 = iVar22 + -1) {\n            uVar19 = *(undefined1 *)((int)puVar59 + 2);\n            uVar20 = *(undefined1 *)((int)puVar59 + 3);\n            piVar66->Magic = *(undefined2 *)puVar59;\n            piVar66->MajorLinkerVersion = uVar19;\n            piVar66->MinorLinkerVersion = uVar20;\n            puVar59 = puVar59 + (uint)bVar71 * -2 + 1;\n            piVar66 = (internal_extra_pe_aouthdr *)((int)piVar66 + (uint)bVar71 * -8 + 4);\n          }\n        }\n      }\n      uVar63 = pe_file_alignment._4_4_;\n      if ((pe_file_alignment._4_4_ & (uint)pe_file_alignment) == 0xffffffff) {\n        pe_file_alignment._0_4_ = 0x200;\n        pe_file_alignment._4_4_ = 0;\n      }\n      else {\n        *(uint *)&(ppVar10->pe_opthdr).FileAlignment = (uint)pe_file_alignment;\n        *(uint *)((int)&(ppVar10->pe_opthdr).FileAlignment + 4) = uVar63;\n      }\n      uVar63 = pe_heap_commit._4_4_;\n      if ((pe_heap_commit._4_4_ & (uint)pe_heap_commit) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfHeapCommit = (uint)pe_heap_commit;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4) = uVar63;\n      }\n      uVar63 = pe_heap_reserve._4_4_;\n      if ((pe_heap_reserve._4_4_ & (uint)pe_heap_reserve) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfHeapCommit = (uint)pe_heap_reserve;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4) = uVar63;\n      }\n      uVar63 = pe_image_base._4_4_;\n      if ((pe_image_base._4_4_ & (uint)pe_image_base) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).ImageBase = (uint)pe_image_base;\n        *(uint *)((int)&(ppVar10->pe_opthdr).ImageBase + 4) = uVar63;\n      }\n      uVar63 = pe_section_alignment._4_4_;\n      local_64 = (int *)(uint)pe_section_alignment;\n      if (((uint)pe_section_alignment & pe_section_alignment._4_4_) == 0xffffffff) {\n        pe_section_alignment._0_4_ = 0x1000;\n        uVar63 = 0;\n        pe_section_alignment._4_4_ = 0;\n        local_64 = (int *)0x1000;\n      }\n      else {\n        *(uint *)&(ppVar10->pe_opthdr).SectionAlignment = (uint)pe_section_alignment;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SectionAlignment + 4) = uVar63;\n      }\n      uVar48 = pe_stack_commit._4_4_;\n      if ((pe_stack_commit._4_4_ & (uint)pe_stack_commit) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfStackCommit = (uint)pe_stack_commit;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4) = uVar48;\n      }\n      uVar48 = pe_stack_reserve._4_4_;\n      if ((pe_stack_reserve._4_4_ & (uint)pe_stack_reserve) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfStackCommit = (uint)pe_stack_reserve;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4) = uVar48;\n      }\n      if (pe_subsystem != -1) {\n        (ppVar10->pe_opthdr).Subsystem = pe_subsystem;\n      }\n      if (pe_major_subsystem_version != -1) {\n        (ppVar10->pe_opthdr).MajorSubsystemVersion = pe_major_subsystem_version;\n      }\n      if (pe_minor_subsystem_version != -1) {\n        (ppVar10->pe_opthdr).MinorSubsystemVersion = pe_minor_subsystem_version;\n      }\n      if (uVar63 < pe_file_alignment._4_4_ ||\n          uVar63 - pe_file_alignment._4_4_ < (uint)(local_64 < (uint)pe_file_alignment)) {\n        sprintf(file_alignment,"%016llx",(uint)pe_file_alignment,pe_file_alignment._4_4_);\n        sprintf((char *)&contents,"%016llx",(uint)pe_section_alignment,pe_section_alignment._4_4_);\n        pcVar27 = (char *)dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5)\n        ;\n        non_fatal(pcVar27,file_alignment,&contents);\n      }\n    }\n  }" { (expression_statement "iVar22 = 4;" (assignment_expression "iVar22 = 4" identifier = number_literal) ;) (expression_statement "pbVar58 = (byte *)obfd->xvec->name;" (assignment_expression "pbVar58 = (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 "pbVar65 = &DAT_0002f16a;" (assignment_expression "pbVar65 = &DAT_0002f16a" identifier = (pointer_expression "&DAT_0002f16a" & identifier)) ;) (do_statement "do {\n      if (iVar22 == 0) break;\n      iVar22 = iVar22 + -1;\n      bVar69 = *pbVar58 < *pbVar65;\n      bVar70 = *pbVar58 == *pbVar65;\n      pbVar58 = pbVar58 + (uint)bVar71 * -2 + 1;\n      pbVar65 = pbVar65 + (uint)bVar71 * -2 + 1;\n    } while (bVar70);" do (compound_statement "{\n      if (iVar22 == 0) break;\n      iVar22 = iVar22 + -1;\n      bVar69 = *pbVar58 < *pbVar65;\n      bVar70 = *pbVar58 == *pbVar65;\n      pbVar58 = pbVar58 + (uint)bVar71 * -2 + 1;\n      pbVar65 = pbVar65 + (uint)bVar71 * -2 + 1;\n    }" { (if_statement "if (iVar22 == 0) break;" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar22 = iVar22 + -1;" (assignment_expression "iVar22 = iVar22 + -1" identifier = (binary_expression "iVar22 + -1" identifier + number_literal)) ;) (expression_statement "bVar69 = *pbVar58 < *pbVar65;" (assignment_expression "bVar69 = *pbVar58 < *pbVar65" identifier = (binary_expression "*pbVar58 < *pbVar65" (pointer_expression "*pbVar58" * identifier) < (pointer_expression "*pbVar65" * identifier))) ;) (expression_statement "bVar70 = *pbVar58 == *pbVar65;" (assignment_expression "bVar70 = *pbVar58 == *pbVar65" identifier = (binary_expression "*pbVar58 == *pbVar65" (pointer_expression "*pbVar58" * identifier) == (pointer_expression "*pbVar65" * identifier))) ;) (expression_statement "pbVar58 = pbVar58 + (uint)bVar71 * -2 + 1;" (assignment_expression "pbVar58 = pbVar58 + (uint)bVar71 * -2 + 1" identifier = (binary_expression "pbVar58 + (uint)bVar71 * -2 + 1" (binary_expression "pbVar58 + (uint)bVar71 * -2" identifier + (binary_expression "(uint)bVar71 * -2" (cast_expression "(uint)bVar71" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar65 = pbVar65 + (uint)bVar71 * -2 + 1;" (assignment_expression "pbVar65 = pbVar65 + (uint)bVar71 * -2 + 1" identifier = (binary_expression "pbVar65 + (uint)bVar71 * -2 + 1" (binary_expression "pbVar65 + (uint)bVar71 * -2" identifier + (binary_expression "(uint)bVar71 * -2" (cast_expression "(uint)bVar71" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar70)" ( identifier )) ;) (if_statement "if ((!bVar69 && !bVar70) == bVar69) {\n      ppVar10 = (obfd->tdata).pe_obj_data;\n      bVar16 = ibfd->xvec->flavour;\n      bVar69 = bVar16 < bfd_target_coff_flavour;\n      bVar70 = bVar16 == bfd_target_coff_flavour;\n      if (bVar70) {\n        iVar22 = 4;\n        pbVar58 = (byte *)ibfd->xvec->name;\n        pbVar65 = &DAT_0002f16a;\n        do {\n          if (iVar22 == 0) break;\n          iVar22 = iVar22 + -1;\n          bVar69 = *pbVar58 < *pbVar65;\n          bVar70 = *pbVar58 == *pbVar65;\n          pbVar58 = pbVar58 + (uint)bVar71 * -2 + 1;\n          pbVar65 = pbVar65 + (uint)bVar71 * -2 + 1;\n        } while (bVar70);\n        if ((!bVar69 && !bVar70) == bVar69) {\n          puVar59 = &(((ibfd->tdata).elf_obj_data)->symtab_hdr).sh_link;\n          piVar66 = &ppVar10->pe_opthdr;\n          for (iVar22 = 0x52; iVar22 != 0; iVar22 = iVar22 + -1) {\n            uVar19 = *(undefined1 *)((int)puVar59 + 2);\n            uVar20 = *(undefined1 *)((int)puVar59 + 3);\n            piVar66->Magic = *(undefined2 *)puVar59;\n            piVar66->MajorLinkerVersion = uVar19;\n            piVar66->MinorLinkerVersion = uVar20;\n            puVar59 = puVar59 + (uint)bVar71 * -2 + 1;\n            piVar66 = (internal_extra_pe_aouthdr *)((int)piVar66 + (uint)bVar71 * -8 + 4);\n          }\n        }\n      }\n      uVar63 = pe_file_alignment._4_4_;\n      if ((pe_file_alignment._4_4_ & (uint)pe_file_alignment) == 0xffffffff) {\n        pe_file_alignment._0_4_ = 0x200;\n        pe_file_alignment._4_4_ = 0;\n      }\n      else {\n        *(uint *)&(ppVar10->pe_opthdr).FileAlignment = (uint)pe_file_alignment;\n        *(uint *)((int)&(ppVar10->pe_opthdr).FileAlignment + 4) = uVar63;\n      }\n      uVar63 = pe_heap_commit._4_4_;\n      if ((pe_heap_commit._4_4_ & (uint)pe_heap_commit) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfHeapCommit = (uint)pe_heap_commit;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4) = uVar63;\n      }\n      uVar63 = pe_heap_reserve._4_4_;\n      if ((pe_heap_reserve._4_4_ & (uint)pe_heap_reserve) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfHeapCommit = (uint)pe_heap_reserve;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4) = uVar63;\n      }\n      uVar63 = pe_image_base._4_4_;\n      if ((pe_image_base._4_4_ & (uint)pe_image_base) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).ImageBase = (uint)pe_image_base;\n        *(uint *)((int)&(ppVar10->pe_opthdr).ImageBase + 4) = uVar63;\n      }\n      uVar63 = pe_section_alignment._4_4_;\n      local_64 = (int *)(uint)pe_section_alignment;\n      if (((uint)pe_section_alignment & pe_section_alignment._4_4_) == 0xffffffff) {\n        pe_section_alignment._0_4_ = 0x1000;\n        uVar63 = 0;\n        pe_section_alignment._4_4_ = 0;\n        local_64 = (int *)0x1000;\n      }\n      else {\n        *(uint *)&(ppVar10->pe_opthdr).SectionAlignment = (uint)pe_section_alignment;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SectionAlignment + 4) = uVar63;\n      }\n      uVar48 = pe_stack_commit._4_4_;\n      if ((pe_stack_commit._4_4_ & (uint)pe_stack_commit) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfStackCommit = (uint)pe_stack_commit;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4) = uVar48;\n      }\n      uVar48 = pe_stack_reserve._4_4_;\n      if ((pe_stack_reserve._4_4_ & (uint)pe_stack_reserve) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfStackCommit = (uint)pe_stack_reserve;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4) = uVar48;\n      }\n      if (pe_subsystem != -1) {\n        (ppVar10->pe_opthdr).Subsystem = pe_subsystem;\n      }\n      if (pe_major_subsystem_version != -1) {\n        (ppVar10->pe_opthdr).MajorSubsystemVersion = pe_major_subsystem_version;\n      }\n      if (pe_minor_subsystem_version != -1) {\n        (ppVar10->pe_opthdr).MinorSubsystemVersion = pe_minor_subsystem_version;\n      }\n      if (uVar63 < pe_file_alignment._4_4_ ||\n          uVar63 - pe_file_alignment._4_4_ < (uint)(local_64 < (uint)pe_file_alignment)) {\n        sprintf(file_alignment,"%016llx",(uint)pe_file_alignment,pe_file_alignment._4_4_);\n        sprintf((char *)&contents,"%016llx",(uint)pe_section_alignment,pe_section_alignment._4_4_);\n        pcVar27 = (char *)dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5)\n        ;\n        non_fatal(pcVar27,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      ppVar10 = (obfd->tdata).pe_obj_data;\n      bVar16 = ibfd->xvec->flavour;\n      bVar69 = bVar16 < bfd_target_coff_flavour;\n      bVar70 = bVar16 == bfd_target_coff_flavour;\n      if (bVar70) {\n        iVar22 = 4;\n        pbVar58 = (byte *)ibfd->xvec->name;\n        pbVar65 = &DAT_0002f16a;\n        do {\n          if (iVar22 == 0) break;\n          iVar22 = iVar22 + -1;\n          bVar69 = *pbVar58 < *pbVar65;\n          bVar70 = *pbVar58 == *pbVar65;\n          pbVar58 = pbVar58 + (uint)bVar71 * -2 + 1;\n          pbVar65 = pbVar65 + (uint)bVar71 * -2 + 1;\n        } while (bVar70);\n        if ((!bVar69 && !bVar70) == bVar69) {\n          puVar59 = &(((ibfd->tdata).elf_obj_data)->symtab_hdr).sh_link;\n          piVar66 = &ppVar10->pe_opthdr;\n          for (iVar22 = 0x52; iVar22 != 0; iVar22 = iVar22 + -1) {\n            uVar19 = *(undefined1 *)((int)puVar59 + 2);\n            uVar20 = *(undefined1 *)((int)puVar59 + 3);\n            piVar66->Magic = *(undefined2 *)puVar59;\n            piVar66->MajorLinkerVersion = uVar19;\n            piVar66->MinorLinkerVersion = uVar20;\n            puVar59 = puVar59 + (uint)bVar71 * -2 + 1;\n            piVar66 = (internal_extra_pe_aouthdr *)((int)piVar66 + (uint)bVar71 * -8 + 4);\n          }\n        }\n      }\n      uVar63 = pe_file_alignment._4_4_;\n      if ((pe_file_alignment._4_4_ & (uint)pe_file_alignment) == 0xffffffff) {\n        pe_file_alignment._0_4_ = 0x200;\n        pe_file_alignment._4_4_ = 0;\n      }\n      else {\n        *(uint *)&(ppVar10->pe_opthdr).FileAlignment = (uint)pe_file_alignment;\n        *(uint *)((int)&(ppVar10->pe_opthdr).FileAlignment + 4) = uVar63;\n      }\n      uVar63 = pe_heap_commit._4_4_;\n      if ((pe_heap_commit._4_4_ & (uint)pe_heap_commit) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfHeapCommit = (uint)pe_heap_commit;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4) = uVar63;\n      }\n      uVar63 = pe_heap_reserve._4_4_;\n      if ((pe_heap_reserve._4_4_ & (uint)pe_heap_reserve) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfHeapCommit = (uint)pe_heap_reserve;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4) = uVar63;\n      }\n      uVar63 = pe_image_base._4_4_;\n      if ((pe_image_base._4_4_ & (uint)pe_image_base) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).ImageBase = (uint)pe_image_base;\n        *(uint *)((int)&(ppVar10->pe_opthdr).ImageBase + 4) = uVar63;\n      }\n      uVar63 = pe_section_alignment._4_4_;\n      local_64 = (int *)(uint)pe_section_alignment;\n      if (((uint)pe_section_alignment & pe_section_alignment._4_4_) == 0xffffffff) {\n        pe_section_alignment._0_4_ = 0x1000;\n        uVar63 = 0;\n        pe_section_alignment._4_4_ = 0;\n        local_64 = (int *)0x1000;\n      }\n      else {\n        *(uint *)&(ppVar10->pe_opthdr).SectionAlignment = (uint)pe_section_alignment;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SectionAlignment + 4) = uVar63;\n      }\n      uVar48 = pe_stack_commit._4_4_;\n      if ((pe_stack_commit._4_4_ & (uint)pe_stack_commit) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfStackCommit = (uint)pe_stack_commit;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4) = uVar48;\n      }\n      uVar48 = pe_stack_reserve._4_4_;\n      if ((pe_stack_reserve._4_4_ & (uint)pe_stack_reserve) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfStackCommit = (uint)pe_stack_reserve;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4) = uVar48;\n      }\n      if (pe_subsystem != -1) {\n        (ppVar10->pe_opthdr).Subsystem = pe_subsystem;\n      }\n      if (pe_major_subsystem_version != -1) {\n        (ppVar10->pe_opthdr).MajorSubsystemVersion = pe_major_subsystem_version;\n      }\n      if (pe_minor_subsystem_version != -1) {\n        (ppVar10->pe_opthdr).MinorSubsystemVersion = pe_minor_subsystem_version;\n      }\n      if (uVar63 < pe_file_alignment._4_4_ ||\n          uVar63 - pe_file_alignment._4_4_ < (uint)(local_64 < (uint)pe_file_alignment)) {\n        sprintf(file_alignment,"%016llx",(uint)pe_file_alignment,pe_file_alignment._4_4_);\n        sprintf((char *)&contents,"%016llx",(uint)pe_section_alignment,pe_section_alignment._4_4_);\n        pcVar27 = (char *)dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5)\n        ;\n        non_fatal(pcVar27,file_alignment,&contents);\n      }\n    }" { (expression_statement "ppVar10 = (obfd->tdata).pe_obj_data;" (assignment_expression "ppVar10 = (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 "bVar16 = ibfd->xvec->flavour;" (assignment_expression "bVar16 = ibfd->xvec->flavour" identifier = (field_expression "ibfd->xvec->flavour" (field_expression "ibfd->xvec" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "bVar69 = bVar16 < bfd_target_coff_flavour;" (assignment_expression "bVar69 = bVar16 < bfd_target_coff_flavour" identifier = (binary_expression "bVar16 < bfd_target_coff_flavour" identifier < identifier)) ;) (expression_statement "bVar70 = bVar16 == bfd_target_coff_flavour;" (assignment_expression "bVar70 = bVar16 == bfd_target_coff_flavour" identifier = (binary_expression "bVar16 == bfd_target_coff_flavour" identifier == identifier)) ;) (if_statement "if (bVar70) {\n        iVar22 = 4;\n        pbVar58 = (byte *)ibfd->xvec->name;\n        pbVar65 = &DAT_0002f16a;\n        do {\n          if (iVar22 == 0) break;\n          iVar22 = iVar22 + -1;\n          bVar69 = *pbVar58 < *pbVar65;\n          bVar70 = *pbVar58 == *pbVar65;\n          pbVar58 = pbVar58 + (uint)bVar71 * -2 + 1;\n          pbVar65 = pbVar65 + (uint)bVar71 * -2 + 1;\n        } while (bVar70);\n        if ((!bVar69 && !bVar70) == bVar69) {\n          puVar59 = &(((ibfd->tdata).elf_obj_data)->symtab_hdr).sh_link;\n          piVar66 = &ppVar10->pe_opthdr;\n          for (iVar22 = 0x52; iVar22 != 0; iVar22 = iVar22 + -1) {\n            uVar19 = *(undefined1 *)((int)puVar59 + 2);\n            uVar20 = *(undefined1 *)((int)puVar59 + 3);\n            piVar66->Magic = *(undefined2 *)puVar59;\n            piVar66->MajorLinkerVersion = uVar19;\n            piVar66->MinorLinkerVersion = uVar20;\n            puVar59 = puVar59 + (uint)bVar71 * -2 + 1;\n            piVar66 = (internal_extra_pe_aouthdr *)((int)piVar66 + (uint)bVar71 * -8 + 4);\n          }\n        }\n      }" if (parenthesized_expression "(bVar70)" ( identifier )) (compound_statement "{\n        iVar22 = 4;\n        pbVar58 = (byte *)ibfd->xvec->name;\n        pbVar65 = &DAT_0002f16a;\n        do {\n          if (iVar22 == 0) break;\n          iVar22 = iVar22 + -1;\n          bVar69 = *pbVar58 < *pbVar65;\n          bVar70 = *pbVar58 == *pbVar65;\n          pbVar58 = pbVar58 + (uint)bVar71 * -2 + 1;\n          pbVar65 = pbVar65 + (uint)bVar71 * -2 + 1;\n        } while (bVar70);\n        if ((!bVar69 && !bVar70) == bVar69) {\n          puVar59 = &(((ibfd->tdata).elf_obj_data)->symtab_hdr).sh_link;\n          piVar66 = &ppVar10->pe_opthdr;\n          for (iVar22 = 0x52; iVar22 != 0; iVar22 = iVar22 + -1) {\n            uVar19 = *(undefined1 *)((int)puVar59 + 2);\n            uVar20 = *(undefined1 *)((int)puVar59 + 3);\n            piVar66->Magic = *(undefined2 *)puVar59;\n            piVar66->MajorLinkerVersion = uVar19;\n            piVar66->MinorLinkerVersion = uVar20;\n            puVar59 = puVar59 + (uint)bVar71 * -2 + 1;\n            piVar66 = (internal_extra_pe_aouthdr *)((int)piVar66 + (uint)bVar71 * -8 + 4);\n          }\n        }\n      }" { (expression_statement "iVar22 = 4;" (assignment_expression "iVar22 = 4" identifier = number_literal) ;) (expression_statement "pbVar58 = (byte *)ibfd->xvec->name;" (assignment_expression "pbVar58 = (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 "pbVar65 = &DAT_0002f16a;" (assignment_expression "pbVar65 = &DAT_0002f16a" identifier = (pointer_expression "&DAT_0002f16a" & identifier)) ;) (do_statement "do {\n          if (iVar22 == 0) break;\n          iVar22 = iVar22 + -1;\n          bVar69 = *pbVar58 < *pbVar65;\n          bVar70 = *pbVar58 == *pbVar65;\n          pbVar58 = pbVar58 + (uint)bVar71 * -2 + 1;\n          pbVar65 = pbVar65 + (uint)bVar71 * -2 + 1;\n        } while (bVar70);" do (compound_statement "{\n          if (iVar22 == 0) break;\n          iVar22 = iVar22 + -1;\n          bVar69 = *pbVar58 < *pbVar65;\n          bVar70 = *pbVar58 == *pbVar65;\n          pbVar58 = pbVar58 + (uint)bVar71 * -2 + 1;\n          pbVar65 = pbVar65 + (uint)bVar71 * -2 + 1;\n        }" { (if_statement "if (iVar22 == 0) break;" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar22 = iVar22 + -1;" (assignment_expression "iVar22 = iVar22 + -1" identifier = (binary_expression "iVar22 + -1" identifier + number_literal)) ;) (expression_statement "bVar69 = *pbVar58 < *pbVar65;" (assignment_expression "bVar69 = *pbVar58 < *pbVar65" identifier = (binary_expression "*pbVar58 < *pbVar65" (pointer_expression "*pbVar58" * identifier) < (pointer_expression "*pbVar65" * identifier))) ;) (expression_statement "bVar70 = *pbVar58 == *pbVar65;" (assignment_expression "bVar70 = *pbVar58 == *pbVar65" identifier = (binary_expression "*pbVar58 == *pbVar65" (pointer_expression "*pbVar58" * identifier) == (pointer_expression "*pbVar65" * identifier))) ;) (expression_statement "pbVar58 = pbVar58 + (uint)bVar71 * -2 + 1;" (assignment_expression "pbVar58 = pbVar58 + (uint)bVar71 * -2 + 1" identifier = (binary_expression "pbVar58 + (uint)bVar71 * -2 + 1" (binary_expression "pbVar58 + (uint)bVar71 * -2" identifier + (binary_expression "(uint)bVar71 * -2" (cast_expression "(uint)bVar71" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar65 = pbVar65 + (uint)bVar71 * -2 + 1;" (assignment_expression "pbVar65 = pbVar65 + (uint)bVar71 * -2 + 1" identifier = (binary_expression "pbVar65 + (uint)bVar71 * -2 + 1" (binary_expression "pbVar65 + (uint)bVar71 * -2" identifier + (binary_expression "(uint)bVar71 * -2" (cast_expression "(uint)bVar71" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar70)" ( identifier )) ;) (if_statement "if ((!bVar69 && !bVar70) == bVar69) {\n          puVar59 = &(((ibfd->tdata).elf_obj_data)->symtab_hdr).sh_link;\n          piVar66 = &ppVar10->pe_opthdr;\n          for (iVar22 = 0x52; iVar22 != 0; iVar22 = iVar22 + -1) {\n            uVar19 = *(undefined1 *)((int)puVar59 + 2);\n            uVar20 = *(undefined1 *)((int)puVar59 + 3);\n            piVar66->Magic = *(undefined2 *)puVar59;\n            piVar66->MajorLinkerVersion = uVar19;\n            piVar66->MinorLinkerVersion = uVar20;\n            puVar59 = puVar59 + (uint)bVar71 * -2 + 1;\n            piVar66 = (internal_extra_pe_aouthdr *)((int)piVar66 + (uint)bVar71 * -8 + 4);\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          puVar59 = &(((ibfd->tdata).elf_obj_data)->symtab_hdr).sh_link;\n          piVar66 = &ppVar10->pe_opthdr;\n          for (iVar22 = 0x52; iVar22 != 0; iVar22 = iVar22 + -1) {\n            uVar19 = *(undefined1 *)((int)puVar59 + 2);\n            uVar20 = *(undefined1 *)((int)puVar59 + 3);\n            piVar66->Magic = *(undefined2 *)puVar59;\n            piVar66->MajorLinkerVersion = uVar19;\n            piVar66->MinorLinkerVersion = uVar20;\n            puVar59 = puVar59 + (uint)bVar71 * -2 + 1;\n            piVar66 = (internal_extra_pe_aouthdr *)((int)piVar66 + (uint)bVar71 * -8 + 4);\n          }\n        }" { (expression_statement "puVar59 = &(((ibfd->tdata).elf_obj_data)->symtab_hdr).sh_link;" (assignment_expression "puVar59 = &(((ibfd->tdata).elf_obj_data)->symtab_hdr).sh_link" identifier = (pointer_expression "&(((ibfd->tdata).elf_obj_data)->symtab_hdr).sh_link" & (field_expression "(((ibfd->tdata).elf_obj_data)->symtab_hdr).sh_link" (parenthesized_expression "(((ibfd->tdata).elf_obj_data)->symtab_hdr)" ( (field_expression "((ibfd->tdata).elf_obj_data)->symtab_hdr" (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) )) . field_identifier))) ;) (expression_statement "piVar66 = &ppVar10->pe_opthdr;" (assignment_expression "piVar66 = &ppVar10->pe_opthdr" identifier = (pointer_expression "&ppVar10->pe_opthdr" & (field_expression "ppVar10->pe_opthdr" identifier -> field_identifier))) ;) (for_statement "for (iVar22 = 0x52; iVar22 != 0; iVar22 = iVar22 + -1) {\n            uVar19 = *(undefined1 *)((int)puVar59 + 2);\n            uVar20 = *(undefined1 *)((int)puVar59 + 3);\n            piVar66->Magic = *(undefined2 *)puVar59;\n            piVar66->MajorLinkerVersion = uVar19;\n            piVar66->MinorLinkerVersion = uVar20;\n            puVar59 = puVar59 + (uint)bVar71 * -2 + 1;\n            piVar66 = (internal_extra_pe_aouthdr *)((int)piVar66 + (uint)bVar71 * -8 + 4);\n          }" for ( (assignment_expression "iVar22 = 0x52" identifier = number_literal) ; (binary_expression "iVar22 != 0" identifier != number_literal) ; (assignment_expression "iVar22 = iVar22 + -1" identifier = (binary_expression "iVar22 + -1" identifier + number_literal)) ) (compound_statement "{\n            uVar19 = *(undefined1 *)((int)puVar59 + 2);\n            uVar20 = *(undefined1 *)((int)puVar59 + 3);\n            piVar66->Magic = *(undefined2 *)puVar59;\n            piVar66->MajorLinkerVersion = uVar19;\n            piVar66->MinorLinkerVersion = uVar20;\n            puVar59 = puVar59 + (uint)bVar71 * -2 + 1;\n            piVar66 = (internal_extra_pe_aouthdr *)((int)piVar66 + (uint)bVar71 * -8 + 4);\n          }" { (expression_statement "uVar19 = *(undefined1 *)((int)puVar59 + 2);" (assignment_expression "uVar19 = *(undefined1 *)((int)puVar59 + 2)" identifier = (pointer_expression "*(undefined1 *)((int)puVar59 + 2)" * (cast_expression "(undefined1 *)((int)puVar59 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar59 + 2)" ( (binary_expression "(int)puVar59 + 2" (cast_expression "(int)puVar59" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar20 = *(undefined1 *)((int)puVar59 + 3);" (assignment_expression "uVar20 = *(undefined1 *)((int)puVar59 + 3)" identifier = (pointer_expression "*(undefined1 *)((int)puVar59 + 3)" * (cast_expression "(undefined1 *)((int)puVar59 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar59 + 3)" ( (binary_expression "(int)puVar59 + 3" (cast_expression "(int)puVar59" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "piVar66->Magic = *(undefined2 *)puVar59;" (assignment_expression "piVar66->Magic = *(undefined2 *)puVar59" (field_expression "piVar66->Magic" identifier -> field_identifier) = (pointer_expression "*(undefined2 *)puVar59" * (cast_expression "(undefined2 *)puVar59" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "piVar66->MajorLinkerVersion = uVar19;" (assignment_expression "piVar66->MajorLinkerVersion = uVar19" (field_expression "piVar66->MajorLinkerVersion" identifier -> field_identifier) = identifier) ;) (expression_statement "piVar66->MinorLinkerVersion = uVar20;" (assignment_expression "piVar66->MinorLinkerVersion = uVar20" (field_expression "piVar66->MinorLinkerVersion" identifier -> field_identifier) = identifier) ;) (expression_statement "puVar59 = puVar59 + (uint)bVar71 * -2 + 1;" (assignment_expression "puVar59 = puVar59 + (uint)bVar71 * -2 + 1" identifier = (binary_expression "puVar59 + (uint)bVar71 * -2 + 1" (binary_expression "puVar59 + (uint)bVar71 * -2" identifier + (binary_expression "(uint)bVar71 * -2" (cast_expression "(uint)bVar71" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "piVar66 = (internal_extra_pe_aouthdr *)((int)piVar66 + (uint)bVar71 * -8 + 4);" (assignment_expression "piVar66 = (internal_extra_pe_aouthdr *)((int)piVar66 + (uint)bVar71 * -8 + 4)" identifier = (cast_expression "(internal_extra_pe_aouthdr *)((int)piVar66 + (uint)bVar71 * -8 + 4)" ( (type_descriptor "internal_extra_pe_aouthdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar66 + (uint)bVar71 * -8 + 4)" ( (binary_expression "(int)piVar66 + (uint)bVar71 * -8 + 4" (binary_expression "(int)piVar66 + (uint)bVar71 * -8" (cast_expression "(int)piVar66" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar71 * -8" (cast_expression "(uint)bVar71" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) })) })) })) (expression_statement "uVar63 = pe_file_alignment._4_4_;" (assignment_expression "uVar63 = pe_file_alignment._4_4_" identifier = (field_expression "pe_file_alignment._4_4_" identifier . field_identifier)) ;) (if_statement "if ((pe_file_alignment._4_4_ & (uint)pe_file_alignment) == 0xffffffff) {\n        pe_file_alignment._0_4_ = 0x200;\n        pe_file_alignment._4_4_ = 0;\n      }\n      else {\n        *(uint *)&(ppVar10->pe_opthdr).FileAlignment = (uint)pe_file_alignment;\n        *(uint *)((int)&(ppVar10->pe_opthdr).FileAlignment + 4) = uVar63;\n      }" if (parenthesized_expression "((pe_file_alignment._4_4_ & (uint)pe_file_alignment) == 0xffffffff)" ( (binary_expression "(pe_file_alignment._4_4_ & (uint)pe_file_alignment) == 0xffffffff" (parenthesized_expression "(pe_file_alignment._4_4_ & (uint)pe_file_alignment)" ( (binary_expression "pe_file_alignment._4_4_ & (uint)pe_file_alignment" (field_expression "pe_file_alignment._4_4_" identifier . field_identifier) & (cast_expression "(uint)pe_file_alignment" ( (type_descriptor "uint" type_identifier) ) identifier)) )) == number_literal) )) (compound_statement "{\n        pe_file_alignment._0_4_ = 0x200;\n        pe_file_alignment._4_4_ = 0;\n      }" { (expression_statement "pe_file_alignment._0_4_ = 0x200;" (assignment_expression "pe_file_alignment._0_4_ = 0x200" (field_expression "pe_file_alignment._0_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "pe_file_alignment._4_4_ = 0;" (assignment_expression "pe_file_alignment._4_4_ = 0" (field_expression "pe_file_alignment._4_4_" identifier . field_identifier) = number_literal) ;) }) (else_clause "else {\n        *(uint *)&(ppVar10->pe_opthdr).FileAlignment = (uint)pe_file_alignment;\n        *(uint *)((int)&(ppVar10->pe_opthdr).FileAlignment + 4) = uVar63;\n      }" else (compound_statement "{\n        *(uint *)&(ppVar10->pe_opthdr).FileAlignment = (uint)pe_file_alignment;\n        *(uint *)((int)&(ppVar10->pe_opthdr).FileAlignment + 4) = uVar63;\n      }" { (expression_statement "*(uint *)&(ppVar10->pe_opthdr).FileAlignment = (uint)pe_file_alignment;" (assignment_expression "*(uint *)&(ppVar10->pe_opthdr).FileAlignment = (uint)pe_file_alignment" (pointer_expression "*(uint *)&(ppVar10->pe_opthdr).FileAlignment" * (cast_expression "(uint *)&(ppVar10->pe_opthdr).FileAlignment" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(ppVar10->pe_opthdr).FileAlignment" & (field_expression "(ppVar10->pe_opthdr).FileAlignment" (parenthesized_expression "(ppVar10->pe_opthdr)" ( (field_expression "ppVar10->pe_opthdr" identifier -> field_identifier) )) . field_identifier)))) = (cast_expression "(uint)pe_file_alignment" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(uint *)((int)&(ppVar10->pe_opthdr).FileAlignment + 4) = uVar63;" (assignment_expression "*(uint *)((int)&(ppVar10->pe_opthdr).FileAlignment + 4) = uVar63" (pointer_expression "*(uint *)((int)&(ppVar10->pe_opthdr).FileAlignment + 4)" * (cast_expression "(uint *)((int)&(ppVar10->pe_opthdr).FileAlignment + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(ppVar10->pe_opthdr).FileAlignment + 4)" ( (binary_expression "(int)&(ppVar10->pe_opthdr).FileAlignment + 4" (cast_expression "(int)&(ppVar10->pe_opthdr).FileAlignment" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(ppVar10->pe_opthdr).FileAlignment" & (field_expression "(ppVar10->pe_opthdr).FileAlignment" (parenthesized_expression "(ppVar10->pe_opthdr)" ( (field_expression "ppVar10->pe_opthdr" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) }))) (expression_statement "uVar63 = pe_heap_commit._4_4_;" (assignment_expression "uVar63 = pe_heap_commit._4_4_" identifier = (field_expression "pe_heap_commit._4_4_" identifier . field_identifier)) ;) (if_statement "if ((pe_heap_commit._4_4_ & (uint)pe_heap_commit) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfHeapCommit = (uint)pe_heap_commit;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4) = uVar63;\n      }" if (parenthesized_expression "((pe_heap_commit._4_4_ & (uint)pe_heap_commit) != 0xffffffff)" ( (binary_expression "(pe_heap_commit._4_4_ & (uint)pe_heap_commit) != 0xffffffff" (parenthesized_expression "(pe_heap_commit._4_4_ & (uint)pe_heap_commit)" ( (binary_expression "pe_heap_commit._4_4_ & (uint)pe_heap_commit" (field_expression "pe_heap_commit._4_4_" identifier . field_identifier) & (cast_expression "(uint)pe_heap_commit" ( (type_descriptor "uint" type_identifier) ) identifier)) )) != number_literal) )) (compound_statement "{\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfHeapCommit = (uint)pe_heap_commit;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4) = uVar63;\n      }" { (expression_statement "*(uint *)&(ppVar10->pe_opthdr).SizeOfHeapCommit = (uint)pe_heap_commit;" (assignment_expression "*(uint *)&(ppVar10->pe_opthdr).SizeOfHeapCommit = (uint)pe_heap_commit" (pointer_expression "*(uint *)&(ppVar10->pe_opthdr).SizeOfHeapCommit" * (cast_expression "(uint *)&(ppVar10->pe_opthdr).SizeOfHeapCommit" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(ppVar10->pe_opthdr).SizeOfHeapCommit" & (field_expression "(ppVar10->pe_opthdr).SizeOfHeapCommit" (parenthesized_expression "(ppVar10->pe_opthdr)" ( (field_expression "ppVar10->pe_opthdr" identifier -> field_identifier) )) . field_identifier)))) = (cast_expression "(uint)pe_heap_commit" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(uint *)((int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4) = uVar63;" (assignment_expression "*(uint *)((int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4) = uVar63" (pointer_expression "*(uint *)((int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4)" * (cast_expression "(uint *)((int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4)" ( (binary_expression "(int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4" (cast_expression "(int)&(ppVar10->pe_opthdr).SizeOfHeapCommit" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(ppVar10->pe_opthdr).SizeOfHeapCommit" & (field_expression "(ppVar10->pe_opthdr).SizeOfHeapCommit" (parenthesized_expression "(ppVar10->pe_opthdr)" ( (field_expression "ppVar10->pe_opthdr" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) })) (expression_statement "uVar63 = pe_heap_reserve._4_4_;" (assignment_expression "uVar63 = pe_heap_reserve._4_4_" identifier = (field_expression "pe_heap_reserve._4_4_" identifier . field_identifier)) ;) (if_statement "if ((pe_heap_reserve._4_4_ & (uint)pe_heap_reserve) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfHeapCommit = (uint)pe_heap_reserve;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4) = uVar63;\n      }" if (parenthesized_expression "((pe_heap_reserve._4_4_ & (uint)pe_heap_reserve) != 0xffffffff)" ( (binary_expression "(pe_heap_reserve._4_4_ & (uint)pe_heap_reserve) != 0xffffffff" (parenthesized_expression "(pe_heap_reserve._4_4_ & (uint)pe_heap_reserve)" ( (binary_expression "pe_heap_reserve._4_4_ & (uint)pe_heap_reserve" (field_expression "pe_heap_reserve._4_4_" identifier . field_identifier) & (cast_expression "(uint)pe_heap_reserve" ( (type_descriptor "uint" type_identifier) ) identifier)) )) != number_literal) )) (compound_statement "{\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfHeapCommit = (uint)pe_heap_reserve;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4) = uVar63;\n      }" { (expression_statement "*(uint *)&(ppVar10->pe_opthdr).SizeOfHeapCommit = (uint)pe_heap_reserve;" (assignment_expression "*(uint *)&(ppVar10->pe_opthdr).SizeOfHeapCommit = (uint)pe_heap_reserve" (pointer_expression "*(uint *)&(ppVar10->pe_opthdr).SizeOfHeapCommit" * (cast_expression "(uint *)&(ppVar10->pe_opthdr).SizeOfHeapCommit" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(ppVar10->pe_opthdr).SizeOfHeapCommit" & (field_expression "(ppVar10->pe_opthdr).SizeOfHeapCommit" (parenthesized_expression "(ppVar10->pe_opthdr)" ( (field_expression "ppVar10->pe_opthdr" identifier -> field_identifier) )) . field_identifier)))) = (cast_expression "(uint)pe_heap_reserve" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(uint *)((int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4) = uVar63;" (assignment_expression "*(uint *)((int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4) = uVar63" (pointer_expression "*(uint *)((int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4)" * (cast_expression "(uint *)((int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4)" ( (binary_expression "(int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4" (cast_expression "(int)&(ppVar10->pe_opthdr).SizeOfHeapCommit" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(ppVar10->pe_opthdr).SizeOfHeapCommit" & (field_expression "(ppVar10->pe_opthdr).SizeOfHeapCommit" (parenthesized_expression "(ppVar10->pe_opthdr)" ( (field_expression "ppVar10->pe_opthdr" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) })) (expression_statement "uVar63 = pe_image_base._4_4_;" (assignment_expression "uVar63 = pe_image_base._4_4_" identifier = (field_expression "pe_image_base._4_4_" identifier . field_identifier)) ;) (if_statement "if ((pe_image_base._4_4_ & (uint)pe_image_base) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).ImageBase = (uint)pe_image_base;\n        *(uint *)((int)&(ppVar10->pe_opthdr).ImageBase + 4) = uVar63;\n      }" if (parenthesized_expression "((pe_image_base._4_4_ & (uint)pe_image_base) != 0xffffffff)" ( (binary_expression "(pe_image_base._4_4_ & (uint)pe_image_base) != 0xffffffff" (parenthesized_expression "(pe_image_base._4_4_ & (uint)pe_image_base)" ( (binary_expression "pe_image_base._4_4_ & (uint)pe_image_base" (field_expression "pe_image_base._4_4_" identifier . field_identifier) & (cast_expression "(uint)pe_image_base" ( (type_descriptor "uint" type_identifier) ) identifier)) )) != number_literal) )) (compound_statement "{\n        *(uint *)&(ppVar10->pe_opthdr).ImageBase = (uint)pe_image_base;\n        *(uint *)((int)&(ppVar10->pe_opthdr).ImageBase + 4) = uVar63;\n      }" { (expression_statement "*(uint *)&(ppVar10->pe_opthdr).ImageBase = (uint)pe_image_base;" (assignment_expression "*(uint *)&(ppVar10->pe_opthdr).ImageBase = (uint)pe_image_base" (pointer_expression "*(uint *)&(ppVar10->pe_opthdr).ImageBase" * (cast_expression "(uint *)&(ppVar10->pe_opthdr).ImageBase" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(ppVar10->pe_opthdr).ImageBase" & (field_expression "(ppVar10->pe_opthdr).ImageBase" (parenthesized_expression "(ppVar10->pe_opthdr)" ( (field_expression "ppVar10->pe_opthdr" identifier -> field_identifier) )) . field_identifier)))) = (cast_expression "(uint)pe_image_base" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(uint *)((int)&(ppVar10->pe_opthdr).ImageBase + 4) = uVar63;" (assignment_expression "*(uint *)((int)&(ppVar10->pe_opthdr).ImageBase + 4) = uVar63" (pointer_expression "*(uint *)((int)&(ppVar10->pe_opthdr).ImageBase + 4)" * (cast_expression "(uint *)((int)&(ppVar10->pe_opthdr).ImageBase + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(ppVar10->pe_opthdr).ImageBase + 4)" ( (binary_expression "(int)&(ppVar10->pe_opthdr).ImageBase + 4" (cast_expression "(int)&(ppVar10->pe_opthdr).ImageBase" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(ppVar10->pe_opthdr).ImageBase" & (field_expression "(ppVar10->pe_opthdr).ImageBase" (parenthesized_expression "(ppVar10->pe_opthdr)" ( (field_expression "ppVar10->pe_opthdr" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) })) (expression_statement "uVar63 = pe_section_alignment._4_4_;" (assignment_expression "uVar63 = pe_section_alignment._4_4_" identifier = (field_expression "pe_section_alignment._4_4_" identifier . field_identifier)) ;) (expression_statement "local_64 = (int *)(uint)pe_section_alignment;" (assignment_expression "local_64 = (int *)(uint)pe_section_alignment" identifier = (cast_expression "(int *)(uint)pe_section_alignment" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)pe_section_alignment" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if (((uint)pe_section_alignment & pe_section_alignment._4_4_) == 0xffffffff) {\n        pe_section_alignment._0_4_ = 0x1000;\n        uVar63 = 0;\n        pe_section_alignment._4_4_ = 0;\n        local_64 = (int *)0x1000;\n      }\n      else {\n        *(uint *)&(ppVar10->pe_opthdr).SectionAlignment = (uint)pe_section_alignment;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SectionAlignment + 4) = uVar63;\n      }" if (parenthesized_expression "(((uint)pe_section_alignment & pe_section_alignment._4_4_) == 0xffffffff)" ( (binary_expression "((uint)pe_section_alignment & pe_section_alignment._4_4_) == 0xffffffff" (parenthesized_expression "((uint)pe_section_alignment & pe_section_alignment._4_4_)" ( (binary_expression "(uint)pe_section_alignment & pe_section_alignment._4_4_" (cast_expression "(uint)pe_section_alignment" ( (type_descriptor "uint" type_identifier) ) identifier) & (field_expression "pe_section_alignment._4_4_" identifier . field_identifier)) )) == number_literal) )) (compound_statement "{\n        pe_section_alignment._0_4_ = 0x1000;\n        uVar63 = 0;\n        pe_section_alignment._4_4_ = 0;\n        local_64 = (int *)0x1000;\n      }" { (expression_statement "pe_section_alignment._0_4_ = 0x1000;" (assignment_expression "pe_section_alignment._0_4_ = 0x1000" (field_expression "pe_section_alignment._0_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "uVar63 = 0;" (assignment_expression "uVar63 = 0" identifier = number_literal) ;) (expression_statement "pe_section_alignment._4_4_ = 0;" (assignment_expression "pe_section_alignment._4_4_ = 0" (field_expression "pe_section_alignment._4_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_64 = (int *)0x1000;" (assignment_expression "local_64 = (int *)0x1000" identifier = (cast_expression "(int *)0x1000" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        *(uint *)&(ppVar10->pe_opthdr).SectionAlignment = (uint)pe_section_alignment;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SectionAlignment + 4) = uVar63;\n      }" else (compound_statement "{\n        *(uint *)&(ppVar10->pe_opthdr).SectionAlignment = (uint)pe_section_alignment;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SectionAlignment + 4) = uVar63;\n      }" { (expression_statement "*(uint *)&(ppVar10->pe_opthdr).SectionAlignment = (uint)pe_section_alignment;" (assignment_expression "*(uint *)&(ppVar10->pe_opthdr).SectionAlignment = (uint)pe_section_alignment" (pointer_expression "*(uint *)&(ppVar10->pe_opthdr).SectionAlignment" * (cast_expression "(uint *)&(ppVar10->pe_opthdr).SectionAlignment" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(ppVar10->pe_opthdr).SectionAlignment" & (field_expression "(ppVar10->pe_opthdr).SectionAlignment" (parenthesized_expression "(ppVar10->pe_opthdr)" ( (field_expression "ppVar10->pe_opthdr" identifier -> field_identifier) )) . field_identifier)))) = (cast_expression "(uint)pe_section_alignment" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(uint *)((int)&(ppVar10->pe_opthdr).SectionAlignment + 4) = uVar63;" (assignment_expression "*(uint *)((int)&(ppVar10->pe_opthdr).SectionAlignment + 4) = uVar63" (pointer_expression "*(uint *)((int)&(ppVar10->pe_opthdr).SectionAlignment + 4)" * (cast_expression "(uint *)((int)&(ppVar10->pe_opthdr).SectionAlignment + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(ppVar10->pe_opthdr).SectionAlignment + 4)" ( (binary_expression "(int)&(ppVar10->pe_opthdr).SectionAlignment + 4" (cast_expression "(int)&(ppVar10->pe_opthdr).SectionAlignment" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(ppVar10->pe_opthdr).SectionAlignment" & (field_expression "(ppVar10->pe_opthdr).SectionAlignment" (parenthesized_expression "(ppVar10->pe_opthdr)" ( (field_expression "ppVar10->pe_opthdr" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) }))) (expression_statement "uVar48 = pe_stack_commit._4_4_;" (assignment_expression "uVar48 = pe_stack_commit._4_4_" identifier = (field_expression "pe_stack_commit._4_4_" identifier . field_identifier)) ;) (if_statement "if ((pe_stack_commit._4_4_ & (uint)pe_stack_commit) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfStackCommit = (uint)pe_stack_commit;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4) = uVar48;\n      }" if (parenthesized_expression "((pe_stack_commit._4_4_ & (uint)pe_stack_commit) != 0xffffffff)" ( (binary_expression "(pe_stack_commit._4_4_ & (uint)pe_stack_commit) != 0xffffffff" (parenthesized_expression "(pe_stack_commit._4_4_ & (uint)pe_stack_commit)" ( (binary_expression "pe_stack_commit._4_4_ & (uint)pe_stack_commit" (field_expression "pe_stack_commit._4_4_" identifier . field_identifier) & (cast_expression "(uint)pe_stack_commit" ( (type_descriptor "uint" type_identifier) ) identifier)) )) != number_literal) )) (compound_statement "{\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfStackCommit = (uint)pe_stack_commit;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4) = uVar48;\n      }" { (expression_statement "*(uint *)&(ppVar10->pe_opthdr).SizeOfStackCommit = (uint)pe_stack_commit;" (assignment_expression "*(uint *)&(ppVar10->pe_opthdr).SizeOfStackCommit = (uint)pe_stack_commit" (pointer_expression "*(uint *)&(ppVar10->pe_opthdr).SizeOfStackCommit" * (cast_expression "(uint *)&(ppVar10->pe_opthdr).SizeOfStackCommit" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(ppVar10->pe_opthdr).SizeOfStackCommit" & (field_expression "(ppVar10->pe_opthdr).SizeOfStackCommit" (parenthesized_expression "(ppVar10->pe_opthdr)" ( (field_expression "ppVar10->pe_opthdr" identifier -> field_identifier) )) . field_identifier)))) = (cast_expression "(uint)pe_stack_commit" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(uint *)((int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4) = uVar48;" (assignment_expression "*(uint *)((int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4) = uVar48" (pointer_expression "*(uint *)((int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4)" * (cast_expression "(uint *)((int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4)" ( (binary_expression "(int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4" (cast_expression "(int)&(ppVar10->pe_opthdr).SizeOfStackCommit" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(ppVar10->pe_opthdr).SizeOfStackCommit" & (field_expression "(ppVar10->pe_opthdr).SizeOfStackCommit" (parenthesized_expression "(ppVar10->pe_opthdr)" ( (field_expression "ppVar10->pe_opthdr" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) })) (expression_statement "uVar48 = pe_stack_reserve._4_4_;" (assignment_expression "uVar48 = pe_stack_reserve._4_4_" identifier = (field_expression "pe_stack_reserve._4_4_" identifier . field_identifier)) ;) (if_statement "if ((pe_stack_reserve._4_4_ & (uint)pe_stack_reserve) != 0xffffffff) {\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfStackCommit = (uint)pe_stack_reserve;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4) = uVar48;\n      }" if (parenthesized_expression "((pe_stack_reserve._4_4_ & (uint)pe_stack_reserve) != 0xffffffff)" ( (binary_expression "(pe_stack_reserve._4_4_ & (uint)pe_stack_reserve) != 0xffffffff" (parenthesized_expression "(pe_stack_reserve._4_4_ & (uint)pe_stack_reserve)" ( (binary_expression "pe_stack_reserve._4_4_ & (uint)pe_stack_reserve" (field_expression "pe_stack_reserve._4_4_" identifier . field_identifier) & (cast_expression "(uint)pe_stack_reserve" ( (type_descriptor "uint" type_identifier) ) identifier)) )) != number_literal) )) (compound_statement "{\n        *(uint *)&(ppVar10->pe_opthdr).SizeOfStackCommit = (uint)pe_stack_reserve;\n        *(uint *)((int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4) = uVar48;\n      }" { (expression_statement "*(uint *)&(ppVar10->pe_opthdr).SizeOfStackCommit = (uint)pe_stack_reserve;" (assignment_expression "*(uint *)&(ppVar10->pe_opthdr).SizeOfStackCommit = (uint)pe_stack_reserve" (pointer_expression "*(uint *)&(ppVar10->pe_opthdr).SizeOfStackCommit" * (cast_expression "(uint *)&(ppVar10->pe_opthdr).SizeOfStackCommit" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(ppVar10->pe_opthdr).SizeOfStackCommit" & (field_expression "(ppVar10->pe_opthdr).SizeOfStackCommit" (parenthesized_expression "(ppVar10->pe_opthdr)" ( (field_expression "ppVar10->pe_opthdr" identifier -> field_identifier) )) . field_identifier)))) = (cast_expression "(uint)pe_stack_reserve" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(uint *)((int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4) = uVar48;" (assignment_expression "*(uint *)((int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4) = uVar48" (pointer_expression "*(uint *)((int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4)" * (cast_expression "(uint *)((int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4)" ( (binary_expression "(int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4" (cast_expression "(int)&(ppVar10->pe_opthdr).SizeOfStackCommit" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(ppVar10->pe_opthdr).SizeOfStackCommit" & (field_expression "(ppVar10->pe_opthdr).SizeOfStackCommit" (parenthesized_expression "(ppVar10->pe_opthdr)" ( (field_expression "ppVar10->pe_opthdr" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) })) (if_statement "if (pe_subsystem != -1) {\n        (ppVar10->pe_opthdr).Subsystem = pe_subsystem;\n      }" if (parenthesized_expression "(pe_subsystem != -1)" ( (binary_expression "pe_subsystem != -1" identifier != number_literal) )) (compound_statement "{\n        (ppVar10->pe_opthdr).Subsystem = pe_subsystem;\n      }" { (expression_statement "(ppVar10->pe_opthdr).Subsystem = pe_subsystem;" (assignment_expression "(ppVar10->pe_opthdr).Subsystem = pe_subsystem" (field_expression "(ppVar10->pe_opthdr).Subsystem" (parenthesized_expression "(ppVar10->pe_opthdr)" ( (field_expression "ppVar10->pe_opthdr" identifier -> field_identifier) )) . field_identifier) = identifier) ;) })) (if_statement "if (pe_major_subsystem_version != -1) {\n        (ppVar10->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        (ppVar10->pe_opthdr).MajorSubsystemVersion = pe_major_subsystem_version;\n      }" { (expression_statement "(ppVar10->pe_opthdr).MajorSubsystemVersion = pe_major_subsystem_version;" (assignment_expression "(ppVar10->pe_opthdr).MajorSubsystemVersion = pe_major_subsystem_version" (field_expression "(ppVar10->pe_opthdr).MajorSubsystemVersion" (parenthesized_expression "(ppVar10->pe_opthdr)" ( (field_expression "ppVar10->pe_opthdr" identifier -> field_identifier) )) . field_identifier) = identifier) ;) })) (if_statement "if (pe_minor_subsystem_version != -1) {\n        (ppVar10->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        (ppVar10->pe_opthdr).MinorSubsystemVersion = pe_minor_subsystem_version;\n      }" { (expression_statement "(ppVar10->pe_opthdr).MinorSubsystemVersion = pe_minor_subsystem_version;" (assignment_expression "(ppVar10->pe_opthdr).MinorSubsystemVersion = pe_minor_subsystem_version" (field_expression "(ppVar10->pe_opthdr).MinorSubsystemVersion" (parenthesized_expression "(ppVar10->pe_opthdr)" ( (field_expression "ppVar10->pe_opthdr" identifier -> field_identifier) )) . field_identifier) = identifier) ;) })) (if_statement "if (uVar63 < pe_file_alignment._4_4_ ||\n          uVar63 - pe_file_alignment._4_4_ < (uint)(local_64 < (uint)pe_file_alignment)) {\n        sprintf(file_alignment,"%016llx",(uint)pe_file_alignment,pe_file_alignment._4_4_);\n        sprintf((char *)&contents,"%016llx",(uint)pe_section_alignment,pe_section_alignment._4_4_);\n        pcVar27 = (char *)dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5)\n        ;\n        non_fatal(pcVar27,file_alignment,&contents);\n      }" if (parenthesized_expression "(uVar63 < pe_file_alignment._4_4_ ||\n          uVar63 - pe_file_alignment._4_4_ < (uint)(local_64 < (uint)pe_file_alignment))" ( (binary_expression "uVar63 < pe_file_alignment._4_4_ ||\n          uVar63 - pe_file_alignment._4_4_ < (uint)(local_64 < (uint)pe_file_alignment)" (binary_expression "uVar63 < pe_file_alignment._4_4_" identifier < (field_expression "pe_file_alignment._4_4_" identifier . field_identifier)) || (binary_expression "uVar63 - pe_file_alignment._4_4_ < (uint)(local_64 < (uint)pe_file_alignment)" (binary_expression "uVar63 - pe_file_alignment._4_4_" identifier - (field_expression "pe_file_alignment._4_4_" identifier . field_identifier)) < (call_expression "(uint)(local_64 < (uint)pe_file_alignment)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_64 < (uint)pe_file_alignment)" ( (binary_expression "local_64 < (uint)pe_file_alignment" identifier < (cast_expression "(uint)pe_file_alignment" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) )) (compound_statement "{\n        sprintf(file_alignment,"%016llx",(uint)pe_file_alignment,pe_file_alignment._4_4_);\n        sprintf((char *)&contents,"%016llx",(uint)pe_section_alignment,pe_section_alignment._4_4_);\n        pcVar27 = (char *)dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5)\n        ;\n        non_fatal(pcVar27,file_alignment,&contents);\n      }" { (expression_statement "sprintf(file_alignment,"%016llx",(uint)pe_file_alignment,pe_file_alignment._4_4_);" (call_expression "sprintf(file_alignment,"%016llx",(uint)pe_file_alignment,pe_file_alignment._4_4_)" identifier (argument_list "(file_alignment,"%016llx",(uint)pe_file_alignment,pe_file_alignment._4_4_)" ( identifier , (string_literal ""%016llx"" " string_content ") , (cast_expression "(uint)pe_file_alignment" ( (type_descriptor "uint" type_identifier) ) identifier) , (field_expression "pe_file_alignment._4_4_" identifier . field_identifier) ))) ;) (expression_statement "sprintf((char *)&contents,"%016llx",(uint)pe_section_alignment,pe_section_alignment._4_4_);" (call_expression "sprintf((char *)&contents,"%016llx",(uint)pe_section_alignment,pe_section_alignment._4_4_)" identifier (argument_list "((char *)&contents,"%016llx",(uint)pe_section_alignment,pe_section_alignment._4_4_)" ( (cast_expression "(char *)&contents" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&contents" & identifier)) , (string_literal ""%016llx"" " string_content ") , (cast_expression "(uint)pe_section_alignment" ( (type_descriptor "uint" type_identifier) ) identifier) , (field_expression "pe_section_alignment._4_4_" identifier . field_identifier) ))) ;) (expression_statement "pcVar27 = (char *)dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5)\n        ;" (assignment_expression "pcVar27 = (char *)dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5)" identifier = (cast_expression "(char *)dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (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 "non_fatal(pcVar27,file_alignment,&contents);" (call_expression "non_fatal(pcVar27,file_alignment,&contents)" identifier (argument_list "(pcVar27,file_alignment,&contents)" ( identifier , identifier , (pointer_expression "&contents" & identifier) ))) ;) })) })) })) (expression_statement "ppaVar34 = isympp;" (assignment_expression "ppaVar34 = 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 (ppaVar34 != osympp) {\n    free(osympp);\n  }" if (parenthesized_expression "(ppaVar34 != osympp)" ( (binary_expression "ppaVar34 != 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 "lVar28 = (*ibfd->xvec->_bfd_get_symtab_upper_bound)(ibfd);" (assignment_expression "lVar28 = (*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 (lVar28 < 0) goto LAB_00018b70;" if (parenthesized_expression "(lVar28 < 0)" ( (binary_expression "lVar28 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00018b70;" goto statement_identifier ;)) (expression_statement "osympp = (asymbol **)xmalloc(lVar28);" (assignment_expression "osympp = (asymbol **)xmalloc(lVar28)" identifier = (cast_expression "(asymbol **)xmalloc(lVar28)" ( (type_descriptor "asymbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "xmalloc(lVar28)" identifier (argument_list "(lVar28)" ( identifier ))))) ;) (expression_statement "isympp = osympp;" (assignment_expression "isympp = osympp" identifier = identifier) ;) (expression_statement "local_8c = (*ibfd->xvec->_bfd_canonicalize_symtab)(ibfd,osympp);" (assignment_expression "local_8c = (*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 (local_8c < 0) goto LAB_00018b70;" if (parenthesized_expression "(local_8c < 0)" ( (binary_expression "local_8c < 0" identifier < number_literal) )) (goto_statement "goto LAB_00018b70;" goto statement_identifier ;)) (if_statement "if (local_8c == 0) {\n    free(isympp);\n    isympp = (asymbol **)0x0;\n    osympp = (asymbol **)0x0;\n  }" if (parenthesized_expression "(local_8c == 0)" ( (binary_expression "local_8c == 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 "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 "psVar57 = add_sections;" (assignment_expression "psVar57 = add_sections" identifier = identifier) ;) (if_statement "if ((extract_symbol == 0) &&\n     (bVar25 = (*obfd->xvec->_bfd_copy_private_header_data)(ibfd,obfd), psVar57 = add_sections,\n     bVar25 == 0)) {\n    status = 1;\n    pcVar27 = (char *)dcgettext(0,"error in private header data",5);\n    bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar27);\n    psVar57 = add_sections;\n  }" if (parenthesized_expression "((extract_symbol == 0) &&\n     (bVar25 = (*obfd->xvec->_bfd_copy_private_header_data)(ibfd,obfd), psVar57 = add_sections,\n     bVar25 == 0))" ( (binary_expression "(extract_symbol == 0) &&\n     (bVar25 = (*obfd->xvec->_bfd_copy_private_header_data)(ibfd,obfd), psVar57 = add_sections,\n     bVar25 == 0)" (parenthesized_expression "(extract_symbol == 0)" ( (binary_expression "extract_symbol == 0" identifier == number_literal) )) && (parenthesized_expression "(bVar25 = (*obfd->xvec->_bfd_copy_private_header_data)(ibfd,obfd), psVar57 = add_sections,\n     bVar25 == 0)" ( (comma_expression "bVar25 = (*obfd->xvec->_bfd_copy_private_header_data)(ibfd,obfd), psVar57 = add_sections,\n     bVar25 == 0" (assignment_expression "bVar25 = (*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 "psVar57 = add_sections,\n     bVar25 == 0" (assignment_expression "psVar57 = add_sections" identifier = identifier) , (binary_expression "bVar25 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n    status = 1;\n    pcVar27 = (char *)dcgettext(0,"error in private header data",5);\n    bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar27);\n    psVar57 = add_sections;\n  }" { (expression_statement "status = 1;" (assignment_expression "status = 1" identifier = number_literal) ;) (expression_statement "pcVar27 = (char *)dcgettext(0,"error in private header data",5);" (assignment_expression "pcVar27 = (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 "bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar27);" (call_expression "bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar27)" identifier (argument_list "((char *)0x0,ibfd,(asection *)0x0,pcVar27)" ( (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 "psVar57 = add_sections;" (assignment_expression "psVar57 = add_sections" identifier = identifier) ;) })) (for_statement "for (; psVar17 = update_sections, psVar57 != (section_add *)0x0; psVar57 = psVar57->next) {\n    uVar63 = 0x128;\n    psVar29 = find_section_list(psVar57->name,0,0x40);\n    if (psVar29 != (section_list *)0x0) {\n      uVar63 = psVar29->flags | 0x100;\n    }\n    iVar22 = bfd_get_section_by_name(obfd,psVar57->name);\n    if (iVar22 != 0) {\n      pcVar26 = psVar57->name;\n      pcVar27 = "can\'t add section \'%s\'";\nLAB_00019591:\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27,pcVar26);\n      return 0;\n    }\n    paVar30 = (asection *)bfd_make_section_with_flags(obfd,psVar57->name,uVar63 | 0x100000);\n    psVar57->section = paVar30;\n    if (paVar30 == (asection *)0x0) {\n      pcVar26 = psVar57->name;\n      pcVar27 = "can\'t create section `%s\'";\n      goto LAB_00019591;\n    }\n    iVar22 = bfd_set_section_size(obfd,paVar30,psVar57->size,0);\n    if (iVar22 == 0) goto LAB_00019d5e;\n    psVar29 = find_section_list(psVar57->name,0,0xc);\n    if (psVar29 != (section_list *)0x0) {\n      paVar30 = psVar57->section;\n      uVar32 = *(undefined4 *)((int)&psVar29->vma_val + 4);\n      uVar33 = (undefined4)psVar29->vma_val;\n      paVar30->field_0x18 = paVar30->field_0x18 | 1;\n      *(undefined4 *)&paVar30->lma = uVar33;\n      *(undefined4 *)((int)&paVar30->lma + 4) = uVar32;\n      *(undefined4 *)&paVar30->vma = uVar33;\n      *(undefined4 *)((int)&paVar30->vma + 4) = uVar32;\n    }\n    psVar29 = find_section_list(psVar57->name,0,0x30);\n    if (psVar29 != (section_list *)0x0) {\n      paVar30 = psVar57->section;\n      bVar72 = psVar29->lma_val;\n      *(undefined4 *)((int)&paVar30->lma + 4) = *(undefined4 *)((int)&psVar29->lma_val + 4);\n      *(int *)&paVar30->lma = (int)bVar72;\n    }\n  }" for ( ; (comma_expression "psVar17 = update_sections, psVar57 != (section_add *)0x0" (assignment_expression "psVar17 = update_sections" identifier = identifier) , (binary_expression "psVar57 != (section_add *)0x0" identifier != (cast_expression "(section_add *)0x0" ( (type_descriptor "section_add *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "psVar57 = psVar57->next" identifier = (field_expression "psVar57->next" identifier -> field_identifier)) ) (compound_statement "{\n    uVar63 = 0x128;\n    psVar29 = find_section_list(psVar57->name,0,0x40);\n    if (psVar29 != (section_list *)0x0) {\n      uVar63 = psVar29->flags | 0x100;\n    }\n    iVar22 = bfd_get_section_by_name(obfd,psVar57->name);\n    if (iVar22 != 0) {\n      pcVar26 = psVar57->name;\n      pcVar27 = "can\'t add section \'%s\'";\nLAB_00019591:\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27,pcVar26);\n      return 0;\n    }\n    paVar30 = (asection *)bfd_make_section_with_flags(obfd,psVar57->name,uVar63 | 0x100000);\n    psVar57->section = paVar30;\n    if (paVar30 == (asection *)0x0) {\n      pcVar26 = psVar57->name;\n      pcVar27 = "can\'t create section `%s\'";\n      goto LAB_00019591;\n    }\n    iVar22 = bfd_set_section_size(obfd,paVar30,psVar57->size,0);\n    if (iVar22 == 0) goto LAB_00019d5e;\n    psVar29 = find_section_list(psVar57->name,0,0xc);\n    if (psVar29 != (section_list *)0x0) {\n      paVar30 = psVar57->section;\n      uVar32 = *(undefined4 *)((int)&psVar29->vma_val + 4);\n      uVar33 = (undefined4)psVar29->vma_val;\n      paVar30->field_0x18 = paVar30->field_0x18 | 1;\n      *(undefined4 *)&paVar30->lma = uVar33;\n      *(undefined4 *)((int)&paVar30->lma + 4) = uVar32;\n      *(undefined4 *)&paVar30->vma = uVar33;\n      *(undefined4 *)((int)&paVar30->vma + 4) = uVar32;\n    }\n    psVar29 = find_section_list(psVar57->name,0,0x30);\n    if (psVar29 != (section_list *)0x0) {\n      paVar30 = psVar57->section;\n      bVar72 = psVar29->lma_val;\n      *(undefined4 *)((int)&paVar30->lma + 4) = *(undefined4 *)((int)&psVar29->lma_val + 4);\n      *(int *)&paVar30->lma = (int)bVar72;\n    }\n  }" { (expression_statement "uVar63 = 0x128;" (assignment_expression "uVar63 = 0x128" identifier = number_literal) ;) (expression_statement "psVar29 = find_section_list(psVar57->name,0,0x40);" (assignment_expression "psVar29 = find_section_list(psVar57->name,0,0x40)" identifier = (call_expression "find_section_list(psVar57->name,0,0x40)" identifier (argument_list "(psVar57->name,0,0x40)" ( (field_expression "psVar57->name" identifier -> field_identifier) , number_literal , number_literal )))) ;) (if_statement "if (psVar29 != (section_list *)0x0) {\n      uVar63 = psVar29->flags | 0x100;\n    }" if (parenthesized_expression "(psVar29 != (section_list *)0x0)" ( (binary_expression "psVar29 != (section_list *)0x0" identifier != (cast_expression "(section_list *)0x0" ( (type_descriptor "section_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar63 = psVar29->flags | 0x100;\n    }" { (expression_statement "uVar63 = psVar29->flags | 0x100;" (assignment_expression "uVar63 = psVar29->flags | 0x100" identifier = (binary_expression "psVar29->flags | 0x100" (field_expression "psVar29->flags" identifier -> field_identifier) | number_literal)) ;) })) (expression_statement "iVar22 = bfd_get_section_by_name(obfd,psVar57->name);" (assignment_expression "iVar22 = bfd_get_section_by_name(obfd,psVar57->name)" identifier = (call_expression "bfd_get_section_by_name(obfd,psVar57->name)" identifier (argument_list "(obfd,psVar57->name)" ( identifier , (field_expression "psVar57->name" identifier -> field_identifier) )))) ;) (if_statement "if (iVar22 != 0) {\n      pcVar26 = psVar57->name;\n      pcVar27 = "can\'t add section \'%s\'";\nLAB_00019591:\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27,pcVar26);\n      return 0;\n    }" if (parenthesized_expression "(iVar22 != 0)" ( (binary_expression "iVar22 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar26 = psVar57->name;\n      pcVar27 = "can\'t add section \'%s\'";\nLAB_00019591:\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27,pcVar26);\n      return 0;\n    }" { (expression_statement "pcVar26 = psVar57->name;" (assignment_expression "pcVar26 = psVar57->name" identifier = (field_expression "psVar57->name" identifier -> field_identifier)) ;) (expression_statement "pcVar27 = "can\'t add section \'%s\'";" (assignment_expression "pcVar27 = "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 ")) ;) (labeled_statement "LAB_00019591:\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);" statement_identifier : (expression_statement "pcVar27 = (char *)dcgettext(0,pcVar27,5);" (assignment_expression "pcVar27 = (char *)dcgettext(0,pcVar27,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar27,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar27,5)" identifier (argument_list "(0,pcVar27,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27,pcVar26);" (call_expression "bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27,pcVar26)" identifier (argument_list "((char *)0x0,obfd,(asection *)0x0,pcVar27,pcVar26)" ( (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 ;) })) (expression_statement "paVar30 = (asection *)bfd_make_section_with_flags(obfd,psVar57->name,uVar63 | 0x100000);" (assignment_expression "paVar30 = (asection *)bfd_make_section_with_flags(obfd,psVar57->name,uVar63 | 0x100000)" identifier = (cast_expression "(asection *)bfd_make_section_with_flags(obfd,psVar57->name,uVar63 | 0x100000)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_make_section_with_flags(obfd,psVar57->name,uVar63 | 0x100000)" identifier (argument_list "(obfd,psVar57->name,uVar63 | 0x100000)" ( identifier , (field_expression "psVar57->name" identifier -> field_identifier) , (binary_expression "uVar63 | 0x100000" identifier | number_literal) ))))) ;) (expression_statement "psVar57->section = paVar30;" (assignment_expression "psVar57->section = paVar30" (field_expression "psVar57->section" identifier -> field_identifier) = identifier) ;) (if_statement "if (paVar30 == (asection *)0x0) {\n      pcVar26 = psVar57->name;\n      pcVar27 = "can\'t create section `%s\'";\n      goto LAB_00019591;\n    }" if (parenthesized_expression "(paVar30 == (asection *)0x0)" ( (binary_expression "paVar30 == (asection *)0x0" identifier == (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar26 = psVar57->name;\n      pcVar27 = "can\'t create section `%s\'";\n      goto LAB_00019591;\n    }" { (expression_statement "pcVar26 = psVar57->name;" (assignment_expression "pcVar26 = psVar57->name" identifier = (field_expression "psVar57->name" identifier -> field_identifier)) ;) (expression_statement "pcVar27 = "can\'t create section `%s\'";" (assignment_expression "pcVar27 = "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_00019591;" goto statement_identifier ;) })) (expression_statement "iVar22 = bfd_set_section_size(obfd,paVar30,psVar57->size,0);" (assignment_expression "iVar22 = bfd_set_section_size(obfd,paVar30,psVar57->size,0)" identifier = (call_expression "bfd_set_section_size(obfd,paVar30,psVar57->size,0)" identifier (argument_list "(obfd,paVar30,psVar57->size,0)" ( identifier , identifier , (field_expression "psVar57->size" identifier -> field_identifier) , number_literal )))) ;) (if_statement "if (iVar22 == 0) goto LAB_00019d5e;" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019d5e;" goto statement_identifier ;)) (expression_statement "psVar29 = find_section_list(psVar57->name,0,0xc);" (assignment_expression "psVar29 = find_section_list(psVar57->name,0,0xc)" identifier = (call_expression "find_section_list(psVar57->name,0,0xc)" identifier (argument_list "(psVar57->name,0,0xc)" ( (field_expression "psVar57->name" identifier -> field_identifier) , number_literal , number_literal )))) ;) (if_statement "if (psVar29 != (section_list *)0x0) {\n      paVar30 = psVar57->section;\n      uVar32 = *(undefined4 *)((int)&psVar29->vma_val + 4);\n      uVar33 = (undefined4)psVar29->vma_val;\n      paVar30->field_0x18 = paVar30->field_0x18 | 1;\n      *(undefined4 *)&paVar30->lma = uVar33;\n      *(undefined4 *)((int)&paVar30->lma + 4) = uVar32;\n      *(undefined4 *)&paVar30->vma = uVar33;\n      *(undefined4 *)((int)&paVar30->vma + 4) = uVar32;\n    }" if (parenthesized_expression "(psVar29 != (section_list *)0x0)" ( (binary_expression "psVar29 != (section_list *)0x0" identifier != (cast_expression "(section_list *)0x0" ( (type_descriptor "section_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      paVar30 = psVar57->section;\n      uVar32 = *(undefined4 *)((int)&psVar29->vma_val + 4);\n      uVar33 = (undefined4)psVar29->vma_val;\n      paVar30->field_0x18 = paVar30->field_0x18 | 1;\n      *(undefined4 *)&paVar30->lma = uVar33;\n      *(undefined4 *)((int)&paVar30->lma + 4) = uVar32;\n      *(undefined4 *)&paVar30->vma = uVar33;\n      *(undefined4 *)((int)&paVar30->vma + 4) = uVar32;\n    }" { (expression_statement "paVar30 = psVar57->section;" (assignment_expression "paVar30 = psVar57->section" identifier = (field_expression "psVar57->section" identifier -> field_identifier)) ;) (expression_statement "uVar32 = *(undefined4 *)((int)&psVar29->vma_val + 4);" (assignment_expression "uVar32 = *(undefined4 *)((int)&psVar29->vma_val + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&psVar29->vma_val + 4)" * (cast_expression "(undefined4 *)((int)&psVar29->vma_val + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar29->vma_val + 4)" ( (binary_expression "(int)&psVar29->vma_val + 4" (cast_expression "(int)&psVar29->vma_val" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar29->vma_val" & (field_expression "psVar29->vma_val" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar33 = (undefined4)psVar29->vma_val;" (assignment_expression "uVar33 = (undefined4)psVar29->vma_val" identifier = (cast_expression "(undefined4)psVar29->vma_val" ( (type_descriptor "undefined4" type_identifier) ) (field_expression "psVar29->vma_val" identifier -> field_identifier))) ;) (expression_statement "paVar30->field_0x18 = paVar30->field_0x18 | 1;" (assignment_expression "paVar30->field_0x18 = paVar30->field_0x18 | 1" (field_expression "paVar30->field_0x18" identifier -> field_identifier) = (binary_expression "paVar30->field_0x18 | 1" (field_expression "paVar30->field_0x18" identifier -> field_identifier) | number_literal)) ;) (expression_statement "*(undefined4 *)&paVar30->lma = uVar33;" (assignment_expression "*(undefined4 *)&paVar30->lma = uVar33" (pointer_expression "*(undefined4 *)&paVar30->lma" * (cast_expression "(undefined4 *)&paVar30->lma" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar30->lma" & (field_expression "paVar30->lma" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(undefined4 *)((int)&paVar30->lma + 4) = uVar32;" (assignment_expression "*(undefined4 *)((int)&paVar30->lma + 4) = uVar32" (pointer_expression "*(undefined4 *)((int)&paVar30->lma + 4)" * (cast_expression "(undefined4 *)((int)&paVar30->lma + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar30->lma + 4)" ( (binary_expression "(int)&paVar30->lma + 4" (cast_expression "(int)&paVar30->lma" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar30->lma" & (field_expression "paVar30->lma" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)&paVar30->vma = uVar33;" (assignment_expression "*(undefined4 *)&paVar30->vma = uVar33" (pointer_expression "*(undefined4 *)&paVar30->vma" * (cast_expression "(undefined4 *)&paVar30->vma" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar30->vma" & (field_expression "paVar30->vma" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(undefined4 *)((int)&paVar30->vma + 4) = uVar32;" (assignment_expression "*(undefined4 *)((int)&paVar30->vma + 4) = uVar32" (pointer_expression "*(undefined4 *)((int)&paVar30->vma + 4)" * (cast_expression "(undefined4 *)((int)&paVar30->vma + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar30->vma + 4)" ( (binary_expression "(int)&paVar30->vma + 4" (cast_expression "(int)&paVar30->vma" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar30->vma" & (field_expression "paVar30->vma" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) })) (expression_statement "psVar29 = find_section_list(psVar57->name,0,0x30);" (assignment_expression "psVar29 = find_section_list(psVar57->name,0,0x30)" identifier = (call_expression "find_section_list(psVar57->name,0,0x30)" identifier (argument_list "(psVar57->name,0,0x30)" ( (field_expression "psVar57->name" identifier -> field_identifier) , number_literal , number_literal )))) ;) (if_statement "if (psVar29 != (section_list *)0x0) {\n      paVar30 = psVar57->section;\n      bVar72 = psVar29->lma_val;\n      *(undefined4 *)((int)&paVar30->lma + 4) = *(undefined4 *)((int)&psVar29->lma_val + 4);\n      *(int *)&paVar30->lma = (int)bVar72;\n    }" if (parenthesized_expression "(psVar29 != (section_list *)0x0)" ( (binary_expression "psVar29 != (section_list *)0x0" identifier != (cast_expression "(section_list *)0x0" ( (type_descriptor "section_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      paVar30 = psVar57->section;\n      bVar72 = psVar29->lma_val;\n      *(undefined4 *)((int)&paVar30->lma + 4) = *(undefined4 *)((int)&psVar29->lma_val + 4);\n      *(int *)&paVar30->lma = (int)bVar72;\n    }" { (expression_statement "paVar30 = psVar57->section;" (assignment_expression "paVar30 = psVar57->section" identifier = (field_expression "psVar57->section" identifier -> field_identifier)) ;) (expression_statement "bVar72 = psVar29->lma_val;" (assignment_expression "bVar72 = psVar29->lma_val" identifier = (field_expression "psVar29->lma_val" identifier -> field_identifier)) ;) (expression_statement "*(undefined4 *)((int)&paVar30->lma + 4) = *(undefined4 *)((int)&psVar29->lma_val + 4);" (assignment_expression "*(undefined4 *)((int)&paVar30->lma + 4) = *(undefined4 *)((int)&psVar29->lma_val + 4)" (pointer_expression "*(undefined4 *)((int)&paVar30->lma + 4)" * (cast_expression "(undefined4 *)((int)&paVar30->lma + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar30->lma + 4)" ( (binary_expression "(int)&paVar30->lma + 4" (cast_expression "(int)&paVar30->lma" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar30->lma" & (field_expression "paVar30->lma" identifier -> field_identifier))) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)&psVar29->lma_val + 4)" * (cast_expression "(undefined4 *)((int)&psVar29->lma_val + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar29->lma_val + 4)" ( (binary_expression "(int)&psVar29->lma_val + 4" (cast_expression "(int)&psVar29->lma_val" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar29->lma_val" & (field_expression "psVar29->lma_val" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "*(int *)&paVar30->lma = (int)bVar72;" (assignment_expression "*(int *)&paVar30->lma = (int)bVar72" (pointer_expression "*(int *)&paVar30->lma" * (cast_expression "(int *)&paVar30->lma" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar30->lma" & (field_expression "paVar30->lma" identifier -> field_identifier)))) = (cast_expression "(int)bVar72" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) })) (for_statement "for (; local_6c = (bfd_section *)obfd, psVar17 != (section_add *)0x0; psVar17 = psVar17->next) {\n    paVar30 = (asection *)bfd_get_section_by_name(ibfd,psVar17->name);\n    psVar17->section = paVar30;\n    if (paVar30 == (asection *)0x0) {\n      pcVar26 = psVar17->name;\n      pcVar27 = "error: %s not found, can\'t be updated";\n      goto LAB_00018f38;\n    }\n    pbVar35 = paVar30->output_section;\n    bVar25 = bfd_set_section_size(obfd,pbVar35,psVar17->size,0);\n    if (bVar25 == 0) goto LAB_00019fa0;\n  }" for ( ; (comma_expression "local_6c = (bfd_section *)obfd, psVar17 != (section_add *)0x0" (assignment_expression "local_6c = (bfd_section *)obfd" identifier = (cast_expression "(bfd_section *)obfd" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "psVar17 != (section_add *)0x0" identifier != (cast_expression "(section_add *)0x0" ( (type_descriptor "section_add *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "psVar17 = psVar17->next" identifier = (field_expression "psVar17->next" identifier -> field_identifier)) ) (compound_statement "{\n    paVar30 = (asection *)bfd_get_section_by_name(ibfd,psVar17->name);\n    psVar17->section = paVar30;\n    if (paVar30 == (asection *)0x0) {\n      pcVar26 = psVar17->name;\n      pcVar27 = "error: %s not found, can\'t be updated";\n      goto LAB_00018f38;\n    }\n    pbVar35 = paVar30->output_section;\n    bVar25 = bfd_set_section_size(obfd,pbVar35,psVar17->size,0);\n    if (bVar25 == 0) goto LAB_00019fa0;\n  }" { (expression_statement "paVar30 = (asection *)bfd_get_section_by_name(ibfd,psVar17->name);" (assignment_expression "paVar30 = (asection *)bfd_get_section_by_name(ibfd,psVar17->name)" identifier = (cast_expression "(asection *)bfd_get_section_by_name(ibfd,psVar17->name)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_get_section_by_name(ibfd,psVar17->name)" identifier (argument_list "(ibfd,psVar17->name)" ( identifier , (field_expression "psVar17->name" identifier -> field_identifier) ))))) ;) (expression_statement "psVar17->section = paVar30;" (assignment_expression "psVar17->section = paVar30" (field_expression "psVar17->section" identifier -> field_identifier) = identifier) ;) (if_statement "if (paVar30 == (asection *)0x0) {\n      pcVar26 = psVar17->name;\n      pcVar27 = "error: %s not found, can\'t be updated";\n      goto LAB_00018f38;\n    }" if (parenthesized_expression "(paVar30 == (asection *)0x0)" ( (binary_expression "paVar30 == (asection *)0x0" identifier == (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar26 = psVar17->name;\n      pcVar27 = "error: %s not found, can\'t be updated";\n      goto LAB_00018f38;\n    }" { (expression_statement "pcVar26 = psVar17->name;" (assignment_expression "pcVar26 = psVar17->name" identifier = (field_expression "psVar17->name" identifier -> field_identifier)) ;) (expression_statement "pcVar27 = "error: %s not found, can\'t be updated";" (assignment_expression "pcVar27 = "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_00018f38;" goto statement_identifier ;) })) (expression_statement "pbVar35 = paVar30->output_section;" (assignment_expression "pbVar35 = paVar30->output_section" identifier = (field_expression "paVar30->output_section" identifier -> field_identifier)) ;) (expression_statement "bVar25 = bfd_set_section_size(obfd,pbVar35,psVar17->size,0);" (assignment_expression "bVar25 = bfd_set_section_size(obfd,pbVar35,psVar17->size,0)" identifier = (call_expression "bfd_set_section_size(obfd,pbVar35,psVar17->size,0)" identifier (argument_list "(obfd,pbVar35,psVar17->size,0)" ( identifier , identifier , (field_expression "psVar17->size" identifier -> field_identifier) , number_literal )))) ;) (if_statement "if (bVar25 == 0) goto LAB_00019fa0;" if (parenthesized_expression "(bVar25 == 0)" ( (binary_expression "bVar25 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019fa0;" goto statement_identifier ;)) })) (if_statement "if ((((merge_notes != 0) &&\n       (paVar30 = (asection *)bfd_get_section_by_name(ibfd,".gnu.build.attributes"),\n       paVar30 != (asection *)0x0)) && (merge_notes != 0)) &&\n     ((ibfd->xvec->flavour == bfd_target_elf_flavour &&\n      (bVar25 = is_merged_note_section((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1),\n      bVar25 != 0)))) {\n    paVar53 = *(asection **)((int)&paVar30->size + 4);\n    pcVar27 = *(char **)&paVar30->size;\n    if (paVar53 == (asection *)0x0 && pcVar27 == (char *)0x0) {\n      pcVar27 = (char *)dcgettext(0,"warning: note section is empty",5,pcVar27);\n      bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n      merge_notes = 0;\n    }\n    else {\n      iVar22 = bfd_get_full_section_contents(ibfd,paVar30,&merged_notes,pcVar27);\n      pbVar39 = merged_notes;\n      if (iVar22 == 0) {\n        pcVar27 = (char *)dcgettext(0,"warning: could not load note section",5,0);\n        bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n        free(merged_notes);\n        merged_notes = (bfd_byte *)0x0;\n        merge_notes = 0;\n      }\n      else {\n        iVar22 = bfd_get_reloc_upper_bound(ibfd,paVar30,paVar30,paVar30);\n        pcVar26 = extraout_ECX_01;\n        pbVar46 = ibfd;\n        if (0 < iVar22) {\n          pbVar46 = (bfd *)xmalloc(iVar22);\n          iVar22 = bfd_canonicalize_reloc(ibfd,paVar30,pbVar46,isympp);\n          free(pbVar46);\n          pcVar26 = extraout_ECX_02;\n          if (iVar22 == 0) goto LAB_0001ab09;\n          local_74 = (asection *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar75 = (void *)0x30;\n        pcVar45 = pcVar26;\n        uVar32 = __udivdi3(pcVar27,paVar53,0xc,0,pbVar46,0x30,pcVar26,pcVar26);\n        local_74 = (asection *)xcalloc(uVar32);\n        local_bc = 0;\n        local_c4 = (char *)0x0;\n        local_b8 = (asection *)0x0;\n        local_c0 = (void *)0x0;\n        local_84 = (asymbol **)0x0;\n        local_a8 = (asection *)0x0;\n        local_a4 = 0;\n        pbVar56 = pbVar39;\n        paVar68 = local_74;\n        local_7c = pcVar27;\n        local_78 = paVar53;\n        while (local_78 != (asection *)0x0 || (uint)-(int)local_78 < (uint)((char *)0xb < local_7c))\n        {\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56);\n          pcVar47 = (char *)((int)bVar72 + 3U & 0xfffffffc);\n          paVar68->name = pcVar47;\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56 + 4);\n          uVar63 = (int)bVar72 + 3U & 0xfffffffc;\n          paVar68->id = uVar63;\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56 + 8);\n          uVar48 = (uint)bVar72;\n          paVar68->index = uVar48;\n          if (1 < uVar48 - 0x100) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                                        (int)(bVar72 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          pcVar31 = pcVar47 + uVar63 + 0xc;\n          iVar22 = (int)local_78 - (int)(uint)(local_7c < pcVar31);\n          if (local_78 < (asection *)(uint)(local_7c < pcVar31)) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar22)\n            ;\n            goto LAB_0001ae12;\n          }\n          if (pcVar47 < (char *)0x2) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: name too small",5,\n                                        iVar22);\n            goto LAB_0001ae12;\n          }\n          paVar68->next = (bfd_section *)(pbVar56 + 0xc);\n          pbVar35 = (bfd_section *)(pbVar56 + (int)(pcVar47 + 0xc));\n          bVar69 = local_7c < pcVar31;\n          local_7c = local_7c + -(int)pcVar31;\n          local_78 = (asection *)((int)local_78 - (uint)bVar69);\n          paVar68->prev = pbVar35;\n          bVar6 = pbVar56[0xc];\n          uVar60 = (uint)bVar6;\n          if (bVar6 == 0x24) {\n            if ((pbVar56[0xd] == '\x01') && (pbVar56[0xe] == '1')) {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if (((((char *)0x4 < pcVar47) && (bVar6 == 0x47)) && (pbVar56[0xd] == 'A')) &&\n                  ((pbVar56[0xe] == '$' && (pbVar56[0xf] == '\x01')))) {\n            bVar6 = pbVar56[0x10];\n            uVar60 = (uint)bVar6;\n            if (bVar6 == 0x32) {\n              local_a8 = (asection *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar6 != 0x33) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "corrupt GNU build attribute note: unsupported version",\n                                            5,uVar60);\n                goto LAB_0001ae12;\n              }\n              local_84 = (asymbol **)((int)local_84 + 1);\n            }\n          }\n          if (uVar63 == 4) {\n            bVar73 = (*ibfd->xvec->bfd_getx32)(pbVar35);\nLAB_0001ade8:\n            bVar74 = 0xffffffffffffffff;\n          }\n          else if (uVar63 < 5) {\n            if (uVar63 != 0) {\nLAB_0001ae8d:\n              pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: bad description size"\n                                          ,5,uVar60);\n              goto LAB_0001ae12;\n            }\n            bVar74 = 0;\n            bVar73 = 0;\n          }\n          else if (uVar63 == 8) {\n            pbVar13 = ibfd->xvec;\n            if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n              bVar73 = (*pbVar13->bfd_getx64)(pbVar35);\n              goto LAB_0001ade8;\n            }\n            bVar73 = (*pbVar13->bfd_getx32)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx32)(&pbVar35->id);\n          }\n          else {\n            uVar60 = uVar63;\n            if (uVar63 != 0x10) goto LAB_0001ae8d;\n            bVar73 = (*ibfd->xvec->bfd_getx64)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx64)(&pbVar35->index);\n          }\n          if (uVar48 == 0x100) {\n            paVar51 = (asection *)(int)bVar73;\n            if (bVar73 == 0) {\n              paVar51 = local_b8;\n            }\n            uVar63 = (int)bVar74;\n            if (bVar74 == 0) {\n              uVar63 = local_bc;\n            }\n            *(undefined4 *)((int)&paVar68->vma + 4) = 0;\n            *(asection **)&paVar68->vma = paVar51;\n            *(uint *)&paVar68->lma = uVar63;\n            *(undefined4 *)((int)&paVar68->lma + 4) = 0;\n            local_bc = uVar63;\n            local_b8 = paVar51;\n          }\n          else {\n            pvVar49 = (void *)(int)bVar73;\n            if (bVar73 == 0) {\n              pvVar49 = local_c0;\n            }\n            pcVar47 = (char *)(int)bVar74;\n            if (bVar74 == 0) {\n              pcVar47 = local_c4;\n            }\n            *(undefined4 *)((int)&paVar68->vma + 4) = 0;\n            *(void **)&paVar68->vma = pvVar49;\n            *(char **)&paVar68->lma = pcVar47;\n            *(undefined4 *)((int)&paVar68->lma + 4) = 0;\n            local_c4 = pcVar47;\n            local_c0 = pvVar49;\n          }\n          if (*(char *)((int)&paVar68->next->name + (int)(paVar68->name + -1)) != '\0') {\n            pcVar27 = (char *)dcgettext(0,\n                                        "corrupt GNU build attribute note: name not NUL terminated",\n                                        5,paVar68->name);\n            goto LAB_0001ae12;\n          }\n          paVar68 = (asection *)((int)&paVar68->size + 4);\n          pbVar56 = pbVar56 + (int)pcVar31;\n        }\n        if (local_78 == (asection *)0x0 && local_7c == (char *)0x0) {\n          if (local_a4 == 0 && (local_a8 == (asection *)0x0 && local_84 == (asymbol **)0x0)) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: no known versions detected",\n                                        5,-(int)local_78 - (uint)((char *)0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (asection *)0x0 || local_84 != (asymbol **)0x0)) ||\n             ((local_a8 != (asection *)0x0 && (local_84 != (asymbol **)0x0)))) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: multiple different versions"\n                                        ,5,paVar68);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (asection *)0x1) || (local_84 == (asymbol **)0x1))\n          goto LAB_0001ae41;\n          uVar63 = -(uint)(local_a4 == 0) & 2;\n          iVar22 = uVar63 + 1;\n          if (*(char *)((int)&local_74->next->name + iVar22) != '\x01') {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: first note not version note"\n                                        ,5,iVar22);\n            goto LAB_0001ae12;\n          }\n          bVar69 = false;\n          iVar52 = uVar63 + 2;\n          pbVar35 = local_74;\nLAB_0001afd1:\n          paVar51 = pbVar35;\n          local_6c = (bfd_section *)((int)&paVar51->size + 4);\n          pbVar35 = local_6c;\n          if (local_6c < paVar68) {\n            if (*(int *)((int)&paVar51->rawsize + 4) == 0x100) {\n              local_a8 = (asection *)0x0;\n              pvVar49 = *(void **)&paVar51->compressed_size;\n              local_6c = paVar51;\n              while (pbVar50 = local_6c, local_74 <= local_6c) {\n                pbVar14 = local_6c->next;\n                cVar7 = *(char *)((int)&pbVar14->name + iVar22);\n                paVar21 = local_a8;\n                if ((((local_a8 != (asection *)0x0) || (local_6c->id == 0)) ||\n                    (paVar21 = local_6c, local_6c->index != 0x101)) &&\n                   ((local_a8 = paVar21, *(char *)((int)pvVar49 + iVar22) == cVar7 &&\n                    (local_6c->index == 0x100)))) {\n                  pcVar47 = pbVar35->name;\n                  if (cVar7 != '\x04') {\n                    pcVar31 = local_6c->name;\n                    if ((pcVar31 == pcVar47) &&\n                       (iVar43 = memcmp(pbVar14,pvVar49,(size_t)pcVar31), pvVar75 = pvVar49,\n                       pcVar26 = pcVar31, pcVar45 = pcVar47, iVar43 == 0)) {\n                      uVar63 = *(uint *)((int)&local_6c->lma + 4);\n                      pbVar50 = *(bfd_section **)&local_6c->lma;\n                      if (uVar63 != 0 || pbVar50 != (bfd_section *)0x0) {\n                        pbVar14 = paVar51->output_section;\n                        uVar48 = paVar51->alignment_power;\n                        if ((uVar48 != 0 || pbVar14 != (bfd_section *)0x0) &&\n                           ((-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)))) {\n                          *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;\n                          if (uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)) {\n                            *(bfd_section **)&local_6c->lma = pbVar14;\n                            *(uint *)((int)&local_6c->lma + 4) = uVar48;\n                          }\n                          bVar69 = true;\n                          if (local_84 != (asymbol **)0x0) {\n                            *(undefined4 *)&local_6c->size = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (asymbol **)0x0) {\n                      if ((((int)paVar51->rawsize == 0) && (local_a8 != (asection *)0x0)) &&\n                         (local_a8->index == 0)) {\n                        local_a8->index = 0x100;\n                      }\n                    }\n                    else {\n                      paVar51->relocation = (reloc_cache_entry *)0x1;\n                      *(undefined4 *)((int)&paVar51->rawsize + 4) = 0x101;\n                      *(undefined4 *)&local_6c->size = 1;\n                      local_6c->index = 0x101;\n                    }\n                    break;\n                  }\n                  uVar63 = 0;\n                  for (iVar43 = 0; (int)pcVar47 - iVar52 != iVar43; iVar43 = iVar43 + 1) {\n                    uVar63 = uVar63 | (uint)*(byte *)((int)pvVar49 + iVar43 + iVar52) <<\n                                      ((char)iVar43 * '\b' & 0x1fU);\n                  }\n                  local_6c = (bfd_section *)0x0;\n                  pcVar47 = pbVar50->name;\n                  pcVar31 = (char *)((int)&pbVar14->name + iVar52);\n                  for (uVar48 = 0; (int)pcVar47 - iVar52 != uVar48; uVar48 = uVar48 + 1) {\n                    local_6c = (bfd_section *)\n                               ((uint)local_6c |\n                               (uint)(byte)pcVar31[uVar48] << ((char)uVar48 * '\b' & 0x1fU));\n                  }\n                  uVar67 = 0;\n                  uVar63 = (int)local_6c + uVar63;\n                  for (uVar60 = uVar63; uVar60 != 0; uVar60 = uVar60 >> 8) {\n                    uVar67 = uVar67 + 1;\n                  }\n                  in_stack_ffffff28 = pbVar50;\n                  if (uVar67 < uVar48) {\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = (bfd_section *)&pbVar50[-1].entsize;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          if (!bVar69) goto LAB_0001ae41;\n          pvVar49 = (void *)xmalloc(pcVar27,pvVar75,pcVar26,pcVar45);\n          local_cc = local_7c;\n          pvVar75 = pvVar49;\n          in_stack_ffffff28 = local_78;\n          local_a8 = (asection *)pbVar39;\n          for (paVar51 = local_74; paVar51 < paVar68;\n              paVar51 = (asection *)((int)&paVar51->size + 4)) {\n            pcVar45 = paVar51->name;\n            uVar63 = paVar51->index;\n            pcVar26 = pcVar45 + paVar51->id + 0xc;\n            pvVar54 = pvVar75;\n            if (uVar63 != 0) {\n              if ((int)paVar51->size == 0) {\n                memcpy(pvVar75,local_a8,(size_t)pcVar26);\n                pvVar54 = (void *)((int)pvVar75 + (int)pcVar26);\n              }\n              else {\n                pbVar1 = &paVar51->vma;\n                bVar72 = *pbVar1;\n                bVar73 = *pbVar1;\n                p_Var15 = ibfd->xvec->bfd_putx32;\n                __dest = (void *)((int)pvVar75 + 0xc);\n                pvVar54 = (void *)((int)__dest + (int)pcVar45);\n                if (((*(asection **)((int)&paVar51->vma + 4) == local_78) &&\n                    (*(char **)pbVar1 == local_7c)) &&\n                   ((*(asection **)((int)&paVar51->lma + 4) == in_stack_ffffff28 &&\n                    (*(char **)&paVar51->lma == local_cc)))) {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  (*ibfd->xvec->bfd_putx32)(0,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                }\n                else {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  uVar48 = 8;\n                  if ((ibfd->xvec->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    uVar48 = 0x10;\n                  }\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar48,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                  pbVar13 = ibfd->xvec;\n                  if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    (*pbVar13->bfd_putx64)(bVar73,pvVar54);\n                    (*ibfd->xvec->bfd_putx64)(paVar51->lma,(void *)((int)pvVar54 + 8));\n                    pvVar54 = (void *)((int)pvVar54 + 0x10);\n                  }\n                  else {\n                    (*pbVar13->bfd_putx32)(bVar72,pvVar54);\n                    (*ibfd->xvec->bfd_putx32)(paVar51->lma,(void *)((int)pvVar54 + 4));\n                    pvVar54 = (void *)((int)pvVar54 + 8);\n                  }\n                }\n              }\n              local_7c = *(char **)&paVar51->vma;\n              local_78 = *(asection **)((int)&paVar51->vma + 4);\n              local_cc = *(char **)&paVar51->lma;\n              in_stack_ffffff28 = *(asection **)((int)&paVar51->lma + 4);\n            }\n            local_a8 = (asection *)((int)local_a8 + (int)pcVar26);\n            pvVar75 = pvVar54;\n          }\n          pcVar26 = (char *)((int)pvVar75 - (int)pvVar49);\n          paVar68 = (asection *)((int)pcVar26 >> 0x1f);\n          in_stack_ffffff24 = (bfd_section *)obfd;\n          memcpy(pbVar39,pvVar49,(size_t)pcVar26);\n          free(pvVar49);\n          free(local_74);\n          local_6c = (bfd_section *)obfd;\n          merged_size._0_4_ = pcVar26;\n          merged_size._4_4_ = paVar68;\n          if ((paVar53 != paVar68) || (pcVar27 != pcVar26)) {\n            pbVar35 = paVar30->output_section;\n            if ((pbVar35 != (bfd_section *)0x0) &&\n               (pbVar35 = (bfd_section *)bfd_set_section_size(obfd,pbVar35,pcVar26,paVar68),\n               pbVar35 != (bfd_section *)0x0)) goto LAB_00018e0e;\n            pcVar27 = (char *)dcgettext(0,"warning: failed to set merged notes size",5,pbVar35);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n          }\n        }\n        else {\n          pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,\n                                      local_7c);\nLAB_0001ae12:\n          if (pcVar27 != (char *)0x0) {\n            bfd_set_error(0x11);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            status = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n          local_6c = (bfd_section *)obfd;\n        }\n        free(merged_notes);\n        merged_notes = (bfd_byte *)0x0;\n        merge_notes = 0;\n        merged_size._0_4_ = (char *)0x0;\n        merged_size._4_4_ = (asection *)0x0;\n      }\n    }\n  }" if (parenthesized_expression "((((merge_notes != 0) &&\n       (paVar30 = (asection *)bfd_get_section_by_name(ibfd,".gnu.build.attributes"),\n       paVar30 != (asection *)0x0)) && (merge_notes != 0)) &&\n     ((ibfd->xvec->flavour == bfd_target_elf_flavour &&\n      (bVar25 = is_merged_note_section((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1),\n      bVar25 != 0))))" ( (binary_expression "(((merge_notes != 0) &&\n       (paVar30 = (asection *)bfd_get_section_by_name(ibfd,".gnu.build.attributes"),\n       paVar30 != (asection *)0x0)) && (merge_notes != 0)) &&\n     ((ibfd->xvec->flavour == bfd_target_elf_flavour &&\n      (bVar25 = is_merged_note_section((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1),\n      bVar25 != 0)))" (parenthesized_expression "(((merge_notes != 0) &&\n       (paVar30 = (asection *)bfd_get_section_by_name(ibfd,".gnu.build.attributes"),\n       paVar30 != (asection *)0x0)) && (merge_notes != 0))" ( (binary_expression "((merge_notes != 0) &&\n       (paVar30 = (asection *)bfd_get_section_by_name(ibfd,".gnu.build.attributes"),\n       paVar30 != (asection *)0x0)) && (merge_notes != 0)" (parenthesized_expression "((merge_notes != 0) &&\n       (paVar30 = (asection *)bfd_get_section_by_name(ibfd,".gnu.build.attributes"),\n       paVar30 != (asection *)0x0))" ( (binary_expression "(merge_notes != 0) &&\n       (paVar30 = (asection *)bfd_get_section_by_name(ibfd,".gnu.build.attributes"),\n       paVar30 != (asection *)0x0)" (parenthesized_expression "(merge_notes != 0)" ( (binary_expression "merge_notes != 0" identifier != number_literal) )) && (parenthesized_expression "(paVar30 = (asection *)bfd_get_section_by_name(ibfd,".gnu.build.attributes"),\n       paVar30 != (asection *)0x0)" ( (comma_expression "paVar30 = (asection *)bfd_get_section_by_name(ibfd,".gnu.build.attributes"),\n       paVar30 != (asection *)0x0" (assignment_expression "paVar30 = (asection *)bfd_get_section_by_name(ibfd,".gnu.build.attributes")" identifier = (cast_expression "(asection *)bfd_get_section_by_name(ibfd,".gnu.build.attributes")" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_get_section_by_name(ibfd,".gnu.build.attributes")" identifier (argument_list "(ibfd,".gnu.build.attributes")" ( identifier , (string_literal "".gnu.build.attributes"" " string_content ") ))))) , (binary_expression "paVar30 != (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 &&\n      (bVar25 = is_merged_note_section((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1),\n      bVar25 != 0)))" ( (parenthesized_expression "(ibfd->xvec->flavour == bfd_target_elf_flavour &&\n      (bVar25 = is_merged_note_section((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1),\n      bVar25 != 0))" ( (binary_expression "ibfd->xvec->flavour == bfd_target_elf_flavour &&\n      (bVar25 = is_merged_note_section((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1),\n      bVar25 != 0)" (binary_expression "ibfd->xvec->flavour == bfd_target_elf_flavour" (field_expression "ibfd->xvec->flavour" (field_expression "ibfd->xvec" identifier -> field_identifier) -> field_identifier) == identifier) && (parenthesized_expression "(bVar25 = is_merged_note_section((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1),\n      bVar25 != 0)" ( (comma_expression "bVar25 = is_merged_note_section((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1),\n      bVar25 != 0" (assignment_expression "bVar25 = is_merged_note_section((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1)" identifier = (call_expression "is_merged_note_section((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1)" identifier (argument_list "((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1)" ( (cast_expression "(bfd *)paVar30" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(asection *)&paVar30->used_by_bfd" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar30->used_by_bfd" & (field_expression "paVar30->used_by_bfd" identifier -> field_identifier))) , identifier )))) , (binary_expression "bVar25 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n    paVar53 = *(asection **)((int)&paVar30->size + 4);\n    pcVar27 = *(char **)&paVar30->size;\n    if (paVar53 == (asection *)0x0 && pcVar27 == (char *)0x0) {\n      pcVar27 = (char *)dcgettext(0,"warning: note section is empty",5,pcVar27);\n      bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n      merge_notes = 0;\n    }\n    else {\n      iVar22 = bfd_get_full_section_contents(ibfd,paVar30,&merged_notes,pcVar27);\n      pbVar39 = merged_notes;\n      if (iVar22 == 0) {\n        pcVar27 = (char *)dcgettext(0,"warning: could not load note section",5,0);\n        bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n        free(merged_notes);\n        merged_notes = (bfd_byte *)0x0;\n        merge_notes = 0;\n      }\n      else {\n        iVar22 = bfd_get_reloc_upper_bound(ibfd,paVar30,paVar30,paVar30);\n        pcVar26 = extraout_ECX_01;\n        pbVar46 = ibfd;\n        if (0 < iVar22) {\n          pbVar46 = (bfd *)xmalloc(iVar22);\n          iVar22 = bfd_canonicalize_reloc(ibfd,paVar30,pbVar46,isympp);\n          free(pbVar46);\n          pcVar26 = extraout_ECX_02;\n          if (iVar22 == 0) goto LAB_0001ab09;\n          local_74 = (asection *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar75 = (void *)0x30;\n        pcVar45 = pcVar26;\n        uVar32 = __udivdi3(pcVar27,paVar53,0xc,0,pbVar46,0x30,pcVar26,pcVar26);\n        local_74 = (asection *)xcalloc(uVar32);\n        local_bc = 0;\n        local_c4 = (char *)0x0;\n        local_b8 = (asection *)0x0;\n        local_c0 = (void *)0x0;\n        local_84 = (asymbol **)0x0;\n        local_a8 = (asection *)0x0;\n        local_a4 = 0;\n        pbVar56 = pbVar39;\n        paVar68 = local_74;\n        local_7c = pcVar27;\n        local_78 = paVar53;\n        while (local_78 != (asection *)0x0 || (uint)-(int)local_78 < (uint)((char *)0xb < local_7c))\n        {\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56);\n          pcVar47 = (char *)((int)bVar72 + 3U & 0xfffffffc);\n          paVar68->name = pcVar47;\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56 + 4);\n          uVar63 = (int)bVar72 + 3U & 0xfffffffc;\n          paVar68->id = uVar63;\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56 + 8);\n          uVar48 = (uint)bVar72;\n          paVar68->index = uVar48;\n          if (1 < uVar48 - 0x100) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                                        (int)(bVar72 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          pcVar31 = pcVar47 + uVar63 + 0xc;\n          iVar22 = (int)local_78 - (int)(uint)(local_7c < pcVar31);\n          if (local_78 < (asection *)(uint)(local_7c < pcVar31)) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar22)\n            ;\n            goto LAB_0001ae12;\n          }\n          if (pcVar47 < (char *)0x2) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: name too small",5,\n                                        iVar22);\n            goto LAB_0001ae12;\n          }\n          paVar68->next = (bfd_section *)(pbVar56 + 0xc);\n          pbVar35 = (bfd_section *)(pbVar56 + (int)(pcVar47 + 0xc));\n          bVar69 = local_7c < pcVar31;\n          local_7c = local_7c + -(int)pcVar31;\n          local_78 = (asection *)((int)local_78 - (uint)bVar69);\n          paVar68->prev = pbVar35;\n          bVar6 = pbVar56[0xc];\n          uVar60 = (uint)bVar6;\n          if (bVar6 == 0x24) {\n            if ((pbVar56[0xd] == '\x01') && (pbVar56[0xe] == '1')) {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if (((((char *)0x4 < pcVar47) && (bVar6 == 0x47)) && (pbVar56[0xd] == 'A')) &&\n                  ((pbVar56[0xe] == '$' && (pbVar56[0xf] == '\x01')))) {\n            bVar6 = pbVar56[0x10];\n            uVar60 = (uint)bVar6;\n            if (bVar6 == 0x32) {\n              local_a8 = (asection *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar6 != 0x33) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "corrupt GNU build attribute note: unsupported version",\n                                            5,uVar60);\n                goto LAB_0001ae12;\n              }\n              local_84 = (asymbol **)((int)local_84 + 1);\n            }\n          }\n          if (uVar63 == 4) {\n            bVar73 = (*ibfd->xvec->bfd_getx32)(pbVar35);\nLAB_0001ade8:\n            bVar74 = 0xffffffffffffffff;\n          }\n          else if (uVar63 < 5) {\n            if (uVar63 != 0) {\nLAB_0001ae8d:\n              pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: bad description size"\n                                          ,5,uVar60);\n              goto LAB_0001ae12;\n            }\n            bVar74 = 0;\n            bVar73 = 0;\n          }\n          else if (uVar63 == 8) {\n            pbVar13 = ibfd->xvec;\n            if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n              bVar73 = (*pbVar13->bfd_getx64)(pbVar35);\n              goto LAB_0001ade8;\n            }\n            bVar73 = (*pbVar13->bfd_getx32)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx32)(&pbVar35->id);\n          }\n          else {\n            uVar60 = uVar63;\n            if (uVar63 != 0x10) goto LAB_0001ae8d;\n            bVar73 = (*ibfd->xvec->bfd_getx64)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx64)(&pbVar35->index);\n          }\n          if (uVar48 == 0x100) {\n            paVar51 = (asection *)(int)bVar73;\n            if (bVar73 == 0) {\n              paVar51 = local_b8;\n            }\n            uVar63 = (int)bVar74;\n            if (bVar74 == 0) {\n              uVar63 = local_bc;\n            }\n            *(undefined4 *)((int)&paVar68->vma + 4) = 0;\n            *(asection **)&paVar68->vma = paVar51;\n            *(uint *)&paVar68->lma = uVar63;\n            *(undefined4 *)((int)&paVar68->lma + 4) = 0;\n            local_bc = uVar63;\n            local_b8 = paVar51;\n          }\n          else {\n            pvVar49 = (void *)(int)bVar73;\n            if (bVar73 == 0) {\n              pvVar49 = local_c0;\n            }\n            pcVar47 = (char *)(int)bVar74;\n            if (bVar74 == 0) {\n              pcVar47 = local_c4;\n            }\n            *(undefined4 *)((int)&paVar68->vma + 4) = 0;\n            *(void **)&paVar68->vma = pvVar49;\n            *(char **)&paVar68->lma = pcVar47;\n            *(undefined4 *)((int)&paVar68->lma + 4) = 0;\n            local_c4 = pcVar47;\n            local_c0 = pvVar49;\n          }\n          if (*(char *)((int)&paVar68->next->name + (int)(paVar68->name + -1)) != '\0') {\n            pcVar27 = (char *)dcgettext(0,\n                                        "corrupt GNU build attribute note: name not NUL terminated",\n                                        5,paVar68->name);\n            goto LAB_0001ae12;\n          }\n          paVar68 = (asection *)((int)&paVar68->size + 4);\n          pbVar56 = pbVar56 + (int)pcVar31;\n        }\n        if (local_78 == (asection *)0x0 && local_7c == (char *)0x0) {\n          if (local_a4 == 0 && (local_a8 == (asection *)0x0 && local_84 == (asymbol **)0x0)) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: no known versions detected",\n                                        5,-(int)local_78 - (uint)((char *)0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (asection *)0x0 || local_84 != (asymbol **)0x0)) ||\n             ((local_a8 != (asection *)0x0 && (local_84 != (asymbol **)0x0)))) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: multiple different versions"\n                                        ,5,paVar68);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (asection *)0x1) || (local_84 == (asymbol **)0x1))\n          goto LAB_0001ae41;\n          uVar63 = -(uint)(local_a4 == 0) & 2;\n          iVar22 = uVar63 + 1;\n          if (*(char *)((int)&local_74->next->name + iVar22) != '\x01') {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: first note not version note"\n                                        ,5,iVar22);\n            goto LAB_0001ae12;\n          }\n          bVar69 = false;\n          iVar52 = uVar63 + 2;\n          pbVar35 = local_74;\nLAB_0001afd1:\n          paVar51 = pbVar35;\n          local_6c = (bfd_section *)((int)&paVar51->size + 4);\n          pbVar35 = local_6c;\n          if (local_6c < paVar68) {\n            if (*(int *)((int)&paVar51->rawsize + 4) == 0x100) {\n              local_a8 = (asection *)0x0;\n              pvVar49 = *(void **)&paVar51->compressed_size;\n              local_6c = paVar51;\n              while (pbVar50 = local_6c, local_74 <= local_6c) {\n                pbVar14 = local_6c->next;\n                cVar7 = *(char *)((int)&pbVar14->name + iVar22);\n                paVar21 = local_a8;\n                if ((((local_a8 != (asection *)0x0) || (local_6c->id == 0)) ||\n                    (paVar21 = local_6c, local_6c->index != 0x101)) &&\n                   ((local_a8 = paVar21, *(char *)((int)pvVar49 + iVar22) == cVar7 &&\n                    (local_6c->index == 0x100)))) {\n                  pcVar47 = pbVar35->name;\n                  if (cVar7 != '\x04') {\n                    pcVar31 = local_6c->name;\n                    if ((pcVar31 == pcVar47) &&\n                       (iVar43 = memcmp(pbVar14,pvVar49,(size_t)pcVar31), pvVar75 = pvVar49,\n                       pcVar26 = pcVar31, pcVar45 = pcVar47, iVar43 == 0)) {\n                      uVar63 = *(uint *)((int)&local_6c->lma + 4);\n                      pbVar50 = *(bfd_section **)&local_6c->lma;\n                      if (uVar63 != 0 || pbVar50 != (bfd_section *)0x0) {\n                        pbVar14 = paVar51->output_section;\n                        uVar48 = paVar51->alignment_power;\n                        if ((uVar48 != 0 || pbVar14 != (bfd_section *)0x0) &&\n                           ((-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)))) {\n                          *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;\n                          if (uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)) {\n                            *(bfd_section **)&local_6c->lma = pbVar14;\n                            *(uint *)((int)&local_6c->lma + 4) = uVar48;\n                          }\n                          bVar69 = true;\n                          if (local_84 != (asymbol **)0x0) {\n                            *(undefined4 *)&local_6c->size = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (asymbol **)0x0) {\n                      if ((((int)paVar51->rawsize == 0) && (local_a8 != (asection *)0x0)) &&\n                         (local_a8->index == 0)) {\n                        local_a8->index = 0x100;\n                      }\n                    }\n                    else {\n                      paVar51->relocation = (reloc_cache_entry *)0x1;\n                      *(undefined4 *)((int)&paVar51->rawsize + 4) = 0x101;\n                      *(undefined4 *)&local_6c->size = 1;\n                      local_6c->index = 0x101;\n                    }\n                    break;\n                  }\n                  uVar63 = 0;\n                  for (iVar43 = 0; (int)pcVar47 - iVar52 != iVar43; iVar43 = iVar43 + 1) {\n                    uVar63 = uVar63 | (uint)*(byte *)((int)pvVar49 + iVar43 + iVar52) <<\n                                      ((char)iVar43 * '\b' & 0x1fU);\n                  }\n                  local_6c = (bfd_section *)0x0;\n                  pcVar47 = pbVar50->name;\n                  pcVar31 = (char *)((int)&pbVar14->name + iVar52);\n                  for (uVar48 = 0; (int)pcVar47 - iVar52 != uVar48; uVar48 = uVar48 + 1) {\n                    local_6c = (bfd_section *)\n                               ((uint)local_6c |\n                               (uint)(byte)pcVar31[uVar48] << ((char)uVar48 * '\b' & 0x1fU));\n                  }\n                  uVar67 = 0;\n                  uVar63 = (int)local_6c + uVar63;\n                  for (uVar60 = uVar63; uVar60 != 0; uVar60 = uVar60 >> 8) {\n                    uVar67 = uVar67 + 1;\n                  }\n                  in_stack_ffffff28 = pbVar50;\n                  if (uVar67 < uVar48) {\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = (bfd_section *)&pbVar50[-1].entsize;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          if (!bVar69) goto LAB_0001ae41;\n          pvVar49 = (void *)xmalloc(pcVar27,pvVar75,pcVar26,pcVar45);\n          local_cc = local_7c;\n          pvVar75 = pvVar49;\n          in_stack_ffffff28 = local_78;\n          local_a8 = (asection *)pbVar39;\n          for (paVar51 = local_74; paVar51 < paVar68;\n              paVar51 = (asection *)((int)&paVar51->size + 4)) {\n            pcVar45 = paVar51->name;\n            uVar63 = paVar51->index;\n            pcVar26 = pcVar45 + paVar51->id + 0xc;\n            pvVar54 = pvVar75;\n            if (uVar63 != 0) {\n              if ((int)paVar51->size == 0) {\n                memcpy(pvVar75,local_a8,(size_t)pcVar26);\n                pvVar54 = (void *)((int)pvVar75 + (int)pcVar26);\n              }\n              else {\n                pbVar1 = &paVar51->vma;\n                bVar72 = *pbVar1;\n                bVar73 = *pbVar1;\n                p_Var15 = ibfd->xvec->bfd_putx32;\n                __dest = (void *)((int)pvVar75 + 0xc);\n                pvVar54 = (void *)((int)__dest + (int)pcVar45);\n                if (((*(asection **)((int)&paVar51->vma + 4) == local_78) &&\n                    (*(char **)pbVar1 == local_7c)) &&\n                   ((*(asection **)((int)&paVar51->lma + 4) == in_stack_ffffff28 &&\n                    (*(char **)&paVar51->lma == local_cc)))) {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  (*ibfd->xvec->bfd_putx32)(0,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                }\n                else {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  uVar48 = 8;\n                  if ((ibfd->xvec->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    uVar48 = 0x10;\n                  }\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar48,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                  pbVar13 = ibfd->xvec;\n                  if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    (*pbVar13->bfd_putx64)(bVar73,pvVar54);\n                    (*ibfd->xvec->bfd_putx64)(paVar51->lma,(void *)((int)pvVar54 + 8));\n                    pvVar54 = (void *)((int)pvVar54 + 0x10);\n                  }\n                  else {\n                    (*pbVar13->bfd_putx32)(bVar72,pvVar54);\n                    (*ibfd->xvec->bfd_putx32)(paVar51->lma,(void *)((int)pvVar54 + 4));\n                    pvVar54 = (void *)((int)pvVar54 + 8);\n                  }\n                }\n              }\n              local_7c = *(char **)&paVar51->vma;\n              local_78 = *(asection **)((int)&paVar51->vma + 4);\n              local_cc = *(char **)&paVar51->lma;\n              in_stack_ffffff28 = *(asection **)((int)&paVar51->lma + 4);\n            }\n            local_a8 = (asection *)((int)local_a8 + (int)pcVar26);\n            pvVar75 = pvVar54;\n          }\n          pcVar26 = (char *)((int)pvVar75 - (int)pvVar49);\n          paVar68 = (asection *)((int)pcVar26 >> 0x1f);\n          in_stack_ffffff24 = (bfd_section *)obfd;\n          memcpy(pbVar39,pvVar49,(size_t)pcVar26);\n          free(pvVar49);\n          free(local_74);\n          local_6c = (bfd_section *)obfd;\n          merged_size._0_4_ = pcVar26;\n          merged_size._4_4_ = paVar68;\n          if ((paVar53 != paVar68) || (pcVar27 != pcVar26)) {\n            pbVar35 = paVar30->output_section;\n            if ((pbVar35 != (bfd_section *)0x0) &&\n               (pbVar35 = (bfd_section *)bfd_set_section_size(obfd,pbVar35,pcVar26,paVar68),\n               pbVar35 != (bfd_section *)0x0)) goto LAB_00018e0e;\n            pcVar27 = (char *)dcgettext(0,"warning: failed to set merged notes size",5,pbVar35);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n          }\n        }\n        else {\n          pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,\n                                      local_7c);\nLAB_0001ae12:\n          if (pcVar27 != (char *)0x0) {\n            bfd_set_error(0x11);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            status = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n          local_6c = (bfd_section *)obfd;\n        }\n        free(merged_notes);\n        merged_notes = (bfd_byte *)0x0;\n        merge_notes = 0;\n        merged_size._0_4_ = (char *)0x0;\n        merged_size._4_4_ = (asection *)0x0;\n      }\n    }\n  }" { (expression_statement "paVar53 = *(asection **)((int)&paVar30->size + 4);" (assignment_expression "paVar53 = *(asection **)((int)&paVar30->size + 4)" identifier = (pointer_expression "*(asection **)((int)&paVar30->size + 4)" * (cast_expression "(asection **)((int)&paVar30->size + 4)" ( (type_descriptor "asection **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&paVar30->size + 4)" ( (binary_expression "(int)&paVar30->size + 4" (cast_expression "(int)&paVar30->size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar30->size" & (field_expression "paVar30->size" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "pcVar27 = *(char **)&paVar30->size;" (assignment_expression "pcVar27 = *(char **)&paVar30->size" identifier = (pointer_expression "*(char **)&paVar30->size" * (cast_expression "(char **)&paVar30->size" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&paVar30->size" & (field_expression "paVar30->size" identifier -> field_identifier))))) ;) (if_statement "if (paVar53 == (asection *)0x0 && pcVar27 == (char *)0x0) {\n      pcVar27 = (char *)dcgettext(0,"warning: note section is empty",5,pcVar27);\n      bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n      merge_notes = 0;\n    }\n    else {\n      iVar22 = bfd_get_full_section_contents(ibfd,paVar30,&merged_notes,pcVar27);\n      pbVar39 = merged_notes;\n      if (iVar22 == 0) {\n        pcVar27 = (char *)dcgettext(0,"warning: could not load note section",5,0);\n        bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n        free(merged_notes);\n        merged_notes = (bfd_byte *)0x0;\n        merge_notes = 0;\n      }\n      else {\n        iVar22 = bfd_get_reloc_upper_bound(ibfd,paVar30,paVar30,paVar30);\n        pcVar26 = extraout_ECX_01;\n        pbVar46 = ibfd;\n        if (0 < iVar22) {\n          pbVar46 = (bfd *)xmalloc(iVar22);\n          iVar22 = bfd_canonicalize_reloc(ibfd,paVar30,pbVar46,isympp);\n          free(pbVar46);\n          pcVar26 = extraout_ECX_02;\n          if (iVar22 == 0) goto LAB_0001ab09;\n          local_74 = (asection *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar75 = (void *)0x30;\n        pcVar45 = pcVar26;\n        uVar32 = __udivdi3(pcVar27,paVar53,0xc,0,pbVar46,0x30,pcVar26,pcVar26);\n        local_74 = (asection *)xcalloc(uVar32);\n        local_bc = 0;\n        local_c4 = (char *)0x0;\n        local_b8 = (asection *)0x0;\n        local_c0 = (void *)0x0;\n        local_84 = (asymbol **)0x0;\n        local_a8 = (asection *)0x0;\n        local_a4 = 0;\n        pbVar56 = pbVar39;\n        paVar68 = local_74;\n        local_7c = pcVar27;\n        local_78 = paVar53;\n        while (local_78 != (asection *)0x0 || (uint)-(int)local_78 < (uint)((char *)0xb < local_7c))\n        {\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56);\n          pcVar47 = (char *)((int)bVar72 + 3U & 0xfffffffc);\n          paVar68->name = pcVar47;\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56 + 4);\n          uVar63 = (int)bVar72 + 3U & 0xfffffffc;\n          paVar68->id = uVar63;\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56 + 8);\n          uVar48 = (uint)bVar72;\n          paVar68->index = uVar48;\n          if (1 < uVar48 - 0x100) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                                        (int)(bVar72 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          pcVar31 = pcVar47 + uVar63 + 0xc;\n          iVar22 = (int)local_78 - (int)(uint)(local_7c < pcVar31);\n          if (local_78 < (asection *)(uint)(local_7c < pcVar31)) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar22)\n            ;\n            goto LAB_0001ae12;\n          }\n          if (pcVar47 < (char *)0x2) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: name too small",5,\n                                        iVar22);\n            goto LAB_0001ae12;\n          }\n          paVar68->next = (bfd_section *)(pbVar56 + 0xc);\n          pbVar35 = (bfd_section *)(pbVar56 + (int)(pcVar47 + 0xc));\n          bVar69 = local_7c < pcVar31;\n          local_7c = local_7c + -(int)pcVar31;\n          local_78 = (asection *)((int)local_78 - (uint)bVar69);\n          paVar68->prev = pbVar35;\n          bVar6 = pbVar56[0xc];\n          uVar60 = (uint)bVar6;\n          if (bVar6 == 0x24) {\n            if ((pbVar56[0xd] == '\x01') && (pbVar56[0xe] == '1')) {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if (((((char *)0x4 < pcVar47) && (bVar6 == 0x47)) && (pbVar56[0xd] == 'A')) &&\n                  ((pbVar56[0xe] == '$' && (pbVar56[0xf] == '\x01')))) {\n            bVar6 = pbVar56[0x10];\n            uVar60 = (uint)bVar6;\n            if (bVar6 == 0x32) {\n              local_a8 = (asection *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar6 != 0x33) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "corrupt GNU build attribute note: unsupported version",\n                                            5,uVar60);\n                goto LAB_0001ae12;\n              }\n              local_84 = (asymbol **)((int)local_84 + 1);\n            }\n          }\n          if (uVar63 == 4) {\n            bVar73 = (*ibfd->xvec->bfd_getx32)(pbVar35);\nLAB_0001ade8:\n            bVar74 = 0xffffffffffffffff;\n          }\n          else if (uVar63 < 5) {\n            if (uVar63 != 0) {\nLAB_0001ae8d:\n              pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: bad description size"\n                                          ,5,uVar60);\n              goto LAB_0001ae12;\n            }\n            bVar74 = 0;\n            bVar73 = 0;\n          }\n          else if (uVar63 == 8) {\n            pbVar13 = ibfd->xvec;\n            if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n              bVar73 = (*pbVar13->bfd_getx64)(pbVar35);\n              goto LAB_0001ade8;\n            }\n            bVar73 = (*pbVar13->bfd_getx32)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx32)(&pbVar35->id);\n          }\n          else {\n            uVar60 = uVar63;\n            if (uVar63 != 0x10) goto LAB_0001ae8d;\n            bVar73 = (*ibfd->xvec->bfd_getx64)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx64)(&pbVar35->index);\n          }\n          if (uVar48 == 0x100) {\n            paVar51 = (asection *)(int)bVar73;\n            if (bVar73 == 0) {\n              paVar51 = local_b8;\n            }\n            uVar63 = (int)bVar74;\n            if (bVar74 == 0) {\n              uVar63 = local_bc;\n            }\n            *(undefined4 *)((int)&paVar68->vma + 4) = 0;\n            *(asection **)&paVar68->vma = paVar51;\n            *(uint *)&paVar68->lma = uVar63;\n            *(undefined4 *)((int)&paVar68->lma + 4) = 0;\n            local_bc = uVar63;\n            local_b8 = paVar51;\n          }\n          else {\n            pvVar49 = (void *)(int)bVar73;\n            if (bVar73 == 0) {\n              pvVar49 = local_c0;\n            }\n            pcVar47 = (char *)(int)bVar74;\n            if (bVar74 == 0) {\n              pcVar47 = local_c4;\n            }\n            *(undefined4 *)((int)&paVar68->vma + 4) = 0;\n            *(void **)&paVar68->vma = pvVar49;\n            *(char **)&paVar68->lma = pcVar47;\n            *(undefined4 *)((int)&paVar68->lma + 4) = 0;\n            local_c4 = pcVar47;\n            local_c0 = pvVar49;\n          }\n          if (*(char *)((int)&paVar68->next->name + (int)(paVar68->name + -1)) != '\0') {\n            pcVar27 = (char *)dcgettext(0,\n                                        "corrupt GNU build attribute note: name not NUL terminated",\n                                        5,paVar68->name);\n            goto LAB_0001ae12;\n          }\n          paVar68 = (asection *)((int)&paVar68->size + 4);\n          pbVar56 = pbVar56 + (int)pcVar31;\n        }\n        if (local_78 == (asection *)0x0 && local_7c == (char *)0x0) {\n          if (local_a4 == 0 && (local_a8 == (asection *)0x0 && local_84 == (asymbol **)0x0)) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: no known versions detected",\n                                        5,-(int)local_78 - (uint)((char *)0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (asection *)0x0 || local_84 != (asymbol **)0x0)) ||\n             ((local_a8 != (asection *)0x0 && (local_84 != (asymbol **)0x0)))) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: multiple different versions"\n                                        ,5,paVar68);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (asection *)0x1) || (local_84 == (asymbol **)0x1))\n          goto LAB_0001ae41;\n          uVar63 = -(uint)(local_a4 == 0) & 2;\n          iVar22 = uVar63 + 1;\n          if (*(char *)((int)&local_74->next->name + iVar22) != '\x01') {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: first note not version note"\n                                        ,5,iVar22);\n            goto LAB_0001ae12;\n          }\n          bVar69 = false;\n          iVar52 = uVar63 + 2;\n          pbVar35 = local_74;\nLAB_0001afd1:\n          paVar51 = pbVar35;\n          local_6c = (bfd_section *)((int)&paVar51->size + 4);\n          pbVar35 = local_6c;\n          if (local_6c < paVar68) {\n            if (*(int *)((int)&paVar51->rawsize + 4) == 0x100) {\n              local_a8 = (asection *)0x0;\n              pvVar49 = *(void **)&paVar51->compressed_size;\n              local_6c = paVar51;\n              while (pbVar50 = local_6c, local_74 <= local_6c) {\n                pbVar14 = local_6c->next;\n                cVar7 = *(char *)((int)&pbVar14->name + iVar22);\n                paVar21 = local_a8;\n                if ((((local_a8 != (asection *)0x0) || (local_6c->id == 0)) ||\n                    (paVar21 = local_6c, local_6c->index != 0x101)) &&\n                   ((local_a8 = paVar21, *(char *)((int)pvVar49 + iVar22) == cVar7 &&\n                    (local_6c->index == 0x100)))) {\n                  pcVar47 = pbVar35->name;\n                  if (cVar7 != '\x04') {\n                    pcVar31 = local_6c->name;\n                    if ((pcVar31 == pcVar47) &&\n                       (iVar43 = memcmp(pbVar14,pvVar49,(size_t)pcVar31), pvVar75 = pvVar49,\n                       pcVar26 = pcVar31, pcVar45 = pcVar47, iVar43 == 0)) {\n                      uVar63 = *(uint *)((int)&local_6c->lma + 4);\n                      pbVar50 = *(bfd_section **)&local_6c->lma;\n                      if (uVar63 != 0 || pbVar50 != (bfd_section *)0x0) {\n                        pbVar14 = paVar51->output_section;\n                        uVar48 = paVar51->alignment_power;\n                        if ((uVar48 != 0 || pbVar14 != (bfd_section *)0x0) &&\n                           ((-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)))) {\n                          *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;\n                          if (uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)) {\n                            *(bfd_section **)&local_6c->lma = pbVar14;\n                            *(uint *)((int)&local_6c->lma + 4) = uVar48;\n                          }\n                          bVar69 = true;\n                          if (local_84 != (asymbol **)0x0) {\n                            *(undefined4 *)&local_6c->size = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (asymbol **)0x0) {\n                      if ((((int)paVar51->rawsize == 0) && (local_a8 != (asection *)0x0)) &&\n                         (local_a8->index == 0)) {\n                        local_a8->index = 0x100;\n                      }\n                    }\n                    else {\n                      paVar51->relocation = (reloc_cache_entry *)0x1;\n                      *(undefined4 *)((int)&paVar51->rawsize + 4) = 0x101;\n                      *(undefined4 *)&local_6c->size = 1;\n                      local_6c->index = 0x101;\n                    }\n                    break;\n                  }\n                  uVar63 = 0;\n                  for (iVar43 = 0; (int)pcVar47 - iVar52 != iVar43; iVar43 = iVar43 + 1) {\n                    uVar63 = uVar63 | (uint)*(byte *)((int)pvVar49 + iVar43 + iVar52) <<\n                                      ((char)iVar43 * '\b' & 0x1fU);\n                  }\n                  local_6c = (bfd_section *)0x0;\n                  pcVar47 = pbVar50->name;\n                  pcVar31 = (char *)((int)&pbVar14->name + iVar52);\n                  for (uVar48 = 0; (int)pcVar47 - iVar52 != uVar48; uVar48 = uVar48 + 1) {\n                    local_6c = (bfd_section *)\n                               ((uint)local_6c |\n                               (uint)(byte)pcVar31[uVar48] << ((char)uVar48 * '\b' & 0x1fU));\n                  }\n                  uVar67 = 0;\n                  uVar63 = (int)local_6c + uVar63;\n                  for (uVar60 = uVar63; uVar60 != 0; uVar60 = uVar60 >> 8) {\n                    uVar67 = uVar67 + 1;\n                  }\n                  in_stack_ffffff28 = pbVar50;\n                  if (uVar67 < uVar48) {\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = (bfd_section *)&pbVar50[-1].entsize;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          if (!bVar69) goto LAB_0001ae41;\n          pvVar49 = (void *)xmalloc(pcVar27,pvVar75,pcVar26,pcVar45);\n          local_cc = local_7c;\n          pvVar75 = pvVar49;\n          in_stack_ffffff28 = local_78;\n          local_a8 = (asection *)pbVar39;\n          for (paVar51 = local_74; paVar51 < paVar68;\n              paVar51 = (asection *)((int)&paVar51->size + 4)) {\n            pcVar45 = paVar51->name;\n            uVar63 = paVar51->index;\n            pcVar26 = pcVar45 + paVar51->id + 0xc;\n            pvVar54 = pvVar75;\n            if (uVar63 != 0) {\n              if ((int)paVar51->size == 0) {\n                memcpy(pvVar75,local_a8,(size_t)pcVar26);\n                pvVar54 = (void *)((int)pvVar75 + (int)pcVar26);\n              }\n              else {\n                pbVar1 = &paVar51->vma;\n                bVar72 = *pbVar1;\n                bVar73 = *pbVar1;\n                p_Var15 = ibfd->xvec->bfd_putx32;\n                __dest = (void *)((int)pvVar75 + 0xc);\n                pvVar54 = (void *)((int)__dest + (int)pcVar45);\n                if (((*(asection **)((int)&paVar51->vma + 4) == local_78) &&\n                    (*(char **)pbVar1 == local_7c)) &&\n                   ((*(asection **)((int)&paVar51->lma + 4) == in_stack_ffffff28 &&\n                    (*(char **)&paVar51->lma == local_cc)))) {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  (*ibfd->xvec->bfd_putx32)(0,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                }\n                else {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  uVar48 = 8;\n                  if ((ibfd->xvec->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    uVar48 = 0x10;\n                  }\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar48,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                  pbVar13 = ibfd->xvec;\n                  if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    (*pbVar13->bfd_putx64)(bVar73,pvVar54);\n                    (*ibfd->xvec->bfd_putx64)(paVar51->lma,(void *)((int)pvVar54 + 8));\n                    pvVar54 = (void *)((int)pvVar54 + 0x10);\n                  }\n                  else {\n                    (*pbVar13->bfd_putx32)(bVar72,pvVar54);\n                    (*ibfd->xvec->bfd_putx32)(paVar51->lma,(void *)((int)pvVar54 + 4));\n                    pvVar54 = (void *)((int)pvVar54 + 8);\n                  }\n                }\n              }\n              local_7c = *(char **)&paVar51->vma;\n              local_78 = *(asection **)((int)&paVar51->vma + 4);\n              local_cc = *(char **)&paVar51->lma;\n              in_stack_ffffff28 = *(asection **)((int)&paVar51->lma + 4);\n            }\n            local_a8 = (asection *)((int)local_a8 + (int)pcVar26);\n            pvVar75 = pvVar54;\n          }\n          pcVar26 = (char *)((int)pvVar75 - (int)pvVar49);\n          paVar68 = (asection *)((int)pcVar26 >> 0x1f);\n          in_stack_ffffff24 = (bfd_section *)obfd;\n          memcpy(pbVar39,pvVar49,(size_t)pcVar26);\n          free(pvVar49);\n          free(local_74);\n          local_6c = (bfd_section *)obfd;\n          merged_size._0_4_ = pcVar26;\n          merged_size._4_4_ = paVar68;\n          if ((paVar53 != paVar68) || (pcVar27 != pcVar26)) {\n            pbVar35 = paVar30->output_section;\n            if ((pbVar35 != (bfd_section *)0x0) &&\n               (pbVar35 = (bfd_section *)bfd_set_section_size(obfd,pbVar35,pcVar26,paVar68),\n               pbVar35 != (bfd_section *)0x0)) goto LAB_00018e0e;\n            pcVar27 = (char *)dcgettext(0,"warning: failed to set merged notes size",5,pbVar35);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n          }\n        }\n        else {\n          pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,\n                                      local_7c);\nLAB_0001ae12:\n          if (pcVar27 != (char *)0x0) {\n            bfd_set_error(0x11);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            status = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n          local_6c = (bfd_section *)obfd;\n        }\n        free(merged_notes);\n        merged_notes = (bfd_byte *)0x0;\n        merge_notes = 0;\n        merged_size._0_4_ = (char *)0x0;\n        merged_size._4_4_ = (asection *)0x0;\n      }\n    }" if (parenthesized_expression "(paVar53 == (asection *)0x0 && pcVar27 == (char *)0x0)" ( (binary_expression "paVar53 == (asection *)0x0 && pcVar27 == (char *)0x0" (binary_expression "paVar53 == (asection *)0x0" identifier == (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "pcVar27 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n      pcVar27 = (char *)dcgettext(0,"warning: note section is empty",5,pcVar27);\n      bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n      merge_notes = 0;\n    }" { (expression_statement "pcVar27 = (char *)dcgettext(0,"warning: note section is empty",5,pcVar27);" (assignment_expression "pcVar27 = (char *)dcgettext(0,"warning: note section is empty",5,pcVar27)" identifier = (cast_expression "(char *)dcgettext(0,"warning: note section is empty",5,pcVar27)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"warning: note section is empty",5,pcVar27)" identifier (argument_list "(0,"warning: note section is empty",5,pcVar27)" ( number_literal , (string_literal ""warning: note section is empty"" " string_content ") , number_literal , identifier ))))) ;) (expression_statement "bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);" (call_expression "bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27)" identifier (argument_list "((char *)0x0,ibfd,paVar30,pcVar27)" ( (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      iVar22 = bfd_get_full_section_contents(ibfd,paVar30,&merged_notes,pcVar27);\n      pbVar39 = merged_notes;\n      if (iVar22 == 0) {\n        pcVar27 = (char *)dcgettext(0,"warning: could not load note section",5,0);\n        bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n        free(merged_notes);\n        merged_notes = (bfd_byte *)0x0;\n        merge_notes = 0;\n      }\n      else {\n        iVar22 = bfd_get_reloc_upper_bound(ibfd,paVar30,paVar30,paVar30);\n        pcVar26 = extraout_ECX_01;\n        pbVar46 = ibfd;\n        if (0 < iVar22) {\n          pbVar46 = (bfd *)xmalloc(iVar22);\n          iVar22 = bfd_canonicalize_reloc(ibfd,paVar30,pbVar46,isympp);\n          free(pbVar46);\n          pcVar26 = extraout_ECX_02;\n          if (iVar22 == 0) goto LAB_0001ab09;\n          local_74 = (asection *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar75 = (void *)0x30;\n        pcVar45 = pcVar26;\n        uVar32 = __udivdi3(pcVar27,paVar53,0xc,0,pbVar46,0x30,pcVar26,pcVar26);\n        local_74 = (asection *)xcalloc(uVar32);\n        local_bc = 0;\n        local_c4 = (char *)0x0;\n        local_b8 = (asection *)0x0;\n        local_c0 = (void *)0x0;\n        local_84 = (asymbol **)0x0;\n        local_a8 = (asection *)0x0;\n        local_a4 = 0;\n        pbVar56 = pbVar39;\n        paVar68 = local_74;\n        local_7c = pcVar27;\n        local_78 = paVar53;\n        while (local_78 != (asection *)0x0 || (uint)-(int)local_78 < (uint)((char *)0xb < local_7c))\n        {\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56);\n          pcVar47 = (char *)((int)bVar72 + 3U & 0xfffffffc);\n          paVar68->name = pcVar47;\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56 + 4);\n          uVar63 = (int)bVar72 + 3U & 0xfffffffc;\n          paVar68->id = uVar63;\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56 + 8);\n          uVar48 = (uint)bVar72;\n          paVar68->index = uVar48;\n          if (1 < uVar48 - 0x100) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                                        (int)(bVar72 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          pcVar31 = pcVar47 + uVar63 + 0xc;\n          iVar22 = (int)local_78 - (int)(uint)(local_7c < pcVar31);\n          if (local_78 < (asection *)(uint)(local_7c < pcVar31)) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar22)\n            ;\n            goto LAB_0001ae12;\n          }\n          if (pcVar47 < (char *)0x2) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: name too small",5,\n                                        iVar22);\n            goto LAB_0001ae12;\n          }\n          paVar68->next = (bfd_section *)(pbVar56 + 0xc);\n          pbVar35 = (bfd_section *)(pbVar56 + (int)(pcVar47 + 0xc));\n          bVar69 = local_7c < pcVar31;\n          local_7c = local_7c + -(int)pcVar31;\n          local_78 = (asection *)((int)local_78 - (uint)bVar69);\n          paVar68->prev = pbVar35;\n          bVar6 = pbVar56[0xc];\n          uVar60 = (uint)bVar6;\n          if (bVar6 == 0x24) {\n            if ((pbVar56[0xd] == '\x01') && (pbVar56[0xe] == '1')) {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if (((((char *)0x4 < pcVar47) && (bVar6 == 0x47)) && (pbVar56[0xd] == 'A')) &&\n                  ((pbVar56[0xe] == '$' && (pbVar56[0xf] == '\x01')))) {\n            bVar6 = pbVar56[0x10];\n            uVar60 = (uint)bVar6;\n            if (bVar6 == 0x32) {\n              local_a8 = (asection *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar6 != 0x33) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "corrupt GNU build attribute note: unsupported version",\n                                            5,uVar60);\n                goto LAB_0001ae12;\n              }\n              local_84 = (asymbol **)((int)local_84 + 1);\n            }\n          }\n          if (uVar63 == 4) {\n            bVar73 = (*ibfd->xvec->bfd_getx32)(pbVar35);\nLAB_0001ade8:\n            bVar74 = 0xffffffffffffffff;\n          }\n          else if (uVar63 < 5) {\n            if (uVar63 != 0) {\nLAB_0001ae8d:\n              pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: bad description size"\n                                          ,5,uVar60);\n              goto LAB_0001ae12;\n            }\n            bVar74 = 0;\n            bVar73 = 0;\n          }\n          else if (uVar63 == 8) {\n            pbVar13 = ibfd->xvec;\n            if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n              bVar73 = (*pbVar13->bfd_getx64)(pbVar35);\n              goto LAB_0001ade8;\n            }\n            bVar73 = (*pbVar13->bfd_getx32)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx32)(&pbVar35->id);\n          }\n          else {\n            uVar60 = uVar63;\n            if (uVar63 != 0x10) goto LAB_0001ae8d;\n            bVar73 = (*ibfd->xvec->bfd_getx64)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx64)(&pbVar35->index);\n          }\n          if (uVar48 == 0x100) {\n            paVar51 = (asection *)(int)bVar73;\n            if (bVar73 == 0) {\n              paVar51 = local_b8;\n            }\n            uVar63 = (int)bVar74;\n            if (bVar74 == 0) {\n              uVar63 = local_bc;\n            }\n            *(undefined4 *)((int)&paVar68->vma + 4) = 0;\n            *(asection **)&paVar68->vma = paVar51;\n            *(uint *)&paVar68->lma = uVar63;\n            *(undefined4 *)((int)&paVar68->lma + 4) = 0;\n            local_bc = uVar63;\n            local_b8 = paVar51;\n          }\n          else {\n            pvVar49 = (void *)(int)bVar73;\n            if (bVar73 == 0) {\n              pvVar49 = local_c0;\n            }\n            pcVar47 = (char *)(int)bVar74;\n            if (bVar74 == 0) {\n              pcVar47 = local_c4;\n            }\n            *(undefined4 *)((int)&paVar68->vma + 4) = 0;\n            *(void **)&paVar68->vma = pvVar49;\n            *(char **)&paVar68->lma = pcVar47;\n            *(undefined4 *)((int)&paVar68->lma + 4) = 0;\n            local_c4 = pcVar47;\n            local_c0 = pvVar49;\n          }\n          if (*(char *)((int)&paVar68->next->name + (int)(paVar68->name + -1)) != '\0') {\n            pcVar27 = (char *)dcgettext(0,\n                                        "corrupt GNU build attribute note: name not NUL terminated",\n                                        5,paVar68->name);\n            goto LAB_0001ae12;\n          }\n          paVar68 = (asection *)((int)&paVar68->size + 4);\n          pbVar56 = pbVar56 + (int)pcVar31;\n        }\n        if (local_78 == (asection *)0x0 && local_7c == (char *)0x0) {\n          if (local_a4 == 0 && (local_a8 == (asection *)0x0 && local_84 == (asymbol **)0x0)) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: no known versions detected",\n                                        5,-(int)local_78 - (uint)((char *)0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (asection *)0x0 || local_84 != (asymbol **)0x0)) ||\n             ((local_a8 != (asection *)0x0 && (local_84 != (asymbol **)0x0)))) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: multiple different versions"\n                                        ,5,paVar68);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (asection *)0x1) || (local_84 == (asymbol **)0x1))\n          goto LAB_0001ae41;\n          uVar63 = -(uint)(local_a4 == 0) & 2;\n          iVar22 = uVar63 + 1;\n          if (*(char *)((int)&local_74->next->name + iVar22) != '\x01') {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: first note not version note"\n                                        ,5,iVar22);\n            goto LAB_0001ae12;\n          }\n          bVar69 = false;\n          iVar52 = uVar63 + 2;\n          pbVar35 = local_74;\nLAB_0001afd1:\n          paVar51 = pbVar35;\n          local_6c = (bfd_section *)((int)&paVar51->size + 4);\n          pbVar35 = local_6c;\n          if (local_6c < paVar68) {\n            if (*(int *)((int)&paVar51->rawsize + 4) == 0x100) {\n              local_a8 = (asection *)0x0;\n              pvVar49 = *(void **)&paVar51->compressed_size;\n              local_6c = paVar51;\n              while (pbVar50 = local_6c, local_74 <= local_6c) {\n                pbVar14 = local_6c->next;\n                cVar7 = *(char *)((int)&pbVar14->name + iVar22);\n                paVar21 = local_a8;\n                if ((((local_a8 != (asection *)0x0) || (local_6c->id == 0)) ||\n                    (paVar21 = local_6c, local_6c->index != 0x101)) &&\n                   ((local_a8 = paVar21, *(char *)((int)pvVar49 + iVar22) == cVar7 &&\n                    (local_6c->index == 0x100)))) {\n                  pcVar47 = pbVar35->name;\n                  if (cVar7 != '\x04') {\n                    pcVar31 = local_6c->name;\n                    if ((pcVar31 == pcVar47) &&\n                       (iVar43 = memcmp(pbVar14,pvVar49,(size_t)pcVar31), pvVar75 = pvVar49,\n                       pcVar26 = pcVar31, pcVar45 = pcVar47, iVar43 == 0)) {\n                      uVar63 = *(uint *)((int)&local_6c->lma + 4);\n                      pbVar50 = *(bfd_section **)&local_6c->lma;\n                      if (uVar63 != 0 || pbVar50 != (bfd_section *)0x0) {\n                        pbVar14 = paVar51->output_section;\n                        uVar48 = paVar51->alignment_power;\n                        if ((uVar48 != 0 || pbVar14 != (bfd_section *)0x0) &&\n                           ((-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)))) {\n                          *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;\n                          if (uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)) {\n                            *(bfd_section **)&local_6c->lma = pbVar14;\n                            *(uint *)((int)&local_6c->lma + 4) = uVar48;\n                          }\n                          bVar69 = true;\n                          if (local_84 != (asymbol **)0x0) {\n                            *(undefined4 *)&local_6c->size = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (asymbol **)0x0) {\n                      if ((((int)paVar51->rawsize == 0) && (local_a8 != (asection *)0x0)) &&\n                         (local_a8->index == 0)) {\n                        local_a8->index = 0x100;\n                      }\n                    }\n                    else {\n                      paVar51->relocation = (reloc_cache_entry *)0x1;\n                      *(undefined4 *)((int)&paVar51->rawsize + 4) = 0x101;\n                      *(undefined4 *)&local_6c->size = 1;\n                      local_6c->index = 0x101;\n                    }\n                    break;\n                  }\n                  uVar63 = 0;\n                  for (iVar43 = 0; (int)pcVar47 - iVar52 != iVar43; iVar43 = iVar43 + 1) {\n                    uVar63 = uVar63 | (uint)*(byte *)((int)pvVar49 + iVar43 + iVar52) <<\n                                      ((char)iVar43 * '\b' & 0x1fU);\n                  }\n                  local_6c = (bfd_section *)0x0;\n                  pcVar47 = pbVar50->name;\n                  pcVar31 = (char *)((int)&pbVar14->name + iVar52);\n                  for (uVar48 = 0; (int)pcVar47 - iVar52 != uVar48; uVar48 = uVar48 + 1) {\n                    local_6c = (bfd_section *)\n                               ((uint)local_6c |\n                               (uint)(byte)pcVar31[uVar48] << ((char)uVar48 * '\b' & 0x1fU));\n                  }\n                  uVar67 = 0;\n                  uVar63 = (int)local_6c + uVar63;\n                  for (uVar60 = uVar63; uVar60 != 0; uVar60 = uVar60 >> 8) {\n                    uVar67 = uVar67 + 1;\n                  }\n                  in_stack_ffffff28 = pbVar50;\n                  if (uVar67 < uVar48) {\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = (bfd_section *)&pbVar50[-1].entsize;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          if (!bVar69) goto LAB_0001ae41;\n          pvVar49 = (void *)xmalloc(pcVar27,pvVar75,pcVar26,pcVar45);\n          local_cc = local_7c;\n          pvVar75 = pvVar49;\n          in_stack_ffffff28 = local_78;\n          local_a8 = (asection *)pbVar39;\n          for (paVar51 = local_74; paVar51 < paVar68;\n              paVar51 = (asection *)((int)&paVar51->size + 4)) {\n            pcVar45 = paVar51->name;\n            uVar63 = paVar51->index;\n            pcVar26 = pcVar45 + paVar51->id + 0xc;\n            pvVar54 = pvVar75;\n            if (uVar63 != 0) {\n              if ((int)paVar51->size == 0) {\n                memcpy(pvVar75,local_a8,(size_t)pcVar26);\n                pvVar54 = (void *)((int)pvVar75 + (int)pcVar26);\n              }\n              else {\n                pbVar1 = &paVar51->vma;\n                bVar72 = *pbVar1;\n                bVar73 = *pbVar1;\n                p_Var15 = ibfd->xvec->bfd_putx32;\n                __dest = (void *)((int)pvVar75 + 0xc);\n                pvVar54 = (void *)((int)__dest + (int)pcVar45);\n                if (((*(asection **)((int)&paVar51->vma + 4) == local_78) &&\n                    (*(char **)pbVar1 == local_7c)) &&\n                   ((*(asection **)((int)&paVar51->lma + 4) == in_stack_ffffff28 &&\n                    (*(char **)&paVar51->lma == local_cc)))) {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  (*ibfd->xvec->bfd_putx32)(0,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                }\n                else {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  uVar48 = 8;\n                  if ((ibfd->xvec->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    uVar48 = 0x10;\n                  }\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar48,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                  pbVar13 = ibfd->xvec;\n                  if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    (*pbVar13->bfd_putx64)(bVar73,pvVar54);\n                    (*ibfd->xvec->bfd_putx64)(paVar51->lma,(void *)((int)pvVar54 + 8));\n                    pvVar54 = (void *)((int)pvVar54 + 0x10);\n                  }\n                  else {\n                    (*pbVar13->bfd_putx32)(bVar72,pvVar54);\n                    (*ibfd->xvec->bfd_putx32)(paVar51->lma,(void *)((int)pvVar54 + 4));\n                    pvVar54 = (void *)((int)pvVar54 + 8);\n                  }\n                }\n              }\n              local_7c = *(char **)&paVar51->vma;\n              local_78 = *(asection **)((int)&paVar51->vma + 4);\n              local_cc = *(char **)&paVar51->lma;\n              in_stack_ffffff28 = *(asection **)((int)&paVar51->lma + 4);\n            }\n            local_a8 = (asection *)((int)local_a8 + (int)pcVar26);\n            pvVar75 = pvVar54;\n          }\n          pcVar26 = (char *)((int)pvVar75 - (int)pvVar49);\n          paVar68 = (asection *)((int)pcVar26 >> 0x1f);\n          in_stack_ffffff24 = (bfd_section *)obfd;\n          memcpy(pbVar39,pvVar49,(size_t)pcVar26);\n          free(pvVar49);\n          free(local_74);\n          local_6c = (bfd_section *)obfd;\n          merged_size._0_4_ = pcVar26;\n          merged_size._4_4_ = paVar68;\n          if ((paVar53 != paVar68) || (pcVar27 != pcVar26)) {\n            pbVar35 = paVar30->output_section;\n            if ((pbVar35 != (bfd_section *)0x0) &&\n               (pbVar35 = (bfd_section *)bfd_set_section_size(obfd,pbVar35,pcVar26,paVar68),\n               pbVar35 != (bfd_section *)0x0)) goto LAB_00018e0e;\n            pcVar27 = (char *)dcgettext(0,"warning: failed to set merged notes size",5,pbVar35);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n          }\n        }\n        else {\n          pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,\n                                      local_7c);\nLAB_0001ae12:\n          if (pcVar27 != (char *)0x0) {\n            bfd_set_error(0x11);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            status = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n          local_6c = (bfd_section *)obfd;\n        }\n        free(merged_notes);\n        merged_notes = (bfd_byte *)0x0;\n        merge_notes = 0;\n        merged_size._0_4_ = (char *)0x0;\n        merged_size._4_4_ = (asection *)0x0;\n      }\n    }" else (compound_statement "{\n      iVar22 = bfd_get_full_section_contents(ibfd,paVar30,&merged_notes,pcVar27);\n      pbVar39 = merged_notes;\n      if (iVar22 == 0) {\n        pcVar27 = (char *)dcgettext(0,"warning: could not load note section",5,0);\n        bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n        free(merged_notes);\n        merged_notes = (bfd_byte *)0x0;\n        merge_notes = 0;\n      }\n      else {\n        iVar22 = bfd_get_reloc_upper_bound(ibfd,paVar30,paVar30,paVar30);\n        pcVar26 = extraout_ECX_01;\n        pbVar46 = ibfd;\n        if (0 < iVar22) {\n          pbVar46 = (bfd *)xmalloc(iVar22);\n          iVar22 = bfd_canonicalize_reloc(ibfd,paVar30,pbVar46,isympp);\n          free(pbVar46);\n          pcVar26 = extraout_ECX_02;\n          if (iVar22 == 0) goto LAB_0001ab09;\n          local_74 = (asection *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar75 = (void *)0x30;\n        pcVar45 = pcVar26;\n        uVar32 = __udivdi3(pcVar27,paVar53,0xc,0,pbVar46,0x30,pcVar26,pcVar26);\n        local_74 = (asection *)xcalloc(uVar32);\n        local_bc = 0;\n        local_c4 = (char *)0x0;\n        local_b8 = (asection *)0x0;\n        local_c0 = (void *)0x0;\n        local_84 = (asymbol **)0x0;\n        local_a8 = (asection *)0x0;\n        local_a4 = 0;\n        pbVar56 = pbVar39;\n        paVar68 = local_74;\n        local_7c = pcVar27;\n        local_78 = paVar53;\n        while (local_78 != (asection *)0x0 || (uint)-(int)local_78 < (uint)((char *)0xb < local_7c))\n        {\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56);\n          pcVar47 = (char *)((int)bVar72 + 3U & 0xfffffffc);\n          paVar68->name = pcVar47;\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56 + 4);\n          uVar63 = (int)bVar72 + 3U & 0xfffffffc;\n          paVar68->id = uVar63;\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56 + 8);\n          uVar48 = (uint)bVar72;\n          paVar68->index = uVar48;\n          if (1 < uVar48 - 0x100) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                                        (int)(bVar72 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          pcVar31 = pcVar47 + uVar63 + 0xc;\n          iVar22 = (int)local_78 - (int)(uint)(local_7c < pcVar31);\n          if (local_78 < (asection *)(uint)(local_7c < pcVar31)) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar22)\n            ;\n            goto LAB_0001ae12;\n          }\n          if (pcVar47 < (char *)0x2) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: name too small",5,\n                                        iVar22);\n            goto LAB_0001ae12;\n          }\n          paVar68->next = (bfd_section *)(pbVar56 + 0xc);\n          pbVar35 = (bfd_section *)(pbVar56 + (int)(pcVar47 + 0xc));\n          bVar69 = local_7c < pcVar31;\n          local_7c = local_7c + -(int)pcVar31;\n          local_78 = (asection *)((int)local_78 - (uint)bVar69);\n          paVar68->prev = pbVar35;\n          bVar6 = pbVar56[0xc];\n          uVar60 = (uint)bVar6;\n          if (bVar6 == 0x24) {\n            if ((pbVar56[0xd] == '\x01') && (pbVar56[0xe] == '1')) {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if (((((char *)0x4 < pcVar47) && (bVar6 == 0x47)) && (pbVar56[0xd] == 'A')) &&\n                  ((pbVar56[0xe] == '$' && (pbVar56[0xf] == '\x01')))) {\n            bVar6 = pbVar56[0x10];\n            uVar60 = (uint)bVar6;\n            if (bVar6 == 0x32) {\n              local_a8 = (asection *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar6 != 0x33) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "corrupt GNU build attribute note: unsupported version",\n                                            5,uVar60);\n                goto LAB_0001ae12;\n              }\n              local_84 = (asymbol **)((int)local_84 + 1);\n            }\n          }\n          if (uVar63 == 4) {\n            bVar73 = (*ibfd->xvec->bfd_getx32)(pbVar35);\nLAB_0001ade8:\n            bVar74 = 0xffffffffffffffff;\n          }\n          else if (uVar63 < 5) {\n            if (uVar63 != 0) {\nLAB_0001ae8d:\n              pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: bad description size"\n                                          ,5,uVar60);\n              goto LAB_0001ae12;\n            }\n            bVar74 = 0;\n            bVar73 = 0;\n          }\n          else if (uVar63 == 8) {\n            pbVar13 = ibfd->xvec;\n            if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n              bVar73 = (*pbVar13->bfd_getx64)(pbVar35);\n              goto LAB_0001ade8;\n            }\n            bVar73 = (*pbVar13->bfd_getx32)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx32)(&pbVar35->id);\n          }\n          else {\n            uVar60 = uVar63;\n            if (uVar63 != 0x10) goto LAB_0001ae8d;\n            bVar73 = (*ibfd->xvec->bfd_getx64)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx64)(&pbVar35->index);\n          }\n          if (uVar48 == 0x100) {\n            paVar51 = (asection *)(int)bVar73;\n            if (bVar73 == 0) {\n              paVar51 = local_b8;\n            }\n            uVar63 = (int)bVar74;\n            if (bVar74 == 0) {\n              uVar63 = local_bc;\n            }\n            *(undefined4 *)((int)&paVar68->vma + 4) = 0;\n            *(asection **)&paVar68->vma = paVar51;\n            *(uint *)&paVar68->lma = uVar63;\n            *(undefined4 *)((int)&paVar68->lma + 4) = 0;\n            local_bc = uVar63;\n            local_b8 = paVar51;\n          }\n          else {\n            pvVar49 = (void *)(int)bVar73;\n            if (bVar73 == 0) {\n              pvVar49 = local_c0;\n            }\n            pcVar47 = (char *)(int)bVar74;\n            if (bVar74 == 0) {\n              pcVar47 = local_c4;\n            }\n            *(undefined4 *)((int)&paVar68->vma + 4) = 0;\n            *(void **)&paVar68->vma = pvVar49;\n            *(char **)&paVar68->lma = pcVar47;\n            *(undefined4 *)((int)&paVar68->lma + 4) = 0;\n            local_c4 = pcVar47;\n            local_c0 = pvVar49;\n          }\n          if (*(char *)((int)&paVar68->next->name + (int)(paVar68->name + -1)) != '\0') {\n            pcVar27 = (char *)dcgettext(0,\n                                        "corrupt GNU build attribute note: name not NUL terminated",\n                                        5,paVar68->name);\n            goto LAB_0001ae12;\n          }\n          paVar68 = (asection *)((int)&paVar68->size + 4);\n          pbVar56 = pbVar56 + (int)pcVar31;\n        }\n        if (local_78 == (asection *)0x0 && local_7c == (char *)0x0) {\n          if (local_a4 == 0 && (local_a8 == (asection *)0x0 && local_84 == (asymbol **)0x0)) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: no known versions detected",\n                                        5,-(int)local_78 - (uint)((char *)0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (asection *)0x0 || local_84 != (asymbol **)0x0)) ||\n             ((local_a8 != (asection *)0x0 && (local_84 != (asymbol **)0x0)))) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: multiple different versions"\n                                        ,5,paVar68);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (asection *)0x1) || (local_84 == (asymbol **)0x1))\n          goto LAB_0001ae41;\n          uVar63 = -(uint)(local_a4 == 0) & 2;\n          iVar22 = uVar63 + 1;\n          if (*(char *)((int)&local_74->next->name + iVar22) != '\x01') {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: first note not version note"\n                                        ,5,iVar22);\n            goto LAB_0001ae12;\n          }\n          bVar69 = false;\n          iVar52 = uVar63 + 2;\n          pbVar35 = local_74;\nLAB_0001afd1:\n          paVar51 = pbVar35;\n          local_6c = (bfd_section *)((int)&paVar51->size + 4);\n          pbVar35 = local_6c;\n          if (local_6c < paVar68) {\n            if (*(int *)((int)&paVar51->rawsize + 4) == 0x100) {\n              local_a8 = (asection *)0x0;\n              pvVar49 = *(void **)&paVar51->compressed_size;\n              local_6c = paVar51;\n              while (pbVar50 = local_6c, local_74 <= local_6c) {\n                pbVar14 = local_6c->next;\n                cVar7 = *(char *)((int)&pbVar14->name + iVar22);\n                paVar21 = local_a8;\n                if ((((local_a8 != (asection *)0x0) || (local_6c->id == 0)) ||\n                    (paVar21 = local_6c, local_6c->index != 0x101)) &&\n                   ((local_a8 = paVar21, *(char *)((int)pvVar49 + iVar22) == cVar7 &&\n                    (local_6c->index == 0x100)))) {\n                  pcVar47 = pbVar35->name;\n                  if (cVar7 != '\x04') {\n                    pcVar31 = local_6c->name;\n                    if ((pcVar31 == pcVar47) &&\n                       (iVar43 = memcmp(pbVar14,pvVar49,(size_t)pcVar31), pvVar75 = pvVar49,\n                       pcVar26 = pcVar31, pcVar45 = pcVar47, iVar43 == 0)) {\n                      uVar63 = *(uint *)((int)&local_6c->lma + 4);\n                      pbVar50 = *(bfd_section **)&local_6c->lma;\n                      if (uVar63 != 0 || pbVar50 != (bfd_section *)0x0) {\n                        pbVar14 = paVar51->output_section;\n                        uVar48 = paVar51->alignment_power;\n                        if ((uVar48 != 0 || pbVar14 != (bfd_section *)0x0) &&\n                           ((-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)))) {\n                          *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;\n                          if (uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)) {\n                            *(bfd_section **)&local_6c->lma = pbVar14;\n                            *(uint *)((int)&local_6c->lma + 4) = uVar48;\n                          }\n                          bVar69 = true;\n                          if (local_84 != (asymbol **)0x0) {\n                            *(undefined4 *)&local_6c->size = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (asymbol **)0x0) {\n                      if ((((int)paVar51->rawsize == 0) && (local_a8 != (asection *)0x0)) &&\n                         (local_a8->index == 0)) {\n                        local_a8->index = 0x100;\n                      }\n                    }\n                    else {\n                      paVar51->relocation = (reloc_cache_entry *)0x1;\n                      *(undefined4 *)((int)&paVar51->rawsize + 4) = 0x101;\n                      *(undefined4 *)&local_6c->size = 1;\n                      local_6c->index = 0x101;\n                    }\n                    break;\n                  }\n                  uVar63 = 0;\n                  for (iVar43 = 0; (int)pcVar47 - iVar52 != iVar43; iVar43 = iVar43 + 1) {\n                    uVar63 = uVar63 | (uint)*(byte *)((int)pvVar49 + iVar43 + iVar52) <<\n                                      ((char)iVar43 * '\b' & 0x1fU);\n                  }\n                  local_6c = (bfd_section *)0x0;\n                  pcVar47 = pbVar50->name;\n                  pcVar31 = (char *)((int)&pbVar14->name + iVar52);\n                  for (uVar48 = 0; (int)pcVar47 - iVar52 != uVar48; uVar48 = uVar48 + 1) {\n                    local_6c = (bfd_section *)\n                               ((uint)local_6c |\n                               (uint)(byte)pcVar31[uVar48] << ((char)uVar48 * '\b' & 0x1fU));\n                  }\n                  uVar67 = 0;\n                  uVar63 = (int)local_6c + uVar63;\n                  for (uVar60 = uVar63; uVar60 != 0; uVar60 = uVar60 >> 8) {\n                    uVar67 = uVar67 + 1;\n                  }\n                  in_stack_ffffff28 = pbVar50;\n                  if (uVar67 < uVar48) {\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = (bfd_section *)&pbVar50[-1].entsize;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          if (!bVar69) goto LAB_0001ae41;\n          pvVar49 = (void *)xmalloc(pcVar27,pvVar75,pcVar26,pcVar45);\n          local_cc = local_7c;\n          pvVar75 = pvVar49;\n          in_stack_ffffff28 = local_78;\n          local_a8 = (asection *)pbVar39;\n          for (paVar51 = local_74; paVar51 < paVar68;\n              paVar51 = (asection *)((int)&paVar51->size + 4)) {\n            pcVar45 = paVar51->name;\n            uVar63 = paVar51->index;\n            pcVar26 = pcVar45 + paVar51->id + 0xc;\n            pvVar54 = pvVar75;\n            if (uVar63 != 0) {\n              if ((int)paVar51->size == 0) {\n                memcpy(pvVar75,local_a8,(size_t)pcVar26);\n                pvVar54 = (void *)((int)pvVar75 + (int)pcVar26);\n              }\n              else {\n                pbVar1 = &paVar51->vma;\n                bVar72 = *pbVar1;\n                bVar73 = *pbVar1;\n                p_Var15 = ibfd->xvec->bfd_putx32;\n                __dest = (void *)((int)pvVar75 + 0xc);\n                pvVar54 = (void *)((int)__dest + (int)pcVar45);\n                if (((*(asection **)((int)&paVar51->vma + 4) == local_78) &&\n                    (*(char **)pbVar1 == local_7c)) &&\n                   ((*(asection **)((int)&paVar51->lma + 4) == in_stack_ffffff28 &&\n                    (*(char **)&paVar51->lma == local_cc)))) {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  (*ibfd->xvec->bfd_putx32)(0,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                }\n                else {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  uVar48 = 8;\n                  if ((ibfd->xvec->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    uVar48 = 0x10;\n                  }\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar48,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                  pbVar13 = ibfd->xvec;\n                  if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    (*pbVar13->bfd_putx64)(bVar73,pvVar54);\n                    (*ibfd->xvec->bfd_putx64)(paVar51->lma,(void *)((int)pvVar54 + 8));\n                    pvVar54 = (void *)((int)pvVar54 + 0x10);\n                  }\n                  else {\n                    (*pbVar13->bfd_putx32)(bVar72,pvVar54);\n                    (*ibfd->xvec->bfd_putx32)(paVar51->lma,(void *)((int)pvVar54 + 4));\n                    pvVar54 = (void *)((int)pvVar54 + 8);\n                  }\n                }\n              }\n              local_7c = *(char **)&paVar51->vma;\n              local_78 = *(asection **)((int)&paVar51->vma + 4);\n              local_cc = *(char **)&paVar51->lma;\n              in_stack_ffffff28 = *(asection **)((int)&paVar51->lma + 4);\n            }\n            local_a8 = (asection *)((int)local_a8 + (int)pcVar26);\n            pvVar75 = pvVar54;\n          }\n          pcVar26 = (char *)((int)pvVar75 - (int)pvVar49);\n          paVar68 = (asection *)((int)pcVar26 >> 0x1f);\n          in_stack_ffffff24 = (bfd_section *)obfd;\n          memcpy(pbVar39,pvVar49,(size_t)pcVar26);\n          free(pvVar49);\n          free(local_74);\n          local_6c = (bfd_section *)obfd;\n          merged_size._0_4_ = pcVar26;\n          merged_size._4_4_ = paVar68;\n          if ((paVar53 != paVar68) || (pcVar27 != pcVar26)) {\n            pbVar35 = paVar30->output_section;\n            if ((pbVar35 != (bfd_section *)0x0) &&\n               (pbVar35 = (bfd_section *)bfd_set_section_size(obfd,pbVar35,pcVar26,paVar68),\n               pbVar35 != (bfd_section *)0x0)) goto LAB_00018e0e;\n            pcVar27 = (char *)dcgettext(0,"warning: failed to set merged notes size",5,pbVar35);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n          }\n        }\n        else {\n          pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,\n                                      local_7c);\nLAB_0001ae12:\n          if (pcVar27 != (char *)0x0) {\n            bfd_set_error(0x11);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            status = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n          local_6c = (bfd_section *)obfd;\n        }\n        free(merged_notes);\n        merged_notes = (bfd_byte *)0x0;\n        merge_notes = 0;\n        merged_size._0_4_ = (char *)0x0;\n        merged_size._4_4_ = (asection *)0x0;\n      }\n    }" { (expression_statement "iVar22 = bfd_get_full_section_contents(ibfd,paVar30,&merged_notes,pcVar27);" (assignment_expression "iVar22 = bfd_get_full_section_contents(ibfd,paVar30,&merged_notes,pcVar27)" identifier = (call_expression "bfd_get_full_section_contents(ibfd,paVar30,&merged_notes,pcVar27)" identifier (argument_list "(ibfd,paVar30,&merged_notes,pcVar27)" ( identifier , identifier , (pointer_expression "&merged_notes" & identifier) , identifier )))) ;) (expression_statement "pbVar39 = merged_notes;" (assignment_expression "pbVar39 = merged_notes" identifier = identifier) ;) (if_statement "if (iVar22 == 0) {\n        pcVar27 = (char *)dcgettext(0,"warning: could not load note section",5,0);\n        bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n        free(merged_notes);\n        merged_notes = (bfd_byte *)0x0;\n        merge_notes = 0;\n      }\n      else {\n        iVar22 = bfd_get_reloc_upper_bound(ibfd,paVar30,paVar30,paVar30);\n        pcVar26 = extraout_ECX_01;\n        pbVar46 = ibfd;\n        if (0 < iVar22) {\n          pbVar46 = (bfd *)xmalloc(iVar22);\n          iVar22 = bfd_canonicalize_reloc(ibfd,paVar30,pbVar46,isympp);\n          free(pbVar46);\n          pcVar26 = extraout_ECX_02;\n          if (iVar22 == 0) goto LAB_0001ab09;\n          local_74 = (asection *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar75 = (void *)0x30;\n        pcVar45 = pcVar26;\n        uVar32 = __udivdi3(pcVar27,paVar53,0xc,0,pbVar46,0x30,pcVar26,pcVar26);\n        local_74 = (asection *)xcalloc(uVar32);\n        local_bc = 0;\n        local_c4 = (char *)0x0;\n        local_b8 = (asection *)0x0;\n        local_c0 = (void *)0x0;\n        local_84 = (asymbol **)0x0;\n        local_a8 = (asection *)0x0;\n        local_a4 = 0;\n        pbVar56 = pbVar39;\n        paVar68 = local_74;\n        local_7c = pcVar27;\n        local_78 = paVar53;\n        while (local_78 != (asection *)0x0 || (uint)-(int)local_78 < (uint)((char *)0xb < local_7c))\n        {\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56);\n          pcVar47 = (char *)((int)bVar72 + 3U & 0xfffffffc);\n          paVar68->name = pcVar47;\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56 + 4);\n          uVar63 = (int)bVar72 + 3U & 0xfffffffc;\n          paVar68->id = uVar63;\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56 + 8);\n          uVar48 = (uint)bVar72;\n          paVar68->index = uVar48;\n          if (1 < uVar48 - 0x100) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                                        (int)(bVar72 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          pcVar31 = pcVar47 + uVar63 + 0xc;\n          iVar22 = (int)local_78 - (int)(uint)(local_7c < pcVar31);\n          if (local_78 < (asection *)(uint)(local_7c < pcVar31)) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar22)\n            ;\n            goto LAB_0001ae12;\n          }\n          if (pcVar47 < (char *)0x2) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: name too small",5,\n                                        iVar22);\n            goto LAB_0001ae12;\n          }\n          paVar68->next = (bfd_section *)(pbVar56 + 0xc);\n          pbVar35 = (bfd_section *)(pbVar56 + (int)(pcVar47 + 0xc));\n          bVar69 = local_7c < pcVar31;\n          local_7c = local_7c + -(int)pcVar31;\n          local_78 = (asection *)((int)local_78 - (uint)bVar69);\n          paVar68->prev = pbVar35;\n          bVar6 = pbVar56[0xc];\n          uVar60 = (uint)bVar6;\n          if (bVar6 == 0x24) {\n            if ((pbVar56[0xd] == '\x01') && (pbVar56[0xe] == '1')) {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if (((((char *)0x4 < pcVar47) && (bVar6 == 0x47)) && (pbVar56[0xd] == 'A')) &&\n                  ((pbVar56[0xe] == '$' && (pbVar56[0xf] == '\x01')))) {\n            bVar6 = pbVar56[0x10];\n            uVar60 = (uint)bVar6;\n            if (bVar6 == 0x32) {\n              local_a8 = (asection *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar6 != 0x33) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "corrupt GNU build attribute note: unsupported version",\n                                            5,uVar60);\n                goto LAB_0001ae12;\n              }\n              local_84 = (asymbol **)((int)local_84 + 1);\n            }\n          }\n          if (uVar63 == 4) {\n            bVar73 = (*ibfd->xvec->bfd_getx32)(pbVar35);\nLAB_0001ade8:\n            bVar74 = 0xffffffffffffffff;\n          }\n          else if (uVar63 < 5) {\n            if (uVar63 != 0) {\nLAB_0001ae8d:\n              pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: bad description size"\n                                          ,5,uVar60);\n              goto LAB_0001ae12;\n            }\n            bVar74 = 0;\n            bVar73 = 0;\n          }\n          else if (uVar63 == 8) {\n            pbVar13 = ibfd->xvec;\n            if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n              bVar73 = (*pbVar13->bfd_getx64)(pbVar35);\n              goto LAB_0001ade8;\n            }\n            bVar73 = (*pbVar13->bfd_getx32)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx32)(&pbVar35->id);\n          }\n          else {\n            uVar60 = uVar63;\n            if (uVar63 != 0x10) goto LAB_0001ae8d;\n            bVar73 = (*ibfd->xvec->bfd_getx64)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx64)(&pbVar35->index);\n          }\n          if (uVar48 == 0x100) {\n            paVar51 = (asection *)(int)bVar73;\n            if (bVar73 == 0) {\n              paVar51 = local_b8;\n            }\n            uVar63 = (int)bVar74;\n            if (bVar74 == 0) {\n              uVar63 = local_bc;\n            }\n            *(undefined4 *)((int)&paVar68->vma + 4) = 0;\n            *(asection **)&paVar68->vma = paVar51;\n            *(uint *)&paVar68->lma = uVar63;\n            *(undefined4 *)((int)&paVar68->lma + 4) = 0;\n            local_bc = uVar63;\n            local_b8 = paVar51;\n          }\n          else {\n            pvVar49 = (void *)(int)bVar73;\n            if (bVar73 == 0) {\n              pvVar49 = local_c0;\n            }\n            pcVar47 = (char *)(int)bVar74;\n            if (bVar74 == 0) {\n              pcVar47 = local_c4;\n            }\n            *(undefined4 *)((int)&paVar68->vma + 4) = 0;\n            *(void **)&paVar68->vma = pvVar49;\n            *(char **)&paVar68->lma = pcVar47;\n            *(undefined4 *)((int)&paVar68->lma + 4) = 0;\n            local_c4 = pcVar47;\n            local_c0 = pvVar49;\n          }\n          if (*(char *)((int)&paVar68->next->name + (int)(paVar68->name + -1)) != '\0') {\n            pcVar27 = (char *)dcgettext(0,\n                                        "corrupt GNU build attribute note: name not NUL terminated",\n                                        5,paVar68->name);\n            goto LAB_0001ae12;\n          }\n          paVar68 = (asection *)((int)&paVar68->size + 4);\n          pbVar56 = pbVar56 + (int)pcVar31;\n        }\n        if (local_78 == (asection *)0x0 && local_7c == (char *)0x0) {\n          if (local_a4 == 0 && (local_a8 == (asection *)0x0 && local_84 == (asymbol **)0x0)) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: no known versions detected",\n                                        5,-(int)local_78 - (uint)((char *)0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (asection *)0x0 || local_84 != (asymbol **)0x0)) ||\n             ((local_a8 != (asection *)0x0 && (local_84 != (asymbol **)0x0)))) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: multiple different versions"\n                                        ,5,paVar68);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (asection *)0x1) || (local_84 == (asymbol **)0x1))\n          goto LAB_0001ae41;\n          uVar63 = -(uint)(local_a4 == 0) & 2;\n          iVar22 = uVar63 + 1;\n          if (*(char *)((int)&local_74->next->name + iVar22) != '\x01') {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: first note not version note"\n                                        ,5,iVar22);\n            goto LAB_0001ae12;\n          }\n          bVar69 = false;\n          iVar52 = uVar63 + 2;\n          pbVar35 = local_74;\nLAB_0001afd1:\n          paVar51 = pbVar35;\n          local_6c = (bfd_section *)((int)&paVar51->size + 4);\n          pbVar35 = local_6c;\n          if (local_6c < paVar68) {\n            if (*(int *)((int)&paVar51->rawsize + 4) == 0x100) {\n              local_a8 = (asection *)0x0;\n              pvVar49 = *(void **)&paVar51->compressed_size;\n              local_6c = paVar51;\n              while (pbVar50 = local_6c, local_74 <= local_6c) {\n                pbVar14 = local_6c->next;\n                cVar7 = *(char *)((int)&pbVar14->name + iVar22);\n                paVar21 = local_a8;\n                if ((((local_a8 != (asection *)0x0) || (local_6c->id == 0)) ||\n                    (paVar21 = local_6c, local_6c->index != 0x101)) &&\n                   ((local_a8 = paVar21, *(char *)((int)pvVar49 + iVar22) == cVar7 &&\n                    (local_6c->index == 0x100)))) {\n                  pcVar47 = pbVar35->name;\n                  if (cVar7 != '\x04') {\n                    pcVar31 = local_6c->name;\n                    if ((pcVar31 == pcVar47) &&\n                       (iVar43 = memcmp(pbVar14,pvVar49,(size_t)pcVar31), pvVar75 = pvVar49,\n                       pcVar26 = pcVar31, pcVar45 = pcVar47, iVar43 == 0)) {\n                      uVar63 = *(uint *)((int)&local_6c->lma + 4);\n                      pbVar50 = *(bfd_section **)&local_6c->lma;\n                      if (uVar63 != 0 || pbVar50 != (bfd_section *)0x0) {\n                        pbVar14 = paVar51->output_section;\n                        uVar48 = paVar51->alignment_power;\n                        if ((uVar48 != 0 || pbVar14 != (bfd_section *)0x0) &&\n                           ((-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)))) {\n                          *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;\n                          if (uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)) {\n                            *(bfd_section **)&local_6c->lma = pbVar14;\n                            *(uint *)((int)&local_6c->lma + 4) = uVar48;\n                          }\n                          bVar69 = true;\n                          if (local_84 != (asymbol **)0x0) {\n                            *(undefined4 *)&local_6c->size = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (asymbol **)0x0) {\n                      if ((((int)paVar51->rawsize == 0) && (local_a8 != (asection *)0x0)) &&\n                         (local_a8->index == 0)) {\n                        local_a8->index = 0x100;\n                      }\n                    }\n                    else {\n                      paVar51->relocation = (reloc_cache_entry *)0x1;\n                      *(undefined4 *)((int)&paVar51->rawsize + 4) = 0x101;\n                      *(undefined4 *)&local_6c->size = 1;\n                      local_6c->index = 0x101;\n                    }\n                    break;\n                  }\n                  uVar63 = 0;\n                  for (iVar43 = 0; (int)pcVar47 - iVar52 != iVar43; iVar43 = iVar43 + 1) {\n                    uVar63 = uVar63 | (uint)*(byte *)((int)pvVar49 + iVar43 + iVar52) <<\n                                      ((char)iVar43 * '\b' & 0x1fU);\n                  }\n                  local_6c = (bfd_section *)0x0;\n                  pcVar47 = pbVar50->name;\n                  pcVar31 = (char *)((int)&pbVar14->name + iVar52);\n                  for (uVar48 = 0; (int)pcVar47 - iVar52 != uVar48; uVar48 = uVar48 + 1) {\n                    local_6c = (bfd_section *)\n                               ((uint)local_6c |\n                               (uint)(byte)pcVar31[uVar48] << ((char)uVar48 * '\b' & 0x1fU));\n                  }\n                  uVar67 = 0;\n                  uVar63 = (int)local_6c + uVar63;\n                  for (uVar60 = uVar63; uVar60 != 0; uVar60 = uVar60 >> 8) {\n                    uVar67 = uVar67 + 1;\n                  }\n                  in_stack_ffffff28 = pbVar50;\n                  if (uVar67 < uVar48) {\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = (bfd_section *)&pbVar50[-1].entsize;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          if (!bVar69) goto LAB_0001ae41;\n          pvVar49 = (void *)xmalloc(pcVar27,pvVar75,pcVar26,pcVar45);\n          local_cc = local_7c;\n          pvVar75 = pvVar49;\n          in_stack_ffffff28 = local_78;\n          local_a8 = (asection *)pbVar39;\n          for (paVar51 = local_74; paVar51 < paVar68;\n              paVar51 = (asection *)((int)&paVar51->size + 4)) {\n            pcVar45 = paVar51->name;\n            uVar63 = paVar51->index;\n            pcVar26 = pcVar45 + paVar51->id + 0xc;\n            pvVar54 = pvVar75;\n            if (uVar63 != 0) {\n              if ((int)paVar51->size == 0) {\n                memcpy(pvVar75,local_a8,(size_t)pcVar26);\n                pvVar54 = (void *)((int)pvVar75 + (int)pcVar26);\n              }\n              else {\n                pbVar1 = &paVar51->vma;\n                bVar72 = *pbVar1;\n                bVar73 = *pbVar1;\n                p_Var15 = ibfd->xvec->bfd_putx32;\n                __dest = (void *)((int)pvVar75 + 0xc);\n                pvVar54 = (void *)((int)__dest + (int)pcVar45);\n                if (((*(asection **)((int)&paVar51->vma + 4) == local_78) &&\n                    (*(char **)pbVar1 == local_7c)) &&\n                   ((*(asection **)((int)&paVar51->lma + 4) == in_stack_ffffff28 &&\n                    (*(char **)&paVar51->lma == local_cc)))) {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  (*ibfd->xvec->bfd_putx32)(0,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                }\n                else {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  uVar48 = 8;\n                  if ((ibfd->xvec->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    uVar48 = 0x10;\n                  }\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar48,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                  pbVar13 = ibfd->xvec;\n                  if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    (*pbVar13->bfd_putx64)(bVar73,pvVar54);\n                    (*ibfd->xvec->bfd_putx64)(paVar51->lma,(void *)((int)pvVar54 + 8));\n                    pvVar54 = (void *)((int)pvVar54 + 0x10);\n                  }\n                  else {\n                    (*pbVar13->bfd_putx32)(bVar72,pvVar54);\n                    (*ibfd->xvec->bfd_putx32)(paVar51->lma,(void *)((int)pvVar54 + 4));\n                    pvVar54 = (void *)((int)pvVar54 + 8);\n                  }\n                }\n              }\n              local_7c = *(char **)&paVar51->vma;\n              local_78 = *(asection **)((int)&paVar51->vma + 4);\n              local_cc = *(char **)&paVar51->lma;\n              in_stack_ffffff28 = *(asection **)((int)&paVar51->lma + 4);\n            }\n            local_a8 = (asection *)((int)local_a8 + (int)pcVar26);\n            pvVar75 = pvVar54;\n          }\n          pcVar26 = (char *)((int)pvVar75 - (int)pvVar49);\n          paVar68 = (asection *)((int)pcVar26 >> 0x1f);\n          in_stack_ffffff24 = (bfd_section *)obfd;\n          memcpy(pbVar39,pvVar49,(size_t)pcVar26);\n          free(pvVar49);\n          free(local_74);\n          local_6c = (bfd_section *)obfd;\n          merged_size._0_4_ = pcVar26;\n          merged_size._4_4_ = paVar68;\n          if ((paVar53 != paVar68) || (pcVar27 != pcVar26)) {\n            pbVar35 = paVar30->output_section;\n            if ((pbVar35 != (bfd_section *)0x0) &&\n               (pbVar35 = (bfd_section *)bfd_set_section_size(obfd,pbVar35,pcVar26,paVar68),\n               pbVar35 != (bfd_section *)0x0)) goto LAB_00018e0e;\n            pcVar27 = (char *)dcgettext(0,"warning: failed to set merged notes size",5,pbVar35);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n          }\n        }\n        else {\n          pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,\n                                      local_7c);\nLAB_0001ae12:\n          if (pcVar27 != (char *)0x0) {\n            bfd_set_error(0x11);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            status = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n          local_6c = (bfd_section *)obfd;\n        }\n        free(merged_notes);\n        merged_notes = (bfd_byte *)0x0;\n        merge_notes = 0;\n        merged_size._0_4_ = (char *)0x0;\n        merged_size._4_4_ = (asection *)0x0;\n      }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar27 = (char *)dcgettext(0,"warning: could not load note section",5,0);\n        bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n        free(merged_notes);\n        merged_notes = (bfd_byte *)0x0;\n        merge_notes = 0;\n      }" { (expression_statement "pcVar27 = (char *)dcgettext(0,"warning: could not load note section",5,0);" (assignment_expression "pcVar27 = (char *)dcgettext(0,"warning: could not load note section",5,0)" identifier = (cast_expression "(char *)dcgettext(0,"warning: could not load note section",5,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"warning: could not load note section",5,0)" identifier (argument_list "(0,"warning: could not load note section",5,0)" ( number_literal , (string_literal ""warning: could not load note section"" " string_content ") , number_literal , number_literal ))))) ;) (expression_statement "bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);" (call_expression "bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27)" identifier (argument_list "((char *)0x0,ibfd,paVar30,pcVar27)" ( (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        iVar22 = bfd_get_reloc_upper_bound(ibfd,paVar30,paVar30,paVar30);\n        pcVar26 = extraout_ECX_01;\n        pbVar46 = ibfd;\n        if (0 < iVar22) {\n          pbVar46 = (bfd *)xmalloc(iVar22);\n          iVar22 = bfd_canonicalize_reloc(ibfd,paVar30,pbVar46,isympp);\n          free(pbVar46);\n          pcVar26 = extraout_ECX_02;\n          if (iVar22 == 0) goto LAB_0001ab09;\n          local_74 = (asection *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar75 = (void *)0x30;\n        pcVar45 = pcVar26;\n        uVar32 = __udivdi3(pcVar27,paVar53,0xc,0,pbVar46,0x30,pcVar26,pcVar26);\n        local_74 = (asection *)xcalloc(uVar32);\n        local_bc = 0;\n        local_c4 = (char *)0x0;\n        local_b8 = (asection *)0x0;\n        local_c0 = (void *)0x0;\n        local_84 = (asymbol **)0x0;\n        local_a8 = (asection *)0x0;\n        local_a4 = 0;\n        pbVar56 = pbVar39;\n        paVar68 = local_74;\n        local_7c = pcVar27;\n        local_78 = paVar53;\n        while (local_78 != (asection *)0x0 || (uint)-(int)local_78 < (uint)((char *)0xb < local_7c))\n        {\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56);\n          pcVar47 = (char *)((int)bVar72 + 3U & 0xfffffffc);\n          paVar68->name = pcVar47;\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56 + 4);\n          uVar63 = (int)bVar72 + 3U & 0xfffffffc;\n          paVar68->id = uVar63;\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56 + 8);\n          uVar48 = (uint)bVar72;\n          paVar68->index = uVar48;\n          if (1 < uVar48 - 0x100) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                                        (int)(bVar72 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          pcVar31 = pcVar47 + uVar63 + 0xc;\n          iVar22 = (int)local_78 - (int)(uint)(local_7c < pcVar31);\n          if (local_78 < (asection *)(uint)(local_7c < pcVar31)) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar22)\n            ;\n            goto LAB_0001ae12;\n          }\n          if (pcVar47 < (char *)0x2) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: name too small",5,\n                                        iVar22);\n            goto LAB_0001ae12;\n          }\n          paVar68->next = (bfd_section *)(pbVar56 + 0xc);\n          pbVar35 = (bfd_section *)(pbVar56 + (int)(pcVar47 + 0xc));\n          bVar69 = local_7c < pcVar31;\n          local_7c = local_7c + -(int)pcVar31;\n          local_78 = (asection *)((int)local_78 - (uint)bVar69);\n          paVar68->prev = pbVar35;\n          bVar6 = pbVar56[0xc];\n          uVar60 = (uint)bVar6;\n          if (bVar6 == 0x24) {\n            if ((pbVar56[0xd] == '\x01') && (pbVar56[0xe] == '1')) {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if (((((char *)0x4 < pcVar47) && (bVar6 == 0x47)) && (pbVar56[0xd] == 'A')) &&\n                  ((pbVar56[0xe] == '$' && (pbVar56[0xf] == '\x01')))) {\n            bVar6 = pbVar56[0x10];\n            uVar60 = (uint)bVar6;\n            if (bVar6 == 0x32) {\n              local_a8 = (asection *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar6 != 0x33) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "corrupt GNU build attribute note: unsupported version",\n                                            5,uVar60);\n                goto LAB_0001ae12;\n              }\n              local_84 = (asymbol **)((int)local_84 + 1);\n            }\n          }\n          if (uVar63 == 4) {\n            bVar73 = (*ibfd->xvec->bfd_getx32)(pbVar35);\nLAB_0001ade8:\n            bVar74 = 0xffffffffffffffff;\n          }\n          else if (uVar63 < 5) {\n            if (uVar63 != 0) {\nLAB_0001ae8d:\n              pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: bad description size"\n                                          ,5,uVar60);\n              goto LAB_0001ae12;\n            }\n            bVar74 = 0;\n            bVar73 = 0;\n          }\n          else if (uVar63 == 8) {\n            pbVar13 = ibfd->xvec;\n            if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n              bVar73 = (*pbVar13->bfd_getx64)(pbVar35);\n              goto LAB_0001ade8;\n            }\n            bVar73 = (*pbVar13->bfd_getx32)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx32)(&pbVar35->id);\n          }\n          else {\n            uVar60 = uVar63;\n            if (uVar63 != 0x10) goto LAB_0001ae8d;\n            bVar73 = (*ibfd->xvec->bfd_getx64)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx64)(&pbVar35->index);\n          }\n          if (uVar48 == 0x100) {\n            paVar51 = (asection *)(int)bVar73;\n            if (bVar73 == 0) {\n              paVar51 = local_b8;\n            }\n            uVar63 = (int)bVar74;\n            if (bVar74 == 0) {\n              uVar63 = local_bc;\n            }\n            *(undefined4 *)((int)&paVar68->vma + 4) = 0;\n            *(asection **)&paVar68->vma = paVar51;\n            *(uint *)&paVar68->lma = uVar63;\n            *(undefined4 *)((int)&paVar68->lma + 4) = 0;\n            local_bc = uVar63;\n            local_b8 = paVar51;\n          }\n          else {\n            pvVar49 = (void *)(int)bVar73;\n            if (bVar73 == 0) {\n              pvVar49 = local_c0;\n            }\n            pcVar47 = (char *)(int)bVar74;\n            if (bVar74 == 0) {\n              pcVar47 = local_c4;\n            }\n            *(undefined4 *)((int)&paVar68->vma + 4) = 0;\n            *(void **)&paVar68->vma = pvVar49;\n            *(char **)&paVar68->lma = pcVar47;\n            *(undefined4 *)((int)&paVar68->lma + 4) = 0;\n            local_c4 = pcVar47;\n            local_c0 = pvVar49;\n          }\n          if (*(char *)((int)&paVar68->next->name + (int)(paVar68->name + -1)) != '\0') {\n            pcVar27 = (char *)dcgettext(0,\n                                        "corrupt GNU build attribute note: name not NUL terminated",\n                                        5,paVar68->name);\n            goto LAB_0001ae12;\n          }\n          paVar68 = (asection *)((int)&paVar68->size + 4);\n          pbVar56 = pbVar56 + (int)pcVar31;\n        }\n        if (local_78 == (asection *)0x0 && local_7c == (char *)0x0) {\n          if (local_a4 == 0 && (local_a8 == (asection *)0x0 && local_84 == (asymbol **)0x0)) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: no known versions detected",\n                                        5,-(int)local_78 - (uint)((char *)0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (asection *)0x0 || local_84 != (asymbol **)0x0)) ||\n             ((local_a8 != (asection *)0x0 && (local_84 != (asymbol **)0x0)))) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: multiple different versions"\n                                        ,5,paVar68);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (asection *)0x1) || (local_84 == (asymbol **)0x1))\n          goto LAB_0001ae41;\n          uVar63 = -(uint)(local_a4 == 0) & 2;\n          iVar22 = uVar63 + 1;\n          if (*(char *)((int)&local_74->next->name + iVar22) != '\x01') {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: first note not version note"\n                                        ,5,iVar22);\n            goto LAB_0001ae12;\n          }\n          bVar69 = false;\n          iVar52 = uVar63 + 2;\n          pbVar35 = local_74;\nLAB_0001afd1:\n          paVar51 = pbVar35;\n          local_6c = (bfd_section *)((int)&paVar51->size + 4);\n          pbVar35 = local_6c;\n          if (local_6c < paVar68) {\n            if (*(int *)((int)&paVar51->rawsize + 4) == 0x100) {\n              local_a8 = (asection *)0x0;\n              pvVar49 = *(void **)&paVar51->compressed_size;\n              local_6c = paVar51;\n              while (pbVar50 = local_6c, local_74 <= local_6c) {\n                pbVar14 = local_6c->next;\n                cVar7 = *(char *)((int)&pbVar14->name + iVar22);\n                paVar21 = local_a8;\n                if ((((local_a8 != (asection *)0x0) || (local_6c->id == 0)) ||\n                    (paVar21 = local_6c, local_6c->index != 0x101)) &&\n                   ((local_a8 = paVar21, *(char *)((int)pvVar49 + iVar22) == cVar7 &&\n                    (local_6c->index == 0x100)))) {\n                  pcVar47 = pbVar35->name;\n                  if (cVar7 != '\x04') {\n                    pcVar31 = local_6c->name;\n                    if ((pcVar31 == pcVar47) &&\n                       (iVar43 = memcmp(pbVar14,pvVar49,(size_t)pcVar31), pvVar75 = pvVar49,\n                       pcVar26 = pcVar31, pcVar45 = pcVar47, iVar43 == 0)) {\n                      uVar63 = *(uint *)((int)&local_6c->lma + 4);\n                      pbVar50 = *(bfd_section **)&local_6c->lma;\n                      if (uVar63 != 0 || pbVar50 != (bfd_section *)0x0) {\n                        pbVar14 = paVar51->output_section;\n                        uVar48 = paVar51->alignment_power;\n                        if ((uVar48 != 0 || pbVar14 != (bfd_section *)0x0) &&\n                           ((-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)))) {\n                          *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;\n                          if (uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)) {\n                            *(bfd_section **)&local_6c->lma = pbVar14;\n                            *(uint *)((int)&local_6c->lma + 4) = uVar48;\n                          }\n                          bVar69 = true;\n                          if (local_84 != (asymbol **)0x0) {\n                            *(undefined4 *)&local_6c->size = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (asymbol **)0x0) {\n                      if ((((int)paVar51->rawsize == 0) && (local_a8 != (asection *)0x0)) &&\n                         (local_a8->index == 0)) {\n                        local_a8->index = 0x100;\n                      }\n                    }\n                    else {\n                      paVar51->relocation = (reloc_cache_entry *)0x1;\n                      *(undefined4 *)((int)&paVar51->rawsize + 4) = 0x101;\n                      *(undefined4 *)&local_6c->size = 1;\n                      local_6c->index = 0x101;\n                    }\n                    break;\n                  }\n                  uVar63 = 0;\n                  for (iVar43 = 0; (int)pcVar47 - iVar52 != iVar43; iVar43 = iVar43 + 1) {\n                    uVar63 = uVar63 | (uint)*(byte *)((int)pvVar49 + iVar43 + iVar52) <<\n                                      ((char)iVar43 * '\b' & 0x1fU);\n                  }\n                  local_6c = (bfd_section *)0x0;\n                  pcVar47 = pbVar50->name;\n                  pcVar31 = (char *)((int)&pbVar14->name + iVar52);\n                  for (uVar48 = 0; (int)pcVar47 - iVar52 != uVar48; uVar48 = uVar48 + 1) {\n                    local_6c = (bfd_section *)\n                               ((uint)local_6c |\n                               (uint)(byte)pcVar31[uVar48] << ((char)uVar48 * '\b' & 0x1fU));\n                  }\n                  uVar67 = 0;\n                  uVar63 = (int)local_6c + uVar63;\n                  for (uVar60 = uVar63; uVar60 != 0; uVar60 = uVar60 >> 8) {\n                    uVar67 = uVar67 + 1;\n                  }\n                  in_stack_ffffff28 = pbVar50;\n                  if (uVar67 < uVar48) {\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = (bfd_section *)&pbVar50[-1].entsize;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          if (!bVar69) goto LAB_0001ae41;\n          pvVar49 = (void *)xmalloc(pcVar27,pvVar75,pcVar26,pcVar45);\n          local_cc = local_7c;\n          pvVar75 = pvVar49;\n          in_stack_ffffff28 = local_78;\n          local_a8 = (asection *)pbVar39;\n          for (paVar51 = local_74; paVar51 < paVar68;\n              paVar51 = (asection *)((int)&paVar51->size + 4)) {\n            pcVar45 = paVar51->name;\n            uVar63 = paVar51->index;\n            pcVar26 = pcVar45 + paVar51->id + 0xc;\n            pvVar54 = pvVar75;\n            if (uVar63 != 0) {\n              if ((int)paVar51->size == 0) {\n                memcpy(pvVar75,local_a8,(size_t)pcVar26);\n                pvVar54 = (void *)((int)pvVar75 + (int)pcVar26);\n              }\n              else {\n                pbVar1 = &paVar51->vma;\n                bVar72 = *pbVar1;\n                bVar73 = *pbVar1;\n                p_Var15 = ibfd->xvec->bfd_putx32;\n                __dest = (void *)((int)pvVar75 + 0xc);\n                pvVar54 = (void *)((int)__dest + (int)pcVar45);\n                if (((*(asection **)((int)&paVar51->vma + 4) == local_78) &&\n                    (*(char **)pbVar1 == local_7c)) &&\n                   ((*(asection **)((int)&paVar51->lma + 4) == in_stack_ffffff28 &&\n                    (*(char **)&paVar51->lma == local_cc)))) {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  (*ibfd->xvec->bfd_putx32)(0,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                }\n                else {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  uVar48 = 8;\n                  if ((ibfd->xvec->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    uVar48 = 0x10;\n                  }\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar48,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                  pbVar13 = ibfd->xvec;\n                  if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    (*pbVar13->bfd_putx64)(bVar73,pvVar54);\n                    (*ibfd->xvec->bfd_putx64)(paVar51->lma,(void *)((int)pvVar54 + 8));\n                    pvVar54 = (void *)((int)pvVar54 + 0x10);\n                  }\n                  else {\n                    (*pbVar13->bfd_putx32)(bVar72,pvVar54);\n                    (*ibfd->xvec->bfd_putx32)(paVar51->lma,(void *)((int)pvVar54 + 4));\n                    pvVar54 = (void *)((int)pvVar54 + 8);\n                  }\n                }\n              }\n              local_7c = *(char **)&paVar51->vma;\n              local_78 = *(asection **)((int)&paVar51->vma + 4);\n              local_cc = *(char **)&paVar51->lma;\n              in_stack_ffffff28 = *(asection **)((int)&paVar51->lma + 4);\n            }\n            local_a8 = (asection *)((int)local_a8 + (int)pcVar26);\n            pvVar75 = pvVar54;\n          }\n          pcVar26 = (char *)((int)pvVar75 - (int)pvVar49);\n          paVar68 = (asection *)((int)pcVar26 >> 0x1f);\n          in_stack_ffffff24 = (bfd_section *)obfd;\n          memcpy(pbVar39,pvVar49,(size_t)pcVar26);\n          free(pvVar49);\n          free(local_74);\n          local_6c = (bfd_section *)obfd;\n          merged_size._0_4_ = pcVar26;\n          merged_size._4_4_ = paVar68;\n          if ((paVar53 != paVar68) || (pcVar27 != pcVar26)) {\n            pbVar35 = paVar30->output_section;\n            if ((pbVar35 != (bfd_section *)0x0) &&\n               (pbVar35 = (bfd_section *)bfd_set_section_size(obfd,pbVar35,pcVar26,paVar68),\n               pbVar35 != (bfd_section *)0x0)) goto LAB_00018e0e;\n            pcVar27 = (char *)dcgettext(0,"warning: failed to set merged notes size",5,pbVar35);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n          }\n        }\n        else {\n          pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,\n                                      local_7c);\nLAB_0001ae12:\n          if (pcVar27 != (char *)0x0) {\n            bfd_set_error(0x11);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            status = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n          local_6c = (bfd_section *)obfd;\n        }\n        free(merged_notes);\n        merged_notes = (bfd_byte *)0x0;\n        merge_notes = 0;\n        merged_size._0_4_ = (char *)0x0;\n        merged_size._4_4_ = (asection *)0x0;\n      }" else (compound_statement "{\n        iVar22 = bfd_get_reloc_upper_bound(ibfd,paVar30,paVar30,paVar30);\n        pcVar26 = extraout_ECX_01;\n        pbVar46 = ibfd;\n        if (0 < iVar22) {\n          pbVar46 = (bfd *)xmalloc(iVar22);\n          iVar22 = bfd_canonicalize_reloc(ibfd,paVar30,pbVar46,isympp);\n          free(pbVar46);\n          pcVar26 = extraout_ECX_02;\n          if (iVar22 == 0) goto LAB_0001ab09;\n          local_74 = (asection *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar75 = (void *)0x30;\n        pcVar45 = pcVar26;\n        uVar32 = __udivdi3(pcVar27,paVar53,0xc,0,pbVar46,0x30,pcVar26,pcVar26);\n        local_74 = (asection *)xcalloc(uVar32);\n        local_bc = 0;\n        local_c4 = (char *)0x0;\n        local_b8 = (asection *)0x0;\n        local_c0 = (void *)0x0;\n        local_84 = (asymbol **)0x0;\n        local_a8 = (asection *)0x0;\n        local_a4 = 0;\n        pbVar56 = pbVar39;\n        paVar68 = local_74;\n        local_7c = pcVar27;\n        local_78 = paVar53;\n        while (local_78 != (asection *)0x0 || (uint)-(int)local_78 < (uint)((char *)0xb < local_7c))\n        {\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56);\n          pcVar47 = (char *)((int)bVar72 + 3U & 0xfffffffc);\n          paVar68->name = pcVar47;\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56 + 4);\n          uVar63 = (int)bVar72 + 3U & 0xfffffffc;\n          paVar68->id = uVar63;\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56 + 8);\n          uVar48 = (uint)bVar72;\n          paVar68->index = uVar48;\n          if (1 < uVar48 - 0x100) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                                        (int)(bVar72 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          pcVar31 = pcVar47 + uVar63 + 0xc;\n          iVar22 = (int)local_78 - (int)(uint)(local_7c < pcVar31);\n          if (local_78 < (asection *)(uint)(local_7c < pcVar31)) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar22)\n            ;\n            goto LAB_0001ae12;\n          }\n          if (pcVar47 < (char *)0x2) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: name too small",5,\n                                        iVar22);\n            goto LAB_0001ae12;\n          }\n          paVar68->next = (bfd_section *)(pbVar56 + 0xc);\n          pbVar35 = (bfd_section *)(pbVar56 + (int)(pcVar47 + 0xc));\n          bVar69 = local_7c < pcVar31;\n          local_7c = local_7c + -(int)pcVar31;\n          local_78 = (asection *)((int)local_78 - (uint)bVar69);\n          paVar68->prev = pbVar35;\n          bVar6 = pbVar56[0xc];\n          uVar60 = (uint)bVar6;\n          if (bVar6 == 0x24) {\n            if ((pbVar56[0xd] == '\x01') && (pbVar56[0xe] == '1')) {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if (((((char *)0x4 < pcVar47) && (bVar6 == 0x47)) && (pbVar56[0xd] == 'A')) &&\n                  ((pbVar56[0xe] == '$' && (pbVar56[0xf] == '\x01')))) {\n            bVar6 = pbVar56[0x10];\n            uVar60 = (uint)bVar6;\n            if (bVar6 == 0x32) {\n              local_a8 = (asection *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar6 != 0x33) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "corrupt GNU build attribute note: unsupported version",\n                                            5,uVar60);\n                goto LAB_0001ae12;\n              }\n              local_84 = (asymbol **)((int)local_84 + 1);\n            }\n          }\n          if (uVar63 == 4) {\n            bVar73 = (*ibfd->xvec->bfd_getx32)(pbVar35);\nLAB_0001ade8:\n            bVar74 = 0xffffffffffffffff;\n          }\n          else if (uVar63 < 5) {\n            if (uVar63 != 0) {\nLAB_0001ae8d:\n              pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: bad description size"\n                                          ,5,uVar60);\n              goto LAB_0001ae12;\n            }\n            bVar74 = 0;\n            bVar73 = 0;\n          }\n          else if (uVar63 == 8) {\n            pbVar13 = ibfd->xvec;\n            if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n              bVar73 = (*pbVar13->bfd_getx64)(pbVar35);\n              goto LAB_0001ade8;\n            }\n            bVar73 = (*pbVar13->bfd_getx32)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx32)(&pbVar35->id);\n          }\n          else {\n            uVar60 = uVar63;\n            if (uVar63 != 0x10) goto LAB_0001ae8d;\n            bVar73 = (*ibfd->xvec->bfd_getx64)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx64)(&pbVar35->index);\n          }\n          if (uVar48 == 0x100) {\n            paVar51 = (asection *)(int)bVar73;\n            if (bVar73 == 0) {\n              paVar51 = local_b8;\n            }\n            uVar63 = (int)bVar74;\n            if (bVar74 == 0) {\n              uVar63 = local_bc;\n            }\n            *(undefined4 *)((int)&paVar68->vma + 4) = 0;\n            *(asection **)&paVar68->vma = paVar51;\n            *(uint *)&paVar68->lma = uVar63;\n            *(undefined4 *)((int)&paVar68->lma + 4) = 0;\n            local_bc = uVar63;\n            local_b8 = paVar51;\n          }\n          else {\n            pvVar49 = (void *)(int)bVar73;\n            if (bVar73 == 0) {\n              pvVar49 = local_c0;\n            }\n            pcVar47 = (char *)(int)bVar74;\n            if (bVar74 == 0) {\n              pcVar47 = local_c4;\n            }\n            *(undefined4 *)((int)&paVar68->vma + 4) = 0;\n            *(void **)&paVar68->vma = pvVar49;\n            *(char **)&paVar68->lma = pcVar47;\n            *(undefined4 *)((int)&paVar68->lma + 4) = 0;\n            local_c4 = pcVar47;\n            local_c0 = pvVar49;\n          }\n          if (*(char *)((int)&paVar68->next->name + (int)(paVar68->name + -1)) != '\0') {\n            pcVar27 = (char *)dcgettext(0,\n                                        "corrupt GNU build attribute note: name not NUL terminated",\n                                        5,paVar68->name);\n            goto LAB_0001ae12;\n          }\n          paVar68 = (asection *)((int)&paVar68->size + 4);\n          pbVar56 = pbVar56 + (int)pcVar31;\n        }\n        if (local_78 == (asection *)0x0 && local_7c == (char *)0x0) {\n          if (local_a4 == 0 && (local_a8 == (asection *)0x0 && local_84 == (asymbol **)0x0)) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: no known versions detected",\n                                        5,-(int)local_78 - (uint)((char *)0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (asection *)0x0 || local_84 != (asymbol **)0x0)) ||\n             ((local_a8 != (asection *)0x0 && (local_84 != (asymbol **)0x0)))) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: multiple different versions"\n                                        ,5,paVar68);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (asection *)0x1) || (local_84 == (asymbol **)0x1))\n          goto LAB_0001ae41;\n          uVar63 = -(uint)(local_a4 == 0) & 2;\n          iVar22 = uVar63 + 1;\n          if (*(char *)((int)&local_74->next->name + iVar22) != '\x01') {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: first note not version note"\n                                        ,5,iVar22);\n            goto LAB_0001ae12;\n          }\n          bVar69 = false;\n          iVar52 = uVar63 + 2;\n          pbVar35 = local_74;\nLAB_0001afd1:\n          paVar51 = pbVar35;\n          local_6c = (bfd_section *)((int)&paVar51->size + 4);\n          pbVar35 = local_6c;\n          if (local_6c < paVar68) {\n            if (*(int *)((int)&paVar51->rawsize + 4) == 0x100) {\n              local_a8 = (asection *)0x0;\n              pvVar49 = *(void **)&paVar51->compressed_size;\n              local_6c = paVar51;\n              while (pbVar50 = local_6c, local_74 <= local_6c) {\n                pbVar14 = local_6c->next;\n                cVar7 = *(char *)((int)&pbVar14->name + iVar22);\n                paVar21 = local_a8;\n                if ((((local_a8 != (asection *)0x0) || (local_6c->id == 0)) ||\n                    (paVar21 = local_6c, local_6c->index != 0x101)) &&\n                   ((local_a8 = paVar21, *(char *)((int)pvVar49 + iVar22) == cVar7 &&\n                    (local_6c->index == 0x100)))) {\n                  pcVar47 = pbVar35->name;\n                  if (cVar7 != '\x04') {\n                    pcVar31 = local_6c->name;\n                    if ((pcVar31 == pcVar47) &&\n                       (iVar43 = memcmp(pbVar14,pvVar49,(size_t)pcVar31), pvVar75 = pvVar49,\n                       pcVar26 = pcVar31, pcVar45 = pcVar47, iVar43 == 0)) {\n                      uVar63 = *(uint *)((int)&local_6c->lma + 4);\n                      pbVar50 = *(bfd_section **)&local_6c->lma;\n                      if (uVar63 != 0 || pbVar50 != (bfd_section *)0x0) {\n                        pbVar14 = paVar51->output_section;\n                        uVar48 = paVar51->alignment_power;\n                        if ((uVar48 != 0 || pbVar14 != (bfd_section *)0x0) &&\n                           ((-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)))) {\n                          *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;\n                          if (uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)) {\n                            *(bfd_section **)&local_6c->lma = pbVar14;\n                            *(uint *)((int)&local_6c->lma + 4) = uVar48;\n                          }\n                          bVar69 = true;\n                          if (local_84 != (asymbol **)0x0) {\n                            *(undefined4 *)&local_6c->size = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (asymbol **)0x0) {\n                      if ((((int)paVar51->rawsize == 0) && (local_a8 != (asection *)0x0)) &&\n                         (local_a8->index == 0)) {\n                        local_a8->index = 0x100;\n                      }\n                    }\n                    else {\n                      paVar51->relocation = (reloc_cache_entry *)0x1;\n                      *(undefined4 *)((int)&paVar51->rawsize + 4) = 0x101;\n                      *(undefined4 *)&local_6c->size = 1;\n                      local_6c->index = 0x101;\n                    }\n                    break;\n                  }\n                  uVar63 = 0;\n                  for (iVar43 = 0; (int)pcVar47 - iVar52 != iVar43; iVar43 = iVar43 + 1) {\n                    uVar63 = uVar63 | (uint)*(byte *)((int)pvVar49 + iVar43 + iVar52) <<\n                                      ((char)iVar43 * '\b' & 0x1fU);\n                  }\n                  local_6c = (bfd_section *)0x0;\n                  pcVar47 = pbVar50->name;\n                  pcVar31 = (char *)((int)&pbVar14->name + iVar52);\n                  for (uVar48 = 0; (int)pcVar47 - iVar52 != uVar48; uVar48 = uVar48 + 1) {\n                    local_6c = (bfd_section *)\n                               ((uint)local_6c |\n                               (uint)(byte)pcVar31[uVar48] << ((char)uVar48 * '\b' & 0x1fU));\n                  }\n                  uVar67 = 0;\n                  uVar63 = (int)local_6c + uVar63;\n                  for (uVar60 = uVar63; uVar60 != 0; uVar60 = uVar60 >> 8) {\n                    uVar67 = uVar67 + 1;\n                  }\n                  in_stack_ffffff28 = pbVar50;\n                  if (uVar67 < uVar48) {\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = (bfd_section *)&pbVar50[-1].entsize;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          if (!bVar69) goto LAB_0001ae41;\n          pvVar49 = (void *)xmalloc(pcVar27,pvVar75,pcVar26,pcVar45);\n          local_cc = local_7c;\n          pvVar75 = pvVar49;\n          in_stack_ffffff28 = local_78;\n          local_a8 = (asection *)pbVar39;\n          for (paVar51 = local_74; paVar51 < paVar68;\n              paVar51 = (asection *)((int)&paVar51->size + 4)) {\n            pcVar45 = paVar51->name;\n            uVar63 = paVar51->index;\n            pcVar26 = pcVar45 + paVar51->id + 0xc;\n            pvVar54 = pvVar75;\n            if (uVar63 != 0) {\n              if ((int)paVar51->size == 0) {\n                memcpy(pvVar75,local_a8,(size_t)pcVar26);\n                pvVar54 = (void *)((int)pvVar75 + (int)pcVar26);\n              }\n              else {\n                pbVar1 = &paVar51->vma;\n                bVar72 = *pbVar1;\n                bVar73 = *pbVar1;\n                p_Var15 = ibfd->xvec->bfd_putx32;\n                __dest = (void *)((int)pvVar75 + 0xc);\n                pvVar54 = (void *)((int)__dest + (int)pcVar45);\n                if (((*(asection **)((int)&paVar51->vma + 4) == local_78) &&\n                    (*(char **)pbVar1 == local_7c)) &&\n                   ((*(asection **)((int)&paVar51->lma + 4) == in_stack_ffffff28 &&\n                    (*(char **)&paVar51->lma == local_cc)))) {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  (*ibfd->xvec->bfd_putx32)(0,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                }\n                else {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  uVar48 = 8;\n                  if ((ibfd->xvec->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    uVar48 = 0x10;\n                  }\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar48,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                  pbVar13 = ibfd->xvec;\n                  if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    (*pbVar13->bfd_putx64)(bVar73,pvVar54);\n                    (*ibfd->xvec->bfd_putx64)(paVar51->lma,(void *)((int)pvVar54 + 8));\n                    pvVar54 = (void *)((int)pvVar54 + 0x10);\n                  }\n                  else {\n                    (*pbVar13->bfd_putx32)(bVar72,pvVar54);\n                    (*ibfd->xvec->bfd_putx32)(paVar51->lma,(void *)((int)pvVar54 + 4));\n                    pvVar54 = (void *)((int)pvVar54 + 8);\n                  }\n                }\n              }\n              local_7c = *(char **)&paVar51->vma;\n              local_78 = *(asection **)((int)&paVar51->vma + 4);\n              local_cc = *(char **)&paVar51->lma;\n              in_stack_ffffff28 = *(asection **)((int)&paVar51->lma + 4);\n            }\n            local_a8 = (asection *)((int)local_a8 + (int)pcVar26);\n            pvVar75 = pvVar54;\n          }\n          pcVar26 = (char *)((int)pvVar75 - (int)pvVar49);\n          paVar68 = (asection *)((int)pcVar26 >> 0x1f);\n          in_stack_ffffff24 = (bfd_section *)obfd;\n          memcpy(pbVar39,pvVar49,(size_t)pcVar26);\n          free(pvVar49);\n          free(local_74);\n          local_6c = (bfd_section *)obfd;\n          merged_size._0_4_ = pcVar26;\n          merged_size._4_4_ = paVar68;\n          if ((paVar53 != paVar68) || (pcVar27 != pcVar26)) {\n            pbVar35 = paVar30->output_section;\n            if ((pbVar35 != (bfd_section *)0x0) &&\n               (pbVar35 = (bfd_section *)bfd_set_section_size(obfd,pbVar35,pcVar26,paVar68),\n               pbVar35 != (bfd_section *)0x0)) goto LAB_00018e0e;\n            pcVar27 = (char *)dcgettext(0,"warning: failed to set merged notes size",5,pbVar35);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n          }\n        }\n        else {\n          pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,\n                                      local_7c);\nLAB_0001ae12:\n          if (pcVar27 != (char *)0x0) {\n            bfd_set_error(0x11);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            status = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n          local_6c = (bfd_section *)obfd;\n        }\n        free(merged_notes);\n        merged_notes = (bfd_byte *)0x0;\n        merge_notes = 0;\n        merged_size._0_4_ = (char *)0x0;\n        merged_size._4_4_ = (asection *)0x0;\n      }" { (expression_statement "iVar22 = bfd_get_reloc_upper_bound(ibfd,paVar30,paVar30,paVar30);" (assignment_expression "iVar22 = bfd_get_reloc_upper_bound(ibfd,paVar30,paVar30,paVar30)" identifier = (call_expression "bfd_get_reloc_upper_bound(ibfd,paVar30,paVar30,paVar30)" identifier (argument_list "(ibfd,paVar30,paVar30,paVar30)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "pcVar26 = extraout_ECX_01;" (assignment_expression "pcVar26 = extraout_ECX_01" identifier = identifier) ;) (expression_statement "pbVar46 = ibfd;" (assignment_expression "pbVar46 = ibfd" identifier = identifier) ;) (if_statement "if (0 < iVar22) {\n          pbVar46 = (bfd *)xmalloc(iVar22);\n          iVar22 = bfd_canonicalize_reloc(ibfd,paVar30,pbVar46,isympp);\n          free(pbVar46);\n          pcVar26 = extraout_ECX_02;\n          if (iVar22 == 0) goto LAB_0001ab09;\n          local_74 = (asection *)0x0;\n          goto LAB_0001ae41;\n        }" if (parenthesized_expression "(0 < iVar22)" ( (binary_expression "0 < iVar22" number_literal < identifier) )) (compound_statement "{\n          pbVar46 = (bfd *)xmalloc(iVar22);\n          iVar22 = bfd_canonicalize_reloc(ibfd,paVar30,pbVar46,isympp);\n          free(pbVar46);\n          pcVar26 = extraout_ECX_02;\n          if (iVar22 == 0) goto LAB_0001ab09;\n          local_74 = (asection *)0x0;\n          goto LAB_0001ae41;\n        }" { (expression_statement "pbVar46 = (bfd *)xmalloc(iVar22);" (assignment_expression "pbVar46 = (bfd *)xmalloc(iVar22)" identifier = (cast_expression "(bfd *)xmalloc(iVar22)" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar22)" identifier (argument_list "(iVar22)" ( identifier ))))) ;) (expression_statement "iVar22 = bfd_canonicalize_reloc(ibfd,paVar30,pbVar46,isympp);" (assignment_expression "iVar22 = bfd_canonicalize_reloc(ibfd,paVar30,pbVar46,isympp)" identifier = (call_expression "bfd_canonicalize_reloc(ibfd,paVar30,pbVar46,isympp)" identifier (argument_list "(ibfd,paVar30,pbVar46,isympp)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "free(pbVar46);" (call_expression "free(pbVar46)" identifier (argument_list "(pbVar46)" ( identifier ))) ;) (expression_statement "pcVar26 = extraout_ECX_02;" (assignment_expression "pcVar26 = extraout_ECX_02" identifier = identifier) ;) (if_statement "if (iVar22 == 0) goto LAB_0001ab09;" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001ab09;" goto statement_identifier ;)) (expression_statement "local_74 = (asection *)0x0;" (assignment_expression "local_74 = (asection *)0x0" identifier = (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0001ae41;" goto statement_identifier ;) })) (labeled_statement "LAB_0001ab09:\n        pvVar75 = (void *)0x30;" statement_identifier : (expression_statement "pvVar75 = (void *)0x30;" (assignment_expression "pvVar75 = (void *)0x30" identifier = (cast_expression "(void *)0x30" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pcVar45 = pcVar26;" (assignment_expression "pcVar45 = pcVar26" identifier = identifier) ;) (expression_statement "uVar32 = __udivdi3(pcVar27,paVar53,0xc,0,pbVar46,0x30,pcVar26,pcVar26);" (assignment_expression "uVar32 = __udivdi3(pcVar27,paVar53,0xc,0,pbVar46,0x30,pcVar26,pcVar26)" identifier = (call_expression "__udivdi3(pcVar27,paVar53,0xc,0,pbVar46,0x30,pcVar26,pcVar26)" identifier (argument_list "(pcVar27,paVar53,0xc,0,pbVar46,0x30,pcVar26,pcVar26)" ( identifier , identifier , number_literal , number_literal , identifier , number_literal , identifier , identifier )))) ;) (expression_statement "local_74 = (asection *)xcalloc(uVar32);" (assignment_expression "local_74 = (asection *)xcalloc(uVar32)" identifier = (cast_expression "(asection *)xcalloc(uVar32)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xcalloc(uVar32)" identifier (argument_list "(uVar32)" ( identifier ))))) ;) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) (expression_statement "local_c4 = (char *)0x0;" (assignment_expression "local_c4 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_b8 = (asection *)0x0;" (assignment_expression "local_b8 = (asection *)0x0" identifier = (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_c0 = (void *)0x0;" (assignment_expression "local_c0 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_84 = (asymbol **)0x0;" (assignment_expression "local_84 = (asymbol **)0x0" identifier = (cast_expression "(asymbol **)0x0" ( (type_descriptor "asymbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "local_a8 = (asection *)0x0;" (assignment_expression "local_a8 = (asection *)0x0" identifier = (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" identifier = number_literal) ;) (expression_statement "pbVar56 = pbVar39;" (assignment_expression "pbVar56 = pbVar39" identifier = identifier) ;) (expression_statement "paVar68 = local_74;" (assignment_expression "paVar68 = local_74" identifier = identifier) ;) (expression_statement "local_7c = pcVar27;" (assignment_expression "local_7c = pcVar27" identifier = identifier) ;) (expression_statement "local_78 = paVar53;" (assignment_expression "local_78 = paVar53" identifier = identifier) ;) (while_statement "while (local_78 != (asection *)0x0 || (uint)-(int)local_78 < (uint)((char *)0xb < local_7c))\n        {\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56);\n          pcVar47 = (char *)((int)bVar72 + 3U & 0xfffffffc);\n          paVar68->name = pcVar47;\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56 + 4);\n          uVar63 = (int)bVar72 + 3U & 0xfffffffc;\n          paVar68->id = uVar63;\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56 + 8);\n          uVar48 = (uint)bVar72;\n          paVar68->index = uVar48;\n          if (1 < uVar48 - 0x100) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                                        (int)(bVar72 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          pcVar31 = pcVar47 + uVar63 + 0xc;\n          iVar22 = (int)local_78 - (int)(uint)(local_7c < pcVar31);\n          if (local_78 < (asection *)(uint)(local_7c < pcVar31)) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar22)\n            ;\n            goto LAB_0001ae12;\n          }\n          if (pcVar47 < (char *)0x2) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: name too small",5,\n                                        iVar22);\n            goto LAB_0001ae12;\n          }\n          paVar68->next = (bfd_section *)(pbVar56 + 0xc);\n          pbVar35 = (bfd_section *)(pbVar56 + (int)(pcVar47 + 0xc));\n          bVar69 = local_7c < pcVar31;\n          local_7c = local_7c + -(int)pcVar31;\n          local_78 = (asection *)((int)local_78 - (uint)bVar69);\n          paVar68->prev = pbVar35;\n          bVar6 = pbVar56[0xc];\n          uVar60 = (uint)bVar6;\n          if (bVar6 == 0x24) {\n            if ((pbVar56[0xd] == '\x01') && (pbVar56[0xe] == '1')) {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if (((((char *)0x4 < pcVar47) && (bVar6 == 0x47)) && (pbVar56[0xd] == 'A')) &&\n                  ((pbVar56[0xe] == '$' && (pbVar56[0xf] == '\x01')))) {\n            bVar6 = pbVar56[0x10];\n            uVar60 = (uint)bVar6;\n            if (bVar6 == 0x32) {\n              local_a8 = (asection *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar6 != 0x33) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "corrupt GNU build attribute note: unsupported version",\n                                            5,uVar60);\n                goto LAB_0001ae12;\n              }\n              local_84 = (asymbol **)((int)local_84 + 1);\n            }\n          }\n          if (uVar63 == 4) {\n            bVar73 = (*ibfd->xvec->bfd_getx32)(pbVar35);\nLAB_0001ade8:\n            bVar74 = 0xffffffffffffffff;\n          }\n          else if (uVar63 < 5) {\n            if (uVar63 != 0) {\nLAB_0001ae8d:\n              pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: bad description size"\n                                          ,5,uVar60);\n              goto LAB_0001ae12;\n            }\n            bVar74 = 0;\n            bVar73 = 0;\n          }\n          else if (uVar63 == 8) {\n            pbVar13 = ibfd->xvec;\n            if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n              bVar73 = (*pbVar13->bfd_getx64)(pbVar35);\n              goto LAB_0001ade8;\n            }\n            bVar73 = (*pbVar13->bfd_getx32)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx32)(&pbVar35->id);\n          }\n          else {\n            uVar60 = uVar63;\n            if (uVar63 != 0x10) goto LAB_0001ae8d;\n            bVar73 = (*ibfd->xvec->bfd_getx64)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx64)(&pbVar35->index);\n          }\n          if (uVar48 == 0x100) {\n            paVar51 = (asection *)(int)bVar73;\n            if (bVar73 == 0) {\n              paVar51 = local_b8;\n            }\n            uVar63 = (int)bVar74;\n            if (bVar74 == 0) {\n              uVar63 = local_bc;\n            }\n            *(undefined4 *)((int)&paVar68->vma + 4) = 0;\n            *(asection **)&paVar68->vma = paVar51;\n            *(uint *)&paVar68->lma = uVar63;\n            *(undefined4 *)((int)&paVar68->lma + 4) = 0;\n            local_bc = uVar63;\n            local_b8 = paVar51;\n          }\n          else {\n            pvVar49 = (void *)(int)bVar73;\n            if (bVar73 == 0) {\n              pvVar49 = local_c0;\n            }\n            pcVar47 = (char *)(int)bVar74;\n            if (bVar74 == 0) {\n              pcVar47 = local_c4;\n            }\n            *(undefined4 *)((int)&paVar68->vma + 4) = 0;\n            *(void **)&paVar68->vma = pvVar49;\n            *(char **)&paVar68->lma = pcVar47;\n            *(undefined4 *)((int)&paVar68->lma + 4) = 0;\n            local_c4 = pcVar47;\n            local_c0 = pvVar49;\n          }\n          if (*(char *)((int)&paVar68->next->name + (int)(paVar68->name + -1)) != '\0') {\n            pcVar27 = (char *)dcgettext(0,\n                                        "corrupt GNU build attribute note: name not NUL terminated",\n                                        5,paVar68->name);\n            goto LAB_0001ae12;\n          }\n          paVar68 = (asection *)((int)&paVar68->size + 4);\n          pbVar56 = pbVar56 + (int)pcVar31;\n        }" while (parenthesized_expression "(local_78 != (asection *)0x0 || (uint)-(int)local_78 < (uint)((char *)0xb < local_7c))" ( (binary_expression "local_78 != (asection *)0x0 || (uint)-(int)local_78 < (uint)((char *)0xb < local_7c)" (binary_expression "local_78 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "(uint)-(int)local_78 < (uint)((char *)0xb < local_7c)" (binary_expression "(uint)-(int)local_78" (parenthesized_expression "(uint)" ( identifier )) - (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier)) < (call_expression "(uint)((char *)0xb < local_7c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((char *)0xb < local_7c)" ( (binary_expression "(char *)0xb < local_7c" (cast_expression "(char *)0xb" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) ))))) )) (compound_statement "{\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56);\n          pcVar47 = (char *)((int)bVar72 + 3U & 0xfffffffc);\n          paVar68->name = pcVar47;\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56 + 4);\n          uVar63 = (int)bVar72 + 3U & 0xfffffffc;\n          paVar68->id = uVar63;\n          bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56 + 8);\n          uVar48 = (uint)bVar72;\n          paVar68->index = uVar48;\n          if (1 < uVar48 - 0x100) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                                        (int)(bVar72 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          pcVar31 = pcVar47 + uVar63 + 0xc;\n          iVar22 = (int)local_78 - (int)(uint)(local_7c < pcVar31);\n          if (local_78 < (asection *)(uint)(local_7c < pcVar31)) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar22)\n            ;\n            goto LAB_0001ae12;\n          }\n          if (pcVar47 < (char *)0x2) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: name too small",5,\n                                        iVar22);\n            goto LAB_0001ae12;\n          }\n          paVar68->next = (bfd_section *)(pbVar56 + 0xc);\n          pbVar35 = (bfd_section *)(pbVar56 + (int)(pcVar47 + 0xc));\n          bVar69 = local_7c < pcVar31;\n          local_7c = local_7c + -(int)pcVar31;\n          local_78 = (asection *)((int)local_78 - (uint)bVar69);\n          paVar68->prev = pbVar35;\n          bVar6 = pbVar56[0xc];\n          uVar60 = (uint)bVar6;\n          if (bVar6 == 0x24) {\n            if ((pbVar56[0xd] == '\x01') && (pbVar56[0xe] == '1')) {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if (((((char *)0x4 < pcVar47) && (bVar6 == 0x47)) && (pbVar56[0xd] == 'A')) &&\n                  ((pbVar56[0xe] == '$' && (pbVar56[0xf] == '\x01')))) {\n            bVar6 = pbVar56[0x10];\n            uVar60 = (uint)bVar6;\n            if (bVar6 == 0x32) {\n              local_a8 = (asection *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar6 != 0x33) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "corrupt GNU build attribute note: unsupported version",\n                                            5,uVar60);\n                goto LAB_0001ae12;\n              }\n              local_84 = (asymbol **)((int)local_84 + 1);\n            }\n          }\n          if (uVar63 == 4) {\n            bVar73 = (*ibfd->xvec->bfd_getx32)(pbVar35);\nLAB_0001ade8:\n            bVar74 = 0xffffffffffffffff;\n          }\n          else if (uVar63 < 5) {\n            if (uVar63 != 0) {\nLAB_0001ae8d:\n              pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: bad description size"\n                                          ,5,uVar60);\n              goto LAB_0001ae12;\n            }\n            bVar74 = 0;\n            bVar73 = 0;\n          }\n          else if (uVar63 == 8) {\n            pbVar13 = ibfd->xvec;\n            if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n              bVar73 = (*pbVar13->bfd_getx64)(pbVar35);\n              goto LAB_0001ade8;\n            }\n            bVar73 = (*pbVar13->bfd_getx32)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx32)(&pbVar35->id);\n          }\n          else {\n            uVar60 = uVar63;\n            if (uVar63 != 0x10) goto LAB_0001ae8d;\n            bVar73 = (*ibfd->xvec->bfd_getx64)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx64)(&pbVar35->index);\n          }\n          if (uVar48 == 0x100) {\n            paVar51 = (asection *)(int)bVar73;\n            if (bVar73 == 0) {\n              paVar51 = local_b8;\n            }\n            uVar63 = (int)bVar74;\n            if (bVar74 == 0) {\n              uVar63 = local_bc;\n            }\n            *(undefined4 *)((int)&paVar68->vma + 4) = 0;\n            *(asection **)&paVar68->vma = paVar51;\n            *(uint *)&paVar68->lma = uVar63;\n            *(undefined4 *)((int)&paVar68->lma + 4) = 0;\n            local_bc = uVar63;\n            local_b8 = paVar51;\n          }\n          else {\n            pvVar49 = (void *)(int)bVar73;\n            if (bVar73 == 0) {\n              pvVar49 = local_c0;\n            }\n            pcVar47 = (char *)(int)bVar74;\n            if (bVar74 == 0) {\n              pcVar47 = local_c4;\n            }\n            *(undefined4 *)((int)&paVar68->vma + 4) = 0;\n            *(void **)&paVar68->vma = pvVar49;\n            *(char **)&paVar68->lma = pcVar47;\n            *(undefined4 *)((int)&paVar68->lma + 4) = 0;\n            local_c4 = pcVar47;\n            local_c0 = pvVar49;\n          }\n          if (*(char *)((int)&paVar68->next->name + (int)(paVar68->name + -1)) != '\0') {\n            pcVar27 = (char *)dcgettext(0,\n                                        "corrupt GNU build attribute note: name not NUL terminated",\n                                        5,paVar68->name);\n            goto LAB_0001ae12;\n          }\n          paVar68 = (asection *)((int)&paVar68->size + 4);\n          pbVar56 = pbVar56 + (int)pcVar31;\n        }" { (expression_statement "bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56);" (assignment_expression "bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56)" identifier = (call_expression "(*ibfd->xvec->bfd_getx32)(pbVar56)" (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 "(pbVar56)" ( identifier )))) ;) (expression_statement "pcVar47 = (char *)((int)bVar72 + 3U & 0xfffffffc);" (assignment_expression "pcVar47 = (char *)((int)bVar72 + 3U & 0xfffffffc)" identifier = (cast_expression "(char *)((int)bVar72 + 3U & 0xfffffffc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)bVar72 + 3U & 0xfffffffc)" ( (binary_expression "(int)bVar72 + 3U & 0xfffffffc" (binary_expression "(int)bVar72 + 3U" (cast_expression "(int)bVar72" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal) )))) ;) (expression_statement "paVar68->name = pcVar47;" (assignment_expression "paVar68->name = pcVar47" (field_expression "paVar68->name" identifier -> field_identifier) = identifier) ;) (expression_statement "bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56 + 4);" (assignment_expression "bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56 + 4)" identifier = (call_expression "(*ibfd->xvec->bfd_getx32)(pbVar56 + 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 "(pbVar56 + 4)" ( (binary_expression "pbVar56 + 4" identifier + number_literal) )))) ;) (expression_statement "uVar63 = (int)bVar72 + 3U & 0xfffffffc;" (assignment_expression "uVar63 = (int)bVar72 + 3U & 0xfffffffc" identifier = (binary_expression "(int)bVar72 + 3U & 0xfffffffc" (binary_expression "(int)bVar72 + 3U" (cast_expression "(int)bVar72" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal)) ;) (expression_statement "paVar68->id = uVar63;" (assignment_expression "paVar68->id = uVar63" (field_expression "paVar68->id" identifier -> field_identifier) = identifier) ;) (expression_statement "bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56 + 8);" (assignment_expression "bVar72 = (*ibfd->xvec->bfd_getx32)(pbVar56 + 8)" identifier = (call_expression "(*ibfd->xvec->bfd_getx32)(pbVar56 + 8)" (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 "(pbVar56 + 8)" ( (binary_expression "pbVar56 + 8" identifier + number_literal) )))) ;) (expression_statement "uVar48 = (uint)bVar72;" (assignment_expression "uVar48 = (uint)bVar72" identifier = (cast_expression "(uint)bVar72" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "paVar68->index = uVar48;" (assignment_expression "paVar68->index = uVar48" (field_expression "paVar68->index" identifier -> field_identifier) = identifier) ;) (if_statement "if (1 < uVar48 - 0x100) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                                        (int)(bVar72 >> 0x20));\n            goto LAB_0001ae12;\n          }" if (parenthesized_expression "(1 < uVar48 - 0x100)" ( (binary_expression "1 < uVar48 - 0x100" number_literal < (binary_expression "uVar48 - 0x100" identifier - number_literal)) )) (compound_statement "{\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                                        (int)(bVar72 >> 0x20));\n            goto LAB_0001ae12;\n          }" { (expression_statement "pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                                        (int)(bVar72 >> 0x20));" (assignment_expression "pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                                        (int)(bVar72 >> 0x20))" identifier = (cast_expression "(char *)dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                                        (int)(bVar72 >> 0x20))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                                        (int)(bVar72 >> 0x20))" identifier (argument_list "(0,"corrupt GNU build attribute note: wrong note type",5,\n                                        (int)(bVar72 >> 0x20))" ( number_literal , (string_literal ""corrupt GNU build attribute note: wrong note type"" " string_content ") , number_literal , (cast_expression "(int)(bVar72 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(bVar72 >> 0x20)" ( (binary_expression "bVar72 >> 0x20" identifier >> number_literal) ))) ))))) ;) (goto_statement "goto LAB_0001ae12;" goto statement_identifier ;) })) (expression_statement "pcVar31 = pcVar47 + uVar63 + 0xc;" (assignment_expression "pcVar31 = pcVar47 + uVar63 + 0xc" identifier = (binary_expression "pcVar47 + uVar63 + 0xc" (binary_expression "pcVar47 + uVar63" identifier + identifier) + number_literal)) ;) (expression_statement "iVar22 = (int)local_78 - (int)(uint)(local_7c < pcVar31);" (assignment_expression "iVar22 = (int)local_78 - (int)(uint)(local_7c < pcVar31)" identifier = (binary_expression "(int)local_78 - (int)(uint)(local_7c < pcVar31)" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)(uint)(local_7c < pcVar31)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(local_7c < pcVar31)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_7c < pcVar31)" ( (binary_expression "local_7c < pcVar31" identifier < identifier) )))))) ;) (if_statement "if (local_78 < (asection *)(uint)(local_7c < pcVar31)) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar22)\n            ;\n            goto LAB_0001ae12;\n          }" if (parenthesized_expression "(local_78 < (asection *)(uint)(local_7c < pcVar31))" ( (binary_expression "local_78 < (asection *)(uint)(local_7c < pcVar31)" identifier < (cast_expression "(asection *)(uint)(local_7c < pcVar31)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(local_7c < pcVar31)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_7c < pcVar31)" ( (binary_expression "local_7c < pcVar31" identifier < identifier) ))))) )) (compound_statement "{\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar22)\n            ;\n            goto LAB_0001ae12;\n          }" { (expression_statement "pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar22)\n            ;" (assignment_expression "pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar22)" identifier = (cast_expression "(char *)dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar22)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar22)" identifier (argument_list "(0,"corrupt GNU build attribute note: note too big",5,iVar22)" ( number_literal , (string_literal ""corrupt GNU build attribute note: note too big"" " string_content ") , number_literal , identifier ))))) ;) (goto_statement "goto LAB_0001ae12;" goto statement_identifier ;) })) (if_statement "if (pcVar47 < (char *)0x2) {\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: name too small",5,\n                                        iVar22);\n            goto LAB_0001ae12;\n          }" if (parenthesized_expression "(pcVar47 < (char *)0x2)" ( (binary_expression "pcVar47 < (char *)0x2" identifier < (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: name too small",5,\n                                        iVar22);\n            goto LAB_0001ae12;\n          }" { (expression_statement "pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: name too small",5,\n                                        iVar22);" (assignment_expression "pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: name too small",5,\n                                        iVar22)" identifier = (cast_expression "(char *)dcgettext(0,"corrupt GNU build attribute note: name too small",5,\n                                        iVar22)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"corrupt GNU build attribute note: name too small",5,\n                                        iVar22)" identifier (argument_list "(0,"corrupt GNU build attribute note: name too small",5,\n                                        iVar22)" ( number_literal , (string_literal ""corrupt GNU build attribute note: name too small"" " string_content ") , number_literal , identifier ))))) ;) (goto_statement "goto LAB_0001ae12;" goto statement_identifier ;) })) (expression_statement "paVar68->next = (bfd_section *)(pbVar56 + 0xc);" (assignment_expression "paVar68->next = (bfd_section *)(pbVar56 + 0xc)" (field_expression "paVar68->next" identifier -> field_identifier) = (cast_expression "(bfd_section *)(pbVar56 + 0xc)" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar56 + 0xc)" ( (binary_expression "pbVar56 + 0xc" identifier + number_literal) )))) ;) (expression_statement "pbVar35 = (bfd_section *)(pbVar56 + (int)(pcVar47 + 0xc));" (assignment_expression "pbVar35 = (bfd_section *)(pbVar56 + (int)(pcVar47 + 0xc))" identifier = (cast_expression "(bfd_section *)(pbVar56 + (int)(pcVar47 + 0xc))" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar56 + (int)(pcVar47 + 0xc))" ( (binary_expression "pbVar56 + (int)(pcVar47 + 0xc)" identifier + (cast_expression "(int)(pcVar47 + 0xc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar47 + 0xc)" ( (binary_expression "pcVar47 + 0xc" identifier + number_literal) )))) )))) ;) (expression_statement "bVar69 = local_7c < pcVar31;" (assignment_expression "bVar69 = local_7c < pcVar31" identifier = (binary_expression "local_7c < pcVar31" identifier < identifier)) ;) (expression_statement "local_7c = local_7c + -(int)pcVar31;" (assignment_expression "local_7c = local_7c + -(int)pcVar31" identifier = (binary_expression "local_7c + -(int)pcVar31" identifier + (unary_expression "-(int)pcVar31" - (cast_expression "(int)pcVar31" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "local_78 = (asection *)((int)local_78 - (uint)bVar69);" (assignment_expression "local_78 = (asection *)((int)local_78 - (uint)bVar69)" identifier = (cast_expression "(asection *)((int)local_78 - (uint)bVar69)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_78 - (uint)bVar69)" ( (binary_expression "(int)local_78 - (uint)bVar69" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(uint)bVar69" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "paVar68->prev = pbVar35;" (assignment_expression "paVar68->prev = pbVar35" (field_expression "paVar68->prev" identifier -> field_identifier) = identifier) ;) (expression_statement "bVar6 = pbVar56[0xc];" (assignment_expression "bVar6 = pbVar56[0xc]" identifier = (subscript_expression "pbVar56[0xc]" identifier [ number_literal ])) ;) (expression_statement "uVar60 = (uint)bVar6;" (assignment_expression "uVar60 = (uint)bVar6" identifier = (cast_expression "(uint)bVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (bVar6 == 0x24) {\n            if ((pbVar56[0xd] == '\x01') && (pbVar56[0xe] == '1')) {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if (((((char *)0x4 < pcVar47) && (bVar6 == 0x47)) && (pbVar56[0xd] == 'A')) &&\n                  ((pbVar56[0xe] == '$' && (pbVar56[0xf] == '\x01')))) {\n            bVar6 = pbVar56[0x10];\n            uVar60 = (uint)bVar6;\n            if (bVar6 == 0x32) {\n              local_a8 = (asection *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar6 != 0x33) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "corrupt GNU build attribute note: unsupported version",\n                                            5,uVar60);\n                goto LAB_0001ae12;\n              }\n              local_84 = (asymbol **)((int)local_84 + 1);\n            }\n          }" if (parenthesized_expression "(bVar6 == 0x24)" ( (binary_expression "bVar6 == 0x24" identifier == number_literal) )) (compound_statement "{\n            if ((pbVar56[0xd] == '\x01') && (pbVar56[0xe] == '1')) {\n              local_a4 = local_a4 + 1;\n            }\n          }" { (if_statement "if ((pbVar56[0xd] == '\x01') && (pbVar56[0xe] == '1')) {\n              local_a4 = local_a4 + 1;\n            }" if (parenthesized_expression "((pbVar56[0xd] == '\x01') && (pbVar56[0xe] == '1'))" ( (binary_expression "(pbVar56[0xd] == '\x01') && (pbVar56[0xe] == '1')" (parenthesized_expression "(pbVar56[0xd] == '\x01')" ( (binary_expression "pbVar56[0xd] == '\x01'" (subscript_expression "pbVar56[0xd]" identifier [ number_literal ]) == (char_literal "'\x01'" ' escape_sequence ')) )) && (parenthesized_expression "(pbVar56[0xe] == '1')" ( (binary_expression "pbVar56[0xe] == '1'" (subscript_expression "pbVar56[0xe]" identifier [ number_literal ]) == (char_literal "'1'" ' character ')) ))) )) (compound_statement "{\n              local_a4 = local_a4 + 1;\n            }" { (expression_statement "local_a4 = local_a4 + 1;" (assignment_expression "local_a4 = local_a4 + 1" identifier = (binary_expression "local_a4 + 1" identifier + number_literal)) ;) })) }) (else_clause "else if (((((char *)0x4 < pcVar47) && (bVar6 == 0x47)) && (pbVar56[0xd] == 'A')) &&\n                  ((pbVar56[0xe] == '$' && (pbVar56[0xf] == '\x01')))) {\n            bVar6 = pbVar56[0x10];\n            uVar60 = (uint)bVar6;\n            if (bVar6 == 0x32) {\n              local_a8 = (asection *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar6 != 0x33) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "corrupt GNU build attribute note: unsupported version",\n                                            5,uVar60);\n                goto LAB_0001ae12;\n              }\n              local_84 = (asymbol **)((int)local_84 + 1);\n            }\n          }" else (if_statement "if (((((char *)0x4 < pcVar47) && (bVar6 == 0x47)) && (pbVar56[0xd] == 'A')) &&\n                  ((pbVar56[0xe] == '$' && (pbVar56[0xf] == '\x01')))) {\n            bVar6 = pbVar56[0x10];\n            uVar60 = (uint)bVar6;\n            if (bVar6 == 0x32) {\n              local_a8 = (asection *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar6 != 0x33) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "corrupt GNU build attribute note: unsupported version",\n                                            5,uVar60);\n                goto LAB_0001ae12;\n              }\n              local_84 = (asymbol **)((int)local_84 + 1);\n            }\n          }" if (parenthesized_expression "(((((char *)0x4 < pcVar47) && (bVar6 == 0x47)) && (pbVar56[0xd] == 'A')) &&\n                  ((pbVar56[0xe] == '$' && (pbVar56[0xf] == '\x01'))))" ( (binary_expression "((((char *)0x4 < pcVar47) && (bVar6 == 0x47)) && (pbVar56[0xd] == 'A')) &&\n                  ((pbVar56[0xe] == '$' && (pbVar56[0xf] == '\x01')))" (parenthesized_expression "((((char *)0x4 < pcVar47) && (bVar6 == 0x47)) && (pbVar56[0xd] == 'A'))" ( (binary_expression "(((char *)0x4 < pcVar47) && (bVar6 == 0x47)) && (pbVar56[0xd] == 'A')" (parenthesized_expression "(((char *)0x4 < pcVar47) && (bVar6 == 0x47))" ( (binary_expression "((char *)0x4 < pcVar47) && (bVar6 == 0x47)" (parenthesized_expression "((char *)0x4 < pcVar47)" ( (binary_expression "(char *)0x4 < pcVar47" (cast_expression "(char *)0x4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) && (parenthesized_expression "(bVar6 == 0x47)" ( (binary_expression "bVar6 == 0x47" identifier == number_literal) ))) )) && (parenthesized_expression "(pbVar56[0xd] == 'A')" ( (binary_expression "pbVar56[0xd] == 'A'" (subscript_expression "pbVar56[0xd]" identifier [ number_literal ]) == (char_literal "'A'" ' character ')) ))) )) && (parenthesized_expression "((pbVar56[0xe] == '$' && (pbVar56[0xf] == '\x01')))" ( (parenthesized_expression "(pbVar56[0xe] == '$' && (pbVar56[0xf] == '\x01'))" ( (binary_expression "pbVar56[0xe] == '$' && (pbVar56[0xf] == '\x01')" (binary_expression "pbVar56[0xe] == '$'" (subscript_expression "pbVar56[0xe]" identifier [ number_literal ]) == (char_literal "'$'" ' character ')) && (parenthesized_expression "(pbVar56[0xf] == '\x01')" ( (binary_expression "pbVar56[0xf] == '\x01'" (subscript_expression "pbVar56[0xf]" identifier [ number_literal ]) == (char_literal "'\x01'" ' escape_sequence ')) ))) )) ))) )) (compound_statement "{\n            bVar6 = pbVar56[0x10];\n            uVar60 = (uint)bVar6;\n            if (bVar6 == 0x32) {\n              local_a8 = (asection *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar6 != 0x33) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "corrupt GNU build attribute note: unsupported version",\n                                            5,uVar60);\n                goto LAB_0001ae12;\n              }\n              local_84 = (asymbol **)((int)local_84 + 1);\n            }\n          }" { (expression_statement "bVar6 = pbVar56[0x10];" (assignment_expression "bVar6 = pbVar56[0x10]" identifier = (subscript_expression "pbVar56[0x10]" identifier [ number_literal ])) ;) (expression_statement "uVar60 = (uint)bVar6;" (assignment_expression "uVar60 = (uint)bVar6" identifier = (cast_expression "(uint)bVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (bVar6 == 0x32) {\n              local_a8 = (asection *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar6 != 0x33) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "corrupt GNU build attribute note: unsupported version",\n                                            5,uVar60);\n                goto LAB_0001ae12;\n              }\n              local_84 = (asymbol **)((int)local_84 + 1);\n            }" if (parenthesized_expression "(bVar6 == 0x32)" ( (binary_expression "bVar6 == 0x32" identifier == number_literal) )) (compound_statement "{\n              local_a8 = (asection *)((int)local_a8 + 1);\n            }" { (expression_statement "local_a8 = (asection *)((int)local_a8 + 1);" (assignment_expression "local_a8 = (asection *)((int)local_a8 + 1)" identifier = (cast_expression "(asection *)((int)local_a8 + 1)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + 1)" ( (binary_expression "(int)local_a8 + 1" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) (else_clause "else {\n              if (bVar6 != 0x33) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "corrupt GNU build attribute note: unsupported version",\n                                            5,uVar60);\n                goto LAB_0001ae12;\n              }\n              local_84 = (asymbol **)((int)local_84 + 1);\n            }" else (compound_statement "{\n              if (bVar6 != 0x33) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "corrupt GNU build attribute note: unsupported version",\n                                            5,uVar60);\n                goto LAB_0001ae12;\n              }\n              local_84 = (asymbol **)((int)local_84 + 1);\n            }" { (if_statement "if (bVar6 != 0x33) {\n                pcVar27 = (char *)dcgettext(0,\n                                            "corrupt GNU build attribute note: unsupported version",\n                                            5,uVar60);\n                goto LAB_0001ae12;\n              }" if (parenthesized_expression "(bVar6 != 0x33)" ( (binary_expression "bVar6 != 0x33" identifier != number_literal) )) (compound_statement "{\n                pcVar27 = (char *)dcgettext(0,\n                                            "corrupt GNU build attribute note: unsupported version",\n                                            5,uVar60);\n                goto LAB_0001ae12;\n              }" { (expression_statement "pcVar27 = (char *)dcgettext(0,\n                                            "corrupt GNU build attribute note: unsupported version",\n                                            5,uVar60);" (assignment_expression "pcVar27 = (char *)dcgettext(0,\n                                            "corrupt GNU build attribute note: unsupported version",\n                                            5,uVar60)" identifier = (cast_expression "(char *)dcgettext(0,\n                                            "corrupt GNU build attribute note: unsupported version",\n                                            5,uVar60)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                            "corrupt GNU build attribute note: unsupported version",\n                                            5,uVar60)" identifier (argument_list "(0,\n                                            "corrupt GNU build attribute note: unsupported version",\n                                            5,uVar60)" ( number_literal , (string_literal ""corrupt GNU build attribute note: unsupported version"" " string_content ") , number_literal , identifier ))))) ;) (goto_statement "goto LAB_0001ae12;" goto statement_identifier ;) })) (expression_statement "local_84 = (asymbol **)((int)local_84 + 1);" (assignment_expression "local_84 = (asymbol **)((int)local_84 + 1)" identifier = (cast_expression "(asymbol **)((int)local_84 + 1)" ( (type_descriptor "asymbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_84 + 1)" ( (binary_expression "(int)local_84 + 1" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) })))) (if_statement "if (uVar63 == 4) {\n            bVar73 = (*ibfd->xvec->bfd_getx32)(pbVar35);\nLAB_0001ade8:\n            bVar74 = 0xffffffffffffffff;\n          }\n          else if (uVar63 < 5) {\n            if (uVar63 != 0) {\nLAB_0001ae8d:\n              pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: bad description size"\n                                          ,5,uVar60);\n              goto LAB_0001ae12;\n            }\n            bVar74 = 0;\n            bVar73 = 0;\n          }\n          else if (uVar63 == 8) {\n            pbVar13 = ibfd->xvec;\n            if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n              bVar73 = (*pbVar13->bfd_getx64)(pbVar35);\n              goto LAB_0001ade8;\n            }\n            bVar73 = (*pbVar13->bfd_getx32)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx32)(&pbVar35->id);\n          }\n          else {\n            uVar60 = uVar63;\n            if (uVar63 != 0x10) goto LAB_0001ae8d;\n            bVar73 = (*ibfd->xvec->bfd_getx64)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx64)(&pbVar35->index);\n          }" if (parenthesized_expression "(uVar63 == 4)" ( (binary_expression "uVar63 == 4" identifier == number_literal) )) (compound_statement "{\n            bVar73 = (*ibfd->xvec->bfd_getx32)(pbVar35);\nLAB_0001ade8:\n            bVar74 = 0xffffffffffffffff;\n          }" { (expression_statement "bVar73 = (*ibfd->xvec->bfd_getx32)(pbVar35);" (assignment_expression "bVar73 = (*ibfd->xvec->bfd_getx32)(pbVar35)" identifier = (call_expression "(*ibfd->xvec->bfd_getx32)(pbVar35)" (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 "(pbVar35)" ( identifier )))) ;) (labeled_statement "LAB_0001ade8:\n            bVar74 = 0xffffffffffffffff;" statement_identifier : (expression_statement "bVar74 = 0xffffffffffffffff;" (assignment_expression "bVar74 = 0xffffffffffffffff" identifier = number_literal) ;)) }) (else_clause "else if (uVar63 < 5) {\n            if (uVar63 != 0) {\nLAB_0001ae8d:\n              pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: bad description size"\n                                          ,5,uVar60);\n              goto LAB_0001ae12;\n            }\n            bVar74 = 0;\n            bVar73 = 0;\n          }\n          else if (uVar63 == 8) {\n            pbVar13 = ibfd->xvec;\n            if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n              bVar73 = (*pbVar13->bfd_getx64)(pbVar35);\n              goto LAB_0001ade8;\n            }\n            bVar73 = (*pbVar13->bfd_getx32)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx32)(&pbVar35->id);\n          }\n          else {\n            uVar60 = uVar63;\n            if (uVar63 != 0x10) goto LAB_0001ae8d;\n            bVar73 = (*ibfd->xvec->bfd_getx64)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx64)(&pbVar35->index);\n          }" else (if_statement "if (uVar63 < 5) {\n            if (uVar63 != 0) {\nLAB_0001ae8d:\n              pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: bad description size"\n                                          ,5,uVar60);\n              goto LAB_0001ae12;\n            }\n            bVar74 = 0;\n            bVar73 = 0;\n          }\n          else if (uVar63 == 8) {\n            pbVar13 = ibfd->xvec;\n            if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n              bVar73 = (*pbVar13->bfd_getx64)(pbVar35);\n              goto LAB_0001ade8;\n            }\n            bVar73 = (*pbVar13->bfd_getx32)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx32)(&pbVar35->id);\n          }\n          else {\n            uVar60 = uVar63;\n            if (uVar63 != 0x10) goto LAB_0001ae8d;\n            bVar73 = (*ibfd->xvec->bfd_getx64)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx64)(&pbVar35->index);\n          }" if (parenthesized_expression "(uVar63 < 5)" ( (binary_expression "uVar63 < 5" identifier < number_literal) )) (compound_statement "{\n            if (uVar63 != 0) {\nLAB_0001ae8d:\n              pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: bad description size"\n                                          ,5,uVar60);\n              goto LAB_0001ae12;\n            }\n            bVar74 = 0;\n            bVar73 = 0;\n          }" { (if_statement "if (uVar63 != 0) {\nLAB_0001ae8d:\n              pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: bad description size"\n                                          ,5,uVar60);\n              goto LAB_0001ae12;\n            }" if (parenthesized_expression "(uVar63 != 0)" ( (binary_expression "uVar63 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0001ae8d:\n              pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: bad description size"\n                                          ,5,uVar60);\n              goto LAB_0001ae12;\n            }" { (labeled_statement "LAB_0001ae8d:\n              pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: bad description size"\n                                          ,5,uVar60);" statement_identifier : (expression_statement "pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: bad description size"\n                                          ,5,uVar60);" (assignment_expression "pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute note: bad description size"\n                                          ,5,uVar60)" identifier = (cast_expression "(char *)dcgettext(0,"corrupt GNU build attribute note: bad description size"\n                                          ,5,uVar60)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"corrupt GNU build attribute note: bad description size"\n                                          ,5,uVar60)" identifier (argument_list "(0,"corrupt GNU build attribute note: bad description size"\n                                          ,5,uVar60)" ( number_literal , (string_literal ""corrupt GNU build attribute note: bad description size"" " string_content ") , number_literal , identifier ))))) ;)) (goto_statement "goto LAB_0001ae12;" goto statement_identifier ;) })) (expression_statement "bVar74 = 0;" (assignment_expression "bVar74 = 0" identifier = number_literal) ;) (expression_statement "bVar73 = 0;" (assignment_expression "bVar73 = 0" identifier = number_literal) ;) }) (else_clause "else if (uVar63 == 8) {\n            pbVar13 = ibfd->xvec;\n            if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n              bVar73 = (*pbVar13->bfd_getx64)(pbVar35);\n              goto LAB_0001ade8;\n            }\n            bVar73 = (*pbVar13->bfd_getx32)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx32)(&pbVar35->id);\n          }\n          else {\n            uVar60 = uVar63;\n            if (uVar63 != 0x10) goto LAB_0001ae8d;\n            bVar73 = (*ibfd->xvec->bfd_getx64)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx64)(&pbVar35->index);\n          }" else (if_statement "if (uVar63 == 8) {\n            pbVar13 = ibfd->xvec;\n            if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n              bVar73 = (*pbVar13->bfd_getx64)(pbVar35);\n              goto LAB_0001ade8;\n            }\n            bVar73 = (*pbVar13->bfd_getx32)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx32)(&pbVar35->id);\n          }\n          else {\n            uVar60 = uVar63;\n            if (uVar63 != 0x10) goto LAB_0001ae8d;\n            bVar73 = (*ibfd->xvec->bfd_getx64)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx64)(&pbVar35->index);\n          }" if (parenthesized_expression "(uVar63 == 8)" ( (binary_expression "uVar63 == 8" identifier == number_literal) )) (compound_statement "{\n            pbVar13 = ibfd->xvec;\n            if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n              bVar73 = (*pbVar13->bfd_getx64)(pbVar35);\n              goto LAB_0001ade8;\n            }\n            bVar73 = (*pbVar13->bfd_getx32)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx32)(&pbVar35->id);\n          }" { (expression_statement "pbVar13 = ibfd->xvec;" (assignment_expression "pbVar13 = ibfd->xvec" identifier = (field_expression "ibfd->xvec" identifier -> field_identifier)) ;) (if_statement "if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n              bVar73 = (*pbVar13->bfd_getx64)(pbVar35);\n              goto LAB_0001ade8;\n            }" if (parenthesized_expression "((pbVar13->flavour == bfd_target_elf_flavour) &&\n               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02'))" ( (binary_expression "(pbVar13->flavour == bfd_target_elf_flavour) &&\n               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')" (parenthesized_expression "(pbVar13->flavour == bfd_target_elf_flavour)" ( (binary_expression "pbVar13->flavour == bfd_target_elf_flavour" (field_expression "pbVar13->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              bVar73 = (*pbVar13->bfd_getx64)(pbVar35);\n              goto LAB_0001ade8;\n            }" { (expression_statement "bVar73 = (*pbVar13->bfd_getx64)(pbVar35);" (assignment_expression "bVar73 = (*pbVar13->bfd_getx64)(pbVar35)" identifier = (call_expression "(*pbVar13->bfd_getx64)(pbVar35)" (parenthesized_expression "(*pbVar13->bfd_getx64)" ( (pointer_expression "*pbVar13->bfd_getx64" * (field_expression "pbVar13->bfd_getx64" identifier -> field_identifier)) )) (argument_list "(pbVar35)" ( identifier )))) ;) (goto_statement "goto LAB_0001ade8;" goto statement_identifier ;) })) (expression_statement "bVar73 = (*pbVar13->bfd_getx32)(pbVar35);" (assignment_expression "bVar73 = (*pbVar13->bfd_getx32)(pbVar35)" identifier = (call_expression "(*pbVar13->bfd_getx32)(pbVar35)" (parenthesized_expression "(*pbVar13->bfd_getx32)" ( (pointer_expression "*pbVar13->bfd_getx32" * (field_expression "pbVar13->bfd_getx32" identifier -> field_identifier)) )) (argument_list "(pbVar35)" ( identifier )))) ;) (expression_statement "bVar74 = (*ibfd->xvec->bfd_getx32)(&pbVar35->id);" (assignment_expression "bVar74 = (*ibfd->xvec->bfd_getx32)(&pbVar35->id)" identifier = (call_expression "(*ibfd->xvec->bfd_getx32)(&pbVar35->id)" (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 "(&pbVar35->id)" ( (pointer_expression "&pbVar35->id" & (field_expression "pbVar35->id" identifier -> field_identifier)) )))) ;) }) (else_clause "else {\n            uVar60 = uVar63;\n            if (uVar63 != 0x10) goto LAB_0001ae8d;\n            bVar73 = (*ibfd->xvec->bfd_getx64)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx64)(&pbVar35->index);\n          }" else (compound_statement "{\n            uVar60 = uVar63;\n            if (uVar63 != 0x10) goto LAB_0001ae8d;\n            bVar73 = (*ibfd->xvec->bfd_getx64)(pbVar35);\n            bVar74 = (*ibfd->xvec->bfd_getx64)(&pbVar35->index);\n          }" { (expression_statement "uVar60 = uVar63;" (assignment_expression "uVar60 = uVar63" identifier = identifier) ;) (if_statement "if (uVar63 != 0x10) goto LAB_0001ae8d;" if (parenthesized_expression "(uVar63 != 0x10)" ( (binary_expression "uVar63 != 0x10" identifier != number_literal) )) (goto_statement "goto LAB_0001ae8d;" goto statement_identifier ;)) (expression_statement "bVar73 = (*ibfd->xvec->bfd_getx64)(pbVar35);" (assignment_expression "bVar73 = (*ibfd->xvec->bfd_getx64)(pbVar35)" identifier = (call_expression "(*ibfd->xvec->bfd_getx64)(pbVar35)" (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 "(pbVar35)" ( identifier )))) ;) (expression_statement "bVar74 = (*ibfd->xvec->bfd_getx64)(&pbVar35->index);" (assignment_expression "bVar74 = (*ibfd->xvec->bfd_getx64)(&pbVar35->index)" identifier = (call_expression "(*ibfd->xvec->bfd_getx64)(&pbVar35->index)" (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 "(&pbVar35->index)" ( (pointer_expression "&pbVar35->index" & (field_expression "pbVar35->index" identifier -> field_identifier)) )))) ;) }))))))) (if_statement "if (uVar48 == 0x100) {\n            paVar51 = (asection *)(int)bVar73;\n            if (bVar73 == 0) {\n              paVar51 = local_b8;\n            }\n            uVar63 = (int)bVar74;\n            if (bVar74 == 0) {\n              uVar63 = local_bc;\n            }\n            *(undefined4 *)((int)&paVar68->vma + 4) = 0;\n            *(asection **)&paVar68->vma = paVar51;\n            *(uint *)&paVar68->lma = uVar63;\n            *(undefined4 *)((int)&paVar68->lma + 4) = 0;\n            local_bc = uVar63;\n            local_b8 = paVar51;\n          }\n          else {\n            pvVar49 = (void *)(int)bVar73;\n            if (bVar73 == 0) {\n              pvVar49 = local_c0;\n            }\n            pcVar47 = (char *)(int)bVar74;\n            if (bVar74 == 0) {\n              pcVar47 = local_c4;\n            }\n            *(undefined4 *)((int)&paVar68->vma + 4) = 0;\n            *(void **)&paVar68->vma = pvVar49;\n            *(char **)&paVar68->lma = pcVar47;\n            *(undefined4 *)((int)&paVar68->lma + 4) = 0;\n            local_c4 = pcVar47;\n            local_c0 = pvVar49;\n          }" if (parenthesized_expression "(uVar48 == 0x100)" ( (binary_expression "uVar48 == 0x100" identifier == number_literal) )) (compound_statement "{\n            paVar51 = (asection *)(int)bVar73;\n            if (bVar73 == 0) {\n              paVar51 = local_b8;\n            }\n            uVar63 = (int)bVar74;\n            if (bVar74 == 0) {\n              uVar63 = local_bc;\n            }\n            *(undefined4 *)((int)&paVar68->vma + 4) = 0;\n            *(asection **)&paVar68->vma = paVar51;\n            *(uint *)&paVar68->lma = uVar63;\n            *(undefined4 *)((int)&paVar68->lma + 4) = 0;\n            local_bc = uVar63;\n            local_b8 = paVar51;\n          }" { (expression_statement "paVar51 = (asection *)(int)bVar73;" (assignment_expression "paVar51 = (asection *)(int)bVar73" identifier = (cast_expression "(asection *)(int)bVar73" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)bVar73" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (bVar73 == 0) {\n              paVar51 = local_b8;\n            }" if (parenthesized_expression "(bVar73 == 0)" ( (binary_expression "bVar73 == 0" identifier == number_literal) )) (compound_statement "{\n              paVar51 = local_b8;\n            }" { (expression_statement "paVar51 = local_b8;" (assignment_expression "paVar51 = local_b8" identifier = identifier) ;) })) (expression_statement "uVar63 = (int)bVar74;" (assignment_expression "uVar63 = (int)bVar74" identifier = (cast_expression "(int)bVar74" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (bVar74 == 0) {\n              uVar63 = local_bc;\n            }" if (parenthesized_expression "(bVar74 == 0)" ( (binary_expression "bVar74 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar63 = local_bc;\n            }" { (expression_statement "uVar63 = local_bc;" (assignment_expression "uVar63 = local_bc" identifier = identifier) ;) })) (expression_statement "*(undefined4 *)((int)&paVar68->vma + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&paVar68->vma + 4) = 0" (pointer_expression "*(undefined4 *)((int)&paVar68->vma + 4)" * (cast_expression "(undefined4 *)((int)&paVar68->vma + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar68->vma + 4)" ( (binary_expression "(int)&paVar68->vma + 4" (cast_expression "(int)&paVar68->vma" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar68->vma" & (field_expression "paVar68->vma" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(asection **)&paVar68->vma = paVar51;" (assignment_expression "*(asection **)&paVar68->vma = paVar51" (pointer_expression "*(asection **)&paVar68->vma" * (cast_expression "(asection **)&paVar68->vma" ( (type_descriptor "asection **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&paVar68->vma" & (field_expression "paVar68->vma" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(uint *)&paVar68->lma = uVar63;" (assignment_expression "*(uint *)&paVar68->lma = uVar63" (pointer_expression "*(uint *)&paVar68->lma" * (cast_expression "(uint *)&paVar68->lma" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar68->lma" & (field_expression "paVar68->lma" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(undefined4 *)((int)&paVar68->lma + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&paVar68->lma + 4) = 0" (pointer_expression "*(undefined4 *)((int)&paVar68->lma + 4)" * (cast_expression "(undefined4 *)((int)&paVar68->lma + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar68->lma + 4)" ( (binary_expression "(int)&paVar68->lma + 4" (cast_expression "(int)&paVar68->lma" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar68->lma" & (field_expression "paVar68->lma" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "local_bc = uVar63;" (assignment_expression "local_bc = uVar63" identifier = identifier) ;) (expression_statement "local_b8 = paVar51;" (assignment_expression "local_b8 = paVar51" identifier = identifier) ;) }) (else_clause "else {\n            pvVar49 = (void *)(int)bVar73;\n            if (bVar73 == 0) {\n              pvVar49 = local_c0;\n            }\n            pcVar47 = (char *)(int)bVar74;\n            if (bVar74 == 0) {\n              pcVar47 = local_c4;\n            }\n            *(undefined4 *)((int)&paVar68->vma + 4) = 0;\n            *(void **)&paVar68->vma = pvVar49;\n            *(char **)&paVar68->lma = pcVar47;\n            *(undefined4 *)((int)&paVar68->lma + 4) = 0;\n            local_c4 = pcVar47;\n            local_c0 = pvVar49;\n          }" else (compound_statement "{\n            pvVar49 = (void *)(int)bVar73;\n            if (bVar73 == 0) {\n              pvVar49 = local_c0;\n            }\n            pcVar47 = (char *)(int)bVar74;\n            if (bVar74 == 0) {\n              pcVar47 = local_c4;\n            }\n            *(undefined4 *)((int)&paVar68->vma + 4) = 0;\n            *(void **)&paVar68->vma = pvVar49;\n            *(char **)&paVar68->lma = pcVar47;\n            *(undefined4 *)((int)&paVar68->lma + 4) = 0;\n            local_c4 = pcVar47;\n            local_c0 = pvVar49;\n          }" { (expression_statement "pvVar49 = (void *)(int)bVar73;" (assignment_expression "pvVar49 = (void *)(int)bVar73" identifier = (cast_expression "(void *)(int)bVar73" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)bVar73" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (bVar73 == 0) {\n              pvVar49 = local_c0;\n            }" if (parenthesized_expression "(bVar73 == 0)" ( (binary_expression "bVar73 == 0" identifier == number_literal) )) (compound_statement "{\n              pvVar49 = local_c0;\n            }" { (expression_statement "pvVar49 = local_c0;" (assignment_expression "pvVar49 = local_c0" identifier = identifier) ;) })) (expression_statement "pcVar47 = (char *)(int)bVar74;" (assignment_expression "pcVar47 = (char *)(int)bVar74" identifier = (cast_expression "(char *)(int)bVar74" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)bVar74" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (bVar74 == 0) {\n              pcVar47 = local_c4;\n            }" if (parenthesized_expression "(bVar74 == 0)" ( (binary_expression "bVar74 == 0" identifier == number_literal) )) (compound_statement "{\n              pcVar47 = local_c4;\n            }" { (expression_statement "pcVar47 = local_c4;" (assignment_expression "pcVar47 = local_c4" identifier = identifier) ;) })) (expression_statement "*(undefined4 *)((int)&paVar68->vma + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&paVar68->vma + 4) = 0" (pointer_expression "*(undefined4 *)((int)&paVar68->vma + 4)" * (cast_expression "(undefined4 *)((int)&paVar68->vma + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar68->vma + 4)" ( (binary_expression "(int)&paVar68->vma + 4" (cast_expression "(int)&paVar68->vma" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar68->vma" & (field_expression "paVar68->vma" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(void **)&paVar68->vma = pvVar49;" (assignment_expression "*(void **)&paVar68->vma = pvVar49" (pointer_expression "*(void **)&paVar68->vma" * (cast_expression "(void **)&paVar68->vma" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&paVar68->vma" & (field_expression "paVar68->vma" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(char **)&paVar68->lma = pcVar47;" (assignment_expression "*(char **)&paVar68->lma = pcVar47" (pointer_expression "*(char **)&paVar68->lma" * (cast_expression "(char **)&paVar68->lma" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&paVar68->lma" & (field_expression "paVar68->lma" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(undefined4 *)((int)&paVar68->lma + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&paVar68->lma + 4) = 0" (pointer_expression "*(undefined4 *)((int)&paVar68->lma + 4)" * (cast_expression "(undefined4 *)((int)&paVar68->lma + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar68->lma + 4)" ( (binary_expression "(int)&paVar68->lma + 4" (cast_expression "(int)&paVar68->lma" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar68->lma" & (field_expression "paVar68->lma" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "local_c4 = pcVar47;" (assignment_expression "local_c4 = pcVar47" identifier = identifier) ;) (expression_statement "local_c0 = pvVar49;" (assignment_expression "local_c0 = pvVar49" identifier = identifier) ;) }))) (if_statement "if (*(char *)((int)&paVar68->next->name + (int)(paVar68->name + -1)) != '\0') {\n            pcVar27 = (char *)dcgettext(0,\n                                        "corrupt GNU build attribute note: name not NUL terminated",\n                                        5,paVar68->name);\n            goto LAB_0001ae12;\n          }" if (parenthesized_expression "(*(char *)((int)&paVar68->next->name + (int)(paVar68->name + -1)) != '\0')" ( (binary_expression "*(char *)((int)&paVar68->next->name + (int)(paVar68->name + -1)) != '\0'" (pointer_expression "*(char *)((int)&paVar68->next->name + (int)(paVar68->name + -1))" * (cast_expression "(char *)((int)&paVar68->next->name + (int)(paVar68->name + -1))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar68->next->name + (int)(paVar68->name + -1))" ( (binary_expression "(int)&paVar68->next->name + (int)(paVar68->name + -1)" (cast_expression "(int)&paVar68->next->name" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar68->next->name" & (field_expression "paVar68->next->name" (field_expression "paVar68->next" identifier -> field_identifier) -> field_identifier))) + (cast_expression "(int)(paVar68->name + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(paVar68->name + -1)" ( (binary_expression "paVar68->name + -1" (field_expression "paVar68->name" identifier -> field_identifier) + number_literal) )))) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            pcVar27 = (char *)dcgettext(0,\n                                        "corrupt GNU build attribute note: name not NUL terminated",\n                                        5,paVar68->name);\n            goto LAB_0001ae12;\n          }" { (expression_statement "pcVar27 = (char *)dcgettext(0,\n                                        "corrupt GNU build attribute note: name not NUL terminated",\n                                        5,paVar68->name);" (assignment_expression "pcVar27 = (char *)dcgettext(0,\n                                        "corrupt GNU build attribute note: name not NUL terminated",\n                                        5,paVar68->name)" identifier = (cast_expression "(char *)dcgettext(0,\n                                        "corrupt GNU build attribute note: name not NUL terminated",\n                                        5,paVar68->name)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                        "corrupt GNU build attribute note: name not NUL terminated",\n                                        5,paVar68->name)" identifier (argument_list "(0,\n                                        "corrupt GNU build attribute note: name not NUL terminated",\n                                        5,paVar68->name)" ( number_literal , (string_literal ""corrupt GNU build attribute note: name not NUL terminated"" " string_content ") , number_literal , (field_expression "paVar68->name" identifier -> field_identifier) ))))) ;) (goto_statement "goto LAB_0001ae12;" goto statement_identifier ;) })) (expression_statement "paVar68 = (asection *)((int)&paVar68->size + 4);" (assignment_expression "paVar68 = (asection *)((int)&paVar68->size + 4)" identifier = (cast_expression "(asection *)((int)&paVar68->size + 4)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar68->size + 4)" ( (binary_expression "(int)&paVar68->size + 4" (cast_expression "(int)&paVar68->size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar68->size" & (field_expression "paVar68->size" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "pbVar56 = pbVar56 + (int)pcVar31;" (assignment_expression "pbVar56 = pbVar56 + (int)pcVar31" identifier = (binary_expression "pbVar56 + (int)pcVar31" identifier + (cast_expression "(int)pcVar31" ( (type_descriptor "int" primitive_type) ) identifier))) ;) })) (if_statement "if (local_78 == (asection *)0x0 && local_7c == (char *)0x0) {\n          if (local_a4 == 0 && (local_a8 == (asection *)0x0 && local_84 == (asymbol **)0x0)) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: no known versions detected",\n                                        5,-(int)local_78 - (uint)((char *)0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (asection *)0x0 || local_84 != (asymbol **)0x0)) ||\n             ((local_a8 != (asection *)0x0 && (local_84 != (asymbol **)0x0)))) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: multiple different versions"\n                                        ,5,paVar68);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (asection *)0x1) || (local_84 == (asymbol **)0x1))\n          goto LAB_0001ae41;\n          uVar63 = -(uint)(local_a4 == 0) & 2;\n          iVar22 = uVar63 + 1;\n          if (*(char *)((int)&local_74->next->name + iVar22) != '\x01') {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: first note not version note"\n                                        ,5,iVar22);\n            goto LAB_0001ae12;\n          }\n          bVar69 = false;\n          iVar52 = uVar63 + 2;\n          pbVar35 = local_74;\nLAB_0001afd1:\n          paVar51 = pbVar35;\n          local_6c = (bfd_section *)((int)&paVar51->size + 4);\n          pbVar35 = local_6c;\n          if (local_6c < paVar68) {\n            if (*(int *)((int)&paVar51->rawsize + 4) == 0x100) {\n              local_a8 = (asection *)0x0;\n              pvVar49 = *(void **)&paVar51->compressed_size;\n              local_6c = paVar51;\n              while (pbVar50 = local_6c, local_74 <= local_6c) {\n                pbVar14 = local_6c->next;\n                cVar7 = *(char *)((int)&pbVar14->name + iVar22);\n                paVar21 = local_a8;\n                if ((((local_a8 != (asection *)0x0) || (local_6c->id == 0)) ||\n                    (paVar21 = local_6c, local_6c->index != 0x101)) &&\n                   ((local_a8 = paVar21, *(char *)((int)pvVar49 + iVar22) == cVar7 &&\n                    (local_6c->index == 0x100)))) {\n                  pcVar47 = pbVar35->name;\n                  if (cVar7 != '\x04') {\n                    pcVar31 = local_6c->name;\n                    if ((pcVar31 == pcVar47) &&\n                       (iVar43 = memcmp(pbVar14,pvVar49,(size_t)pcVar31), pvVar75 = pvVar49,\n                       pcVar26 = pcVar31, pcVar45 = pcVar47, iVar43 == 0)) {\n                      uVar63 = *(uint *)((int)&local_6c->lma + 4);\n                      pbVar50 = *(bfd_section **)&local_6c->lma;\n                      if (uVar63 != 0 || pbVar50 != (bfd_section *)0x0) {\n                        pbVar14 = paVar51->output_section;\n                        uVar48 = paVar51->alignment_power;\n                        if ((uVar48 != 0 || pbVar14 != (bfd_section *)0x0) &&\n                           ((-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)))) {\n                          *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;\n                          if (uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)) {\n                            *(bfd_section **)&local_6c->lma = pbVar14;\n                            *(uint *)((int)&local_6c->lma + 4) = uVar48;\n                          }\n                          bVar69 = true;\n                          if (local_84 != (asymbol **)0x0) {\n                            *(undefined4 *)&local_6c->size = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (asymbol **)0x0) {\n                      if ((((int)paVar51->rawsize == 0) && (local_a8 != (asection *)0x0)) &&\n                         (local_a8->index == 0)) {\n                        local_a8->index = 0x100;\n                      }\n                    }\n                    else {\n                      paVar51->relocation = (reloc_cache_entry *)0x1;\n                      *(undefined4 *)((int)&paVar51->rawsize + 4) = 0x101;\n                      *(undefined4 *)&local_6c->size = 1;\n                      local_6c->index = 0x101;\n                    }\n                    break;\n                  }\n                  uVar63 = 0;\n                  for (iVar43 = 0; (int)pcVar47 - iVar52 != iVar43; iVar43 = iVar43 + 1) {\n                    uVar63 = uVar63 | (uint)*(byte *)((int)pvVar49 + iVar43 + iVar52) <<\n                                      ((char)iVar43 * '\b' & 0x1fU);\n                  }\n                  local_6c = (bfd_section *)0x0;\n                  pcVar47 = pbVar50->name;\n                  pcVar31 = (char *)((int)&pbVar14->name + iVar52);\n                  for (uVar48 = 0; (int)pcVar47 - iVar52 != uVar48; uVar48 = uVar48 + 1) {\n                    local_6c = (bfd_section *)\n                               ((uint)local_6c |\n                               (uint)(byte)pcVar31[uVar48] << ((char)uVar48 * '\b' & 0x1fU));\n                  }\n                  uVar67 = 0;\n                  uVar63 = (int)local_6c + uVar63;\n                  for (uVar60 = uVar63; uVar60 != 0; uVar60 = uVar60 >> 8) {\n                    uVar67 = uVar67 + 1;\n                  }\n                  in_stack_ffffff28 = pbVar50;\n                  if (uVar67 < uVar48) {\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = (bfd_section *)&pbVar50[-1].entsize;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          if (!bVar69) goto LAB_0001ae41;\n          pvVar49 = (void *)xmalloc(pcVar27,pvVar75,pcVar26,pcVar45);\n          local_cc = local_7c;\n          pvVar75 = pvVar49;\n          in_stack_ffffff28 = local_78;\n          local_a8 = (asection *)pbVar39;\n          for (paVar51 = local_74; paVar51 < paVar68;\n              paVar51 = (asection *)((int)&paVar51->size + 4)) {\n            pcVar45 = paVar51->name;\n            uVar63 = paVar51->index;\n            pcVar26 = pcVar45 + paVar51->id + 0xc;\n            pvVar54 = pvVar75;\n            if (uVar63 != 0) {\n              if ((int)paVar51->size == 0) {\n                memcpy(pvVar75,local_a8,(size_t)pcVar26);\n                pvVar54 = (void *)((int)pvVar75 + (int)pcVar26);\n              }\n              else {\n                pbVar1 = &paVar51->vma;\n                bVar72 = *pbVar1;\n                bVar73 = *pbVar1;\n                p_Var15 = ibfd->xvec->bfd_putx32;\n                __dest = (void *)((int)pvVar75 + 0xc);\n                pvVar54 = (void *)((int)__dest + (int)pcVar45);\n                if (((*(asection **)((int)&paVar51->vma + 4) == local_78) &&\n                    (*(char **)pbVar1 == local_7c)) &&\n                   ((*(asection **)((int)&paVar51->lma + 4) == in_stack_ffffff28 &&\n                    (*(char **)&paVar51->lma == local_cc)))) {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  (*ibfd->xvec->bfd_putx32)(0,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                }\n                else {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  uVar48 = 8;\n                  if ((ibfd->xvec->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    uVar48 = 0x10;\n                  }\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar48,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                  pbVar13 = ibfd->xvec;\n                  if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    (*pbVar13->bfd_putx64)(bVar73,pvVar54);\n                    (*ibfd->xvec->bfd_putx64)(paVar51->lma,(void *)((int)pvVar54 + 8));\n                    pvVar54 = (void *)((int)pvVar54 + 0x10);\n                  }\n                  else {\n                    (*pbVar13->bfd_putx32)(bVar72,pvVar54);\n                    (*ibfd->xvec->bfd_putx32)(paVar51->lma,(void *)((int)pvVar54 + 4));\n                    pvVar54 = (void *)((int)pvVar54 + 8);\n                  }\n                }\n              }\n              local_7c = *(char **)&paVar51->vma;\n              local_78 = *(asection **)((int)&paVar51->vma + 4);\n              local_cc = *(char **)&paVar51->lma;\n              in_stack_ffffff28 = *(asection **)((int)&paVar51->lma + 4);\n            }\n            local_a8 = (asection *)((int)local_a8 + (int)pcVar26);\n            pvVar75 = pvVar54;\n          }\n          pcVar26 = (char *)((int)pvVar75 - (int)pvVar49);\n          paVar68 = (asection *)((int)pcVar26 >> 0x1f);\n          in_stack_ffffff24 = (bfd_section *)obfd;\n          memcpy(pbVar39,pvVar49,(size_t)pcVar26);\n          free(pvVar49);\n          free(local_74);\n          local_6c = (bfd_section *)obfd;\n          merged_size._0_4_ = pcVar26;\n          merged_size._4_4_ = paVar68;\n          if ((paVar53 != paVar68) || (pcVar27 != pcVar26)) {\n            pbVar35 = paVar30->output_section;\n            if ((pbVar35 != (bfd_section *)0x0) &&\n               (pbVar35 = (bfd_section *)bfd_set_section_size(obfd,pbVar35,pcVar26,paVar68),\n               pbVar35 != (bfd_section *)0x0)) goto LAB_00018e0e;\n            pcVar27 = (char *)dcgettext(0,"warning: failed to set merged notes size",5,pbVar35);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n          }\n        }\n        else {\n          pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,\n                                      local_7c);\nLAB_0001ae12:\n          if (pcVar27 != (char *)0x0) {\n            bfd_set_error(0x11);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            status = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n          local_6c = (bfd_section *)obfd;\n        }" if (parenthesized_expression "(local_78 == (asection *)0x0 && local_7c == (char *)0x0)" ( (binary_expression "local_78 == (asection *)0x0 && local_7c == (char *)0x0" (binary_expression "local_78 == (asection *)0x0" identifier == (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "local_7c == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n          if (local_a4 == 0 && (local_a8 == (asection *)0x0 && local_84 == (asymbol **)0x0)) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: no known versions detected",\n                                        5,-(int)local_78 - (uint)((char *)0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (asection *)0x0 || local_84 != (asymbol **)0x0)) ||\n             ((local_a8 != (asection *)0x0 && (local_84 != (asymbol **)0x0)))) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: multiple different versions"\n                                        ,5,paVar68);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (asection *)0x1) || (local_84 == (asymbol **)0x1))\n          goto LAB_0001ae41;\n          uVar63 = -(uint)(local_a4 == 0) & 2;\n          iVar22 = uVar63 + 1;\n          if (*(char *)((int)&local_74->next->name + iVar22) != '\x01') {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: first note not version note"\n                                        ,5,iVar22);\n            goto LAB_0001ae12;\n          }\n          bVar69 = false;\n          iVar52 = uVar63 + 2;\n          pbVar35 = local_74;\nLAB_0001afd1:\n          paVar51 = pbVar35;\n          local_6c = (bfd_section *)((int)&paVar51->size + 4);\n          pbVar35 = local_6c;\n          if (local_6c < paVar68) {\n            if (*(int *)((int)&paVar51->rawsize + 4) == 0x100) {\n              local_a8 = (asection *)0x0;\n              pvVar49 = *(void **)&paVar51->compressed_size;\n              local_6c = paVar51;\n              while (pbVar50 = local_6c, local_74 <= local_6c) {\n                pbVar14 = local_6c->next;\n                cVar7 = *(char *)((int)&pbVar14->name + iVar22);\n                paVar21 = local_a8;\n                if ((((local_a8 != (asection *)0x0) || (local_6c->id == 0)) ||\n                    (paVar21 = local_6c, local_6c->index != 0x101)) &&\n                   ((local_a8 = paVar21, *(char *)((int)pvVar49 + iVar22) == cVar7 &&\n                    (local_6c->index == 0x100)))) {\n                  pcVar47 = pbVar35->name;\n                  if (cVar7 != '\x04') {\n                    pcVar31 = local_6c->name;\n                    if ((pcVar31 == pcVar47) &&\n                       (iVar43 = memcmp(pbVar14,pvVar49,(size_t)pcVar31), pvVar75 = pvVar49,\n                       pcVar26 = pcVar31, pcVar45 = pcVar47, iVar43 == 0)) {\n                      uVar63 = *(uint *)((int)&local_6c->lma + 4);\n                      pbVar50 = *(bfd_section **)&local_6c->lma;\n                      if (uVar63 != 0 || pbVar50 != (bfd_section *)0x0) {\n                        pbVar14 = paVar51->output_section;\n                        uVar48 = paVar51->alignment_power;\n                        if ((uVar48 != 0 || pbVar14 != (bfd_section *)0x0) &&\n                           ((-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)))) {\n                          *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;\n                          if (uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)) {\n                            *(bfd_section **)&local_6c->lma = pbVar14;\n                            *(uint *)((int)&local_6c->lma + 4) = uVar48;\n                          }\n                          bVar69 = true;\n                          if (local_84 != (asymbol **)0x0) {\n                            *(undefined4 *)&local_6c->size = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (asymbol **)0x0) {\n                      if ((((int)paVar51->rawsize == 0) && (local_a8 != (asection *)0x0)) &&\n                         (local_a8->index == 0)) {\n                        local_a8->index = 0x100;\n                      }\n                    }\n                    else {\n                      paVar51->relocation = (reloc_cache_entry *)0x1;\n                      *(undefined4 *)((int)&paVar51->rawsize + 4) = 0x101;\n                      *(undefined4 *)&local_6c->size = 1;\n                      local_6c->index = 0x101;\n                    }\n                    break;\n                  }\n                  uVar63 = 0;\n                  for (iVar43 = 0; (int)pcVar47 - iVar52 != iVar43; iVar43 = iVar43 + 1) {\n                    uVar63 = uVar63 | (uint)*(byte *)((int)pvVar49 + iVar43 + iVar52) <<\n                                      ((char)iVar43 * '\b' & 0x1fU);\n                  }\n                  local_6c = (bfd_section *)0x0;\n                  pcVar47 = pbVar50->name;\n                  pcVar31 = (char *)((int)&pbVar14->name + iVar52);\n                  for (uVar48 = 0; (int)pcVar47 - iVar52 != uVar48; uVar48 = uVar48 + 1) {\n                    local_6c = (bfd_section *)\n                               ((uint)local_6c |\n                               (uint)(byte)pcVar31[uVar48] << ((char)uVar48 * '\b' & 0x1fU));\n                  }\n                  uVar67 = 0;\n                  uVar63 = (int)local_6c + uVar63;\n                  for (uVar60 = uVar63; uVar60 != 0; uVar60 = uVar60 >> 8) {\n                    uVar67 = uVar67 + 1;\n                  }\n                  in_stack_ffffff28 = pbVar50;\n                  if (uVar67 < uVar48) {\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = (bfd_section *)&pbVar50[-1].entsize;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          if (!bVar69) goto LAB_0001ae41;\n          pvVar49 = (void *)xmalloc(pcVar27,pvVar75,pcVar26,pcVar45);\n          local_cc = local_7c;\n          pvVar75 = pvVar49;\n          in_stack_ffffff28 = local_78;\n          local_a8 = (asection *)pbVar39;\n          for (paVar51 = local_74; paVar51 < paVar68;\n              paVar51 = (asection *)((int)&paVar51->size + 4)) {\n            pcVar45 = paVar51->name;\n            uVar63 = paVar51->index;\n            pcVar26 = pcVar45 + paVar51->id + 0xc;\n            pvVar54 = pvVar75;\n            if (uVar63 != 0) {\n              if ((int)paVar51->size == 0) {\n                memcpy(pvVar75,local_a8,(size_t)pcVar26);\n                pvVar54 = (void *)((int)pvVar75 + (int)pcVar26);\n              }\n              else {\n                pbVar1 = &paVar51->vma;\n                bVar72 = *pbVar1;\n                bVar73 = *pbVar1;\n                p_Var15 = ibfd->xvec->bfd_putx32;\n                __dest = (void *)((int)pvVar75 + 0xc);\n                pvVar54 = (void *)((int)__dest + (int)pcVar45);\n                if (((*(asection **)((int)&paVar51->vma + 4) == local_78) &&\n                    (*(char **)pbVar1 == local_7c)) &&\n                   ((*(asection **)((int)&paVar51->lma + 4) == in_stack_ffffff28 &&\n                    (*(char **)&paVar51->lma == local_cc)))) {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  (*ibfd->xvec->bfd_putx32)(0,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                }\n                else {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  uVar48 = 8;\n                  if ((ibfd->xvec->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    uVar48 = 0x10;\n                  }\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar48,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                  pbVar13 = ibfd->xvec;\n                  if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    (*pbVar13->bfd_putx64)(bVar73,pvVar54);\n                    (*ibfd->xvec->bfd_putx64)(paVar51->lma,(void *)((int)pvVar54 + 8));\n                    pvVar54 = (void *)((int)pvVar54 + 0x10);\n                  }\n                  else {\n                    (*pbVar13->bfd_putx32)(bVar72,pvVar54);\n                    (*ibfd->xvec->bfd_putx32)(paVar51->lma,(void *)((int)pvVar54 + 4));\n                    pvVar54 = (void *)((int)pvVar54 + 8);\n                  }\n                }\n              }\n              local_7c = *(char **)&paVar51->vma;\n              local_78 = *(asection **)((int)&paVar51->vma + 4);\n              local_cc = *(char **)&paVar51->lma;\n              in_stack_ffffff28 = *(asection **)((int)&paVar51->lma + 4);\n            }\n            local_a8 = (asection *)((int)local_a8 + (int)pcVar26);\n            pvVar75 = pvVar54;\n          }\n          pcVar26 = (char *)((int)pvVar75 - (int)pvVar49);\n          paVar68 = (asection *)((int)pcVar26 >> 0x1f);\n          in_stack_ffffff24 = (bfd_section *)obfd;\n          memcpy(pbVar39,pvVar49,(size_t)pcVar26);\n          free(pvVar49);\n          free(local_74);\n          local_6c = (bfd_section *)obfd;\n          merged_size._0_4_ = pcVar26;\n          merged_size._4_4_ = paVar68;\n          if ((paVar53 != paVar68) || (pcVar27 != pcVar26)) {\n            pbVar35 = paVar30->output_section;\n            if ((pbVar35 != (bfd_section *)0x0) &&\n               (pbVar35 = (bfd_section *)bfd_set_section_size(obfd,pbVar35,pcVar26,paVar68),\n               pbVar35 != (bfd_section *)0x0)) goto LAB_00018e0e;\n            pcVar27 = (char *)dcgettext(0,"warning: failed to set merged notes size",5,pbVar35);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n          }\n        }" { (if_statement "if (local_a4 == 0 && (local_a8 == (asection *)0x0 && local_84 == (asymbol **)0x0)) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: no known versions detected",\n                                        5,-(int)local_78 - (uint)((char *)0xb < local_7c));\n            goto LAB_0001ae12;\n          }" if (parenthesized_expression "(local_a4 == 0 && (local_a8 == (asection *)0x0 && local_84 == (asymbol **)0x0))" ( (binary_expression "local_a4 == 0 && (local_a8 == (asection *)0x0 && local_84 == (asymbol **)0x0)" (binary_expression "local_a4 == 0" identifier == number_literal) && (parenthesized_expression "(local_a8 == (asection *)0x0 && local_84 == (asymbol **)0x0)" ( (binary_expression "local_a8 == (asection *)0x0 && local_84 == (asymbol **)0x0" (binary_expression "local_a8 == (asection *)0x0" identifier == (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "local_84 == (asymbol **)0x0" identifier == (cast_expression "(asymbol **)0x0" ( (type_descriptor "asymbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) ))) )) (compound_statement "{\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: no known versions detected",\n                                        5,-(int)local_78 - (uint)((char *)0xb < local_7c));\n            goto LAB_0001ae12;\n          }" { (expression_statement "pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: no known versions detected",\n                                        5,-(int)local_78 - (uint)((char *)0xb < local_7c));" (assignment_expression "pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: no known versions detected",\n                                        5,-(int)local_78 - (uint)((char *)0xb < local_7c))" identifier = (cast_expression "(char *)dcgettext(0,\n                                        "bad GNU build attribute notes: no known versions detected",\n                                        5,-(int)local_78 - (uint)((char *)0xb < local_7c))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                        "bad GNU build attribute notes: no known versions detected",\n                                        5,-(int)local_78 - (uint)((char *)0xb < local_7c))" identifier (argument_list "(0,\n                                        "bad GNU build attribute notes: no known versions detected",\n                                        5,-(int)local_78 - (uint)((char *)0xb < local_7c))" ( number_literal , (string_literal ""bad GNU build attribute notes: no known versions detected"" " string_content ") , number_literal , (binary_expression "-(int)local_78 - (uint)((char *)0xb < local_7c)" (unary_expression "-(int)local_78" - (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier)) - (call_expression "(uint)((char *)0xb < local_7c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((char *)0xb < local_7c)" ( (binary_expression "(char *)0xb < local_7c" (cast_expression "(char *)0xb" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )))) ))))) ;) (goto_statement "goto LAB_0001ae12;" goto statement_identifier ;) })) (if_statement "if (((local_a4 != 0) && (local_a8 != (asection *)0x0 || local_84 != (asymbol **)0x0)) ||\n             ((local_a8 != (asection *)0x0 && (local_84 != (asymbol **)0x0)))) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: multiple different versions"\n                                        ,5,paVar68);\n            goto LAB_0001ae12;\n          }" if (parenthesized_expression "(((local_a4 != 0) && (local_a8 != (asection *)0x0 || local_84 != (asymbol **)0x0)) ||\n             ((local_a8 != (asection *)0x0 && (local_84 != (asymbol **)0x0))))" ( (binary_expression "((local_a4 != 0) && (local_a8 != (asection *)0x0 || local_84 != (asymbol **)0x0)) ||\n             ((local_a8 != (asection *)0x0 && (local_84 != (asymbol **)0x0)))" (parenthesized_expression "((local_a4 != 0) && (local_a8 != (asection *)0x0 || local_84 != (asymbol **)0x0))" ( (binary_expression "(local_a4 != 0) && (local_a8 != (asection *)0x0 || local_84 != (asymbol **)0x0)" (parenthesized_expression "(local_a4 != 0)" ( (binary_expression "local_a4 != 0" identifier != number_literal) )) && (parenthesized_expression "(local_a8 != (asection *)0x0 || local_84 != (asymbol **)0x0)" ( (binary_expression "local_a8 != (asection *)0x0 || local_84 != (asymbol **)0x0" (binary_expression "local_a8 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "local_84 != (asymbol **)0x0" identifier != (cast_expression "(asymbol **)0x0" ( (type_descriptor "asymbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) ))) )) || (parenthesized_expression "((local_a8 != (asection *)0x0 && (local_84 != (asymbol **)0x0)))" ( (parenthesized_expression "(local_a8 != (asection *)0x0 && (local_84 != (asymbol **)0x0))" ( (binary_expression "local_a8 != (asection *)0x0 && (local_84 != (asymbol **)0x0)" (binary_expression "local_a8 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(local_84 != (asymbol **)0x0)" ( (binary_expression "local_84 != (asymbol **)0x0" identifier != (cast_expression "(asymbol **)0x0" ( (type_descriptor "asymbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ))) )) ))) )) (compound_statement "{\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: multiple different versions"\n                                        ,5,paVar68);\n            goto LAB_0001ae12;\n          }" { (expression_statement "pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: multiple different versions"\n                                        ,5,paVar68);" (assignment_expression "pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: multiple different versions"\n                                        ,5,paVar68)" identifier = (cast_expression "(char *)dcgettext(0,\n                                        "bad GNU build attribute notes: multiple different versions"\n                                        ,5,paVar68)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                        "bad GNU build attribute notes: multiple different versions"\n                                        ,5,paVar68)" identifier (argument_list "(0,\n                                        "bad GNU build attribute notes: multiple different versions"\n                                        ,5,paVar68)" ( number_literal , (string_literal ""bad GNU build attribute notes: multiple different versions"" " string_content ") , number_literal , identifier ))))) ;) (goto_statement "goto LAB_0001ae12;" goto statement_identifier ;) })) (if_statement "if ((local_a4 == 1 || local_a8 == (asection *)0x1) || (local_84 == (asymbol **)0x1))\n          goto LAB_0001ae41;" if (parenthesized_expression "((local_a4 == 1 || local_a8 == (asection *)0x1) || (local_84 == (asymbol **)0x1))" ( (binary_expression "(local_a4 == 1 || local_a8 == (asection *)0x1) || (local_84 == (asymbol **)0x1)" (parenthesized_expression "(local_a4 == 1 || local_a8 == (asection *)0x1)" ( (binary_expression "local_a4 == 1 || local_a8 == (asection *)0x1" (binary_expression "local_a4 == 1" identifier == number_literal) || (binary_expression "local_a8 == (asection *)0x1" identifier == (cast_expression "(asection *)0x1" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) || (parenthesized_expression "(local_84 == (asymbol **)0x1)" ( (binary_expression "local_84 == (asymbol **)0x1" identifier == (cast_expression "(asymbol **)0x1" ( (type_descriptor "asymbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ))) )) (goto_statement "goto LAB_0001ae41;" goto statement_identifier ;)) (expression_statement "uVar63 = -(uint)(local_a4 == 0) & 2;" (assignment_expression "uVar63 = -(uint)(local_a4 == 0) & 2" identifier = (binary_expression "-(uint)(local_a4 == 0) & 2" (unary_expression "-(uint)(local_a4 == 0)" - (call_expression "(uint)(local_a4 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_a4 == 0)" ( (binary_expression "local_a4 == 0" identifier == number_literal) )))) & number_literal)) ;) (expression_statement "iVar22 = uVar63 + 1;" (assignment_expression "iVar22 = uVar63 + 1" identifier = (binary_expression "uVar63 + 1" identifier + number_literal)) ;) (if_statement "if (*(char *)((int)&local_74->next->name + iVar22) != '\x01') {\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: first note not version note"\n                                        ,5,iVar22);\n            goto LAB_0001ae12;\n          }" if (parenthesized_expression "(*(char *)((int)&local_74->next->name + iVar22) != '\x01')" ( (binary_expression "*(char *)((int)&local_74->next->name + iVar22) != '\x01'" (pointer_expression "*(char *)((int)&local_74->next->name + iVar22)" * (cast_expression "(char *)((int)&local_74->next->name + iVar22)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_74->next->name + iVar22)" ( (binary_expression "(int)&local_74->next->name + iVar22" (cast_expression "(int)&local_74->next->name" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_74->next->name" & (field_expression "local_74->next->name" (field_expression "local_74->next" identifier -> field_identifier) -> field_identifier))) + identifier) )))) != (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n            pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: first note not version note"\n                                        ,5,iVar22);\n            goto LAB_0001ae12;\n          }" { (expression_statement "pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: first note not version note"\n                                        ,5,iVar22);" (assignment_expression "pcVar27 = (char *)dcgettext(0,\n                                        "bad GNU build attribute notes: first note not version note"\n                                        ,5,iVar22)" identifier = (cast_expression "(char *)dcgettext(0,\n                                        "bad GNU build attribute notes: first note not version note"\n                                        ,5,iVar22)" ( (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,iVar22)" identifier (argument_list "(0,\n                                        "bad GNU build attribute notes: first note not version note"\n                                        ,5,iVar22)" ( number_literal , (string_literal ""bad GNU build attribute notes: first note not version note"" " string_content ") , number_literal , identifier ))))) ;) (goto_statement "goto LAB_0001ae12;" goto statement_identifier ;) })) (expression_statement "bVar69 = false;" (assignment_expression "bVar69 = false" identifier = false) ;) (expression_statement "iVar52 = uVar63 + 2;" (assignment_expression "iVar52 = uVar63 + 2" identifier = (binary_expression "uVar63 + 2" identifier + number_literal)) ;) (expression_statement "pbVar35 = local_74;" (assignment_expression "pbVar35 = local_74" identifier = identifier) ;) (labeled_statement "LAB_0001afd1:\n          paVar51 = pbVar35;" statement_identifier : (expression_statement "paVar51 = pbVar35;" (assignment_expression "paVar51 = pbVar35" identifier = identifier) ;)) (expression_statement "local_6c = (bfd_section *)((int)&paVar51->size + 4);" (assignment_expression "local_6c = (bfd_section *)((int)&paVar51->size + 4)" identifier = (cast_expression "(bfd_section *)((int)&paVar51->size + 4)" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar51->size + 4)" ( (binary_expression "(int)&paVar51->size + 4" (cast_expression "(int)&paVar51->size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar51->size" & (field_expression "paVar51->size" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "pbVar35 = local_6c;" (assignment_expression "pbVar35 = local_6c" identifier = identifier) ;) (if_statement "if (local_6c < paVar68) {\n            if (*(int *)((int)&paVar51->rawsize + 4) == 0x100) {\n              local_a8 = (asection *)0x0;\n              pvVar49 = *(void **)&paVar51->compressed_size;\n              local_6c = paVar51;\n              while (pbVar50 = local_6c, local_74 <= local_6c) {\n                pbVar14 = local_6c->next;\n                cVar7 = *(char *)((int)&pbVar14->name + iVar22);\n                paVar21 = local_a8;\n                if ((((local_a8 != (asection *)0x0) || (local_6c->id == 0)) ||\n                    (paVar21 = local_6c, local_6c->index != 0x101)) &&\n                   ((local_a8 = paVar21, *(char *)((int)pvVar49 + iVar22) == cVar7 &&\n                    (local_6c->index == 0x100)))) {\n                  pcVar47 = pbVar35->name;\n                  if (cVar7 != '\x04') {\n                    pcVar31 = local_6c->name;\n                    if ((pcVar31 == pcVar47) &&\n                       (iVar43 = memcmp(pbVar14,pvVar49,(size_t)pcVar31), pvVar75 = pvVar49,\n                       pcVar26 = pcVar31, pcVar45 = pcVar47, iVar43 == 0)) {\n                      uVar63 = *(uint *)((int)&local_6c->lma + 4);\n                      pbVar50 = *(bfd_section **)&local_6c->lma;\n                      if (uVar63 != 0 || pbVar50 != (bfd_section *)0x0) {\n                        pbVar14 = paVar51->output_section;\n                        uVar48 = paVar51->alignment_power;\n                        if ((uVar48 != 0 || pbVar14 != (bfd_section *)0x0) &&\n                           ((-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)))) {\n                          *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;\n                          if (uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)) {\n                            *(bfd_section **)&local_6c->lma = pbVar14;\n                            *(uint *)((int)&local_6c->lma + 4) = uVar48;\n                          }\n                          bVar69 = true;\n                          if (local_84 != (asymbol **)0x0) {\n                            *(undefined4 *)&local_6c->size = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (asymbol **)0x0) {\n                      if ((((int)paVar51->rawsize == 0) && (local_a8 != (asection *)0x0)) &&\n                         (local_a8->index == 0)) {\n                        local_a8->index = 0x100;\n                      }\n                    }\n                    else {\n                      paVar51->relocation = (reloc_cache_entry *)0x1;\n                      *(undefined4 *)((int)&paVar51->rawsize + 4) = 0x101;\n                      *(undefined4 *)&local_6c->size = 1;\n                      local_6c->index = 0x101;\n                    }\n                    break;\n                  }\n                  uVar63 = 0;\n                  for (iVar43 = 0; (int)pcVar47 - iVar52 != iVar43; iVar43 = iVar43 + 1) {\n                    uVar63 = uVar63 | (uint)*(byte *)((int)pvVar49 + iVar43 + iVar52) <<\n                                      ((char)iVar43 * '\b' & 0x1fU);\n                  }\n                  local_6c = (bfd_section *)0x0;\n                  pcVar47 = pbVar50->name;\n                  pcVar31 = (char *)((int)&pbVar14->name + iVar52);\n                  for (uVar48 = 0; (int)pcVar47 - iVar52 != uVar48; uVar48 = uVar48 + 1) {\n                    local_6c = (bfd_section *)\n                               ((uint)local_6c |\n                               (uint)(byte)pcVar31[uVar48] << ((char)uVar48 * '\b' & 0x1fU));\n                  }\n                  uVar67 = 0;\n                  uVar63 = (int)local_6c + uVar63;\n                  for (uVar60 = uVar63; uVar60 != 0; uVar60 = uVar60 >> 8) {\n                    uVar67 = uVar67 + 1;\n                  }\n                  in_stack_ffffff28 = pbVar50;\n                  if (uVar67 < uVar48) {\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = (bfd_section *)&pbVar50[-1].entsize;\n              }\n            }\n            goto LAB_0001afd1;\n          }" if (parenthesized_expression "(local_6c < paVar68)" ( (binary_expression "local_6c < paVar68" identifier < identifier) )) (compound_statement "{\n            if (*(int *)((int)&paVar51->rawsize + 4) == 0x100) {\n              local_a8 = (asection *)0x0;\n              pvVar49 = *(void **)&paVar51->compressed_size;\n              local_6c = paVar51;\n              while (pbVar50 = local_6c, local_74 <= local_6c) {\n                pbVar14 = local_6c->next;\n                cVar7 = *(char *)((int)&pbVar14->name + iVar22);\n                paVar21 = local_a8;\n                if ((((local_a8 != (asection *)0x0) || (local_6c->id == 0)) ||\n                    (paVar21 = local_6c, local_6c->index != 0x101)) &&\n                   ((local_a8 = paVar21, *(char *)((int)pvVar49 + iVar22) == cVar7 &&\n                    (local_6c->index == 0x100)))) {\n                  pcVar47 = pbVar35->name;\n                  if (cVar7 != '\x04') {\n                    pcVar31 = local_6c->name;\n                    if ((pcVar31 == pcVar47) &&\n                       (iVar43 = memcmp(pbVar14,pvVar49,(size_t)pcVar31), pvVar75 = pvVar49,\n                       pcVar26 = pcVar31, pcVar45 = pcVar47, iVar43 == 0)) {\n                      uVar63 = *(uint *)((int)&local_6c->lma + 4);\n                      pbVar50 = *(bfd_section **)&local_6c->lma;\n                      if (uVar63 != 0 || pbVar50 != (bfd_section *)0x0) {\n                        pbVar14 = paVar51->output_section;\n                        uVar48 = paVar51->alignment_power;\n                        if ((uVar48 != 0 || pbVar14 != (bfd_section *)0x0) &&\n                           ((-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)))) {\n                          *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;\n                          if (uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)) {\n                            *(bfd_section **)&local_6c->lma = pbVar14;\n                            *(uint *)((int)&local_6c->lma + 4) = uVar48;\n                          }\n                          bVar69 = true;\n                          if (local_84 != (asymbol **)0x0) {\n                            *(undefined4 *)&local_6c->size = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (asymbol **)0x0) {\n                      if ((((int)paVar51->rawsize == 0) && (local_a8 != (asection *)0x0)) &&\n                         (local_a8->index == 0)) {\n                        local_a8->index = 0x100;\n                      }\n                    }\n                    else {\n                      paVar51->relocation = (reloc_cache_entry *)0x1;\n                      *(undefined4 *)((int)&paVar51->rawsize + 4) = 0x101;\n                      *(undefined4 *)&local_6c->size = 1;\n                      local_6c->index = 0x101;\n                    }\n                    break;\n                  }\n                  uVar63 = 0;\n                  for (iVar43 = 0; (int)pcVar47 - iVar52 != iVar43; iVar43 = iVar43 + 1) {\n                    uVar63 = uVar63 | (uint)*(byte *)((int)pvVar49 + iVar43 + iVar52) <<\n                                      ((char)iVar43 * '\b' & 0x1fU);\n                  }\n                  local_6c = (bfd_section *)0x0;\n                  pcVar47 = pbVar50->name;\n                  pcVar31 = (char *)((int)&pbVar14->name + iVar52);\n                  for (uVar48 = 0; (int)pcVar47 - iVar52 != uVar48; uVar48 = uVar48 + 1) {\n                    local_6c = (bfd_section *)\n                               ((uint)local_6c |\n                               (uint)(byte)pcVar31[uVar48] << ((char)uVar48 * '\b' & 0x1fU));\n                  }\n                  uVar67 = 0;\n                  uVar63 = (int)local_6c + uVar63;\n                  for (uVar60 = uVar63; uVar60 != 0; uVar60 = uVar60 >> 8) {\n                    uVar67 = uVar67 + 1;\n                  }\n                  in_stack_ffffff28 = pbVar50;\n                  if (uVar67 < uVar48) {\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = (bfd_section *)&pbVar50[-1].entsize;\n              }\n            }\n            goto LAB_0001afd1;\n          }" { (if_statement "if (*(int *)((int)&paVar51->rawsize + 4) == 0x100) {\n              local_a8 = (asection *)0x0;\n              pvVar49 = *(void **)&paVar51->compressed_size;\n              local_6c = paVar51;\n              while (pbVar50 = local_6c, local_74 <= local_6c) {\n                pbVar14 = local_6c->next;\n                cVar7 = *(char *)((int)&pbVar14->name + iVar22);\n                paVar21 = local_a8;\n                if ((((local_a8 != (asection *)0x0) || (local_6c->id == 0)) ||\n                    (paVar21 = local_6c, local_6c->index != 0x101)) &&\n                   ((local_a8 = paVar21, *(char *)((int)pvVar49 + iVar22) == cVar7 &&\n                    (local_6c->index == 0x100)))) {\n                  pcVar47 = pbVar35->name;\n                  if (cVar7 != '\x04') {\n                    pcVar31 = local_6c->name;\n                    if ((pcVar31 == pcVar47) &&\n                       (iVar43 = memcmp(pbVar14,pvVar49,(size_t)pcVar31), pvVar75 = pvVar49,\n                       pcVar26 = pcVar31, pcVar45 = pcVar47, iVar43 == 0)) {\n                      uVar63 = *(uint *)((int)&local_6c->lma + 4);\n                      pbVar50 = *(bfd_section **)&local_6c->lma;\n                      if (uVar63 != 0 || pbVar50 != (bfd_section *)0x0) {\n                        pbVar14 = paVar51->output_section;\n                        uVar48 = paVar51->alignment_power;\n                        if ((uVar48 != 0 || pbVar14 != (bfd_section *)0x0) &&\n                           ((-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)))) {\n                          *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;\n                          if (uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)) {\n                            *(bfd_section **)&local_6c->lma = pbVar14;\n                            *(uint *)((int)&local_6c->lma + 4) = uVar48;\n                          }\n                          bVar69 = true;\n                          if (local_84 != (asymbol **)0x0) {\n                            *(undefined4 *)&local_6c->size = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (asymbol **)0x0) {\n                      if ((((int)paVar51->rawsize == 0) && (local_a8 != (asection *)0x0)) &&\n                         (local_a8->index == 0)) {\n                        local_a8->index = 0x100;\n                      }\n                    }\n                    else {\n                      paVar51->relocation = (reloc_cache_entry *)0x1;\n                      *(undefined4 *)((int)&paVar51->rawsize + 4) = 0x101;\n                      *(undefined4 *)&local_6c->size = 1;\n                      local_6c->index = 0x101;\n                    }\n                    break;\n                  }\n                  uVar63 = 0;\n                  for (iVar43 = 0; (int)pcVar47 - iVar52 != iVar43; iVar43 = iVar43 + 1) {\n                    uVar63 = uVar63 | (uint)*(byte *)((int)pvVar49 + iVar43 + iVar52) <<\n                                      ((char)iVar43 * '\b' & 0x1fU);\n                  }\n                  local_6c = (bfd_section *)0x0;\n                  pcVar47 = pbVar50->name;\n                  pcVar31 = (char *)((int)&pbVar14->name + iVar52);\n                  for (uVar48 = 0; (int)pcVar47 - iVar52 != uVar48; uVar48 = uVar48 + 1) {\n                    local_6c = (bfd_section *)\n                               ((uint)local_6c |\n                               (uint)(byte)pcVar31[uVar48] << ((char)uVar48 * '\b' & 0x1fU));\n                  }\n                  uVar67 = 0;\n                  uVar63 = (int)local_6c + uVar63;\n                  for (uVar60 = uVar63; uVar60 != 0; uVar60 = uVar60 >> 8) {\n                    uVar67 = uVar67 + 1;\n                  }\n                  in_stack_ffffff28 = pbVar50;\n                  if (uVar67 < uVar48) {\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = (bfd_section *)&pbVar50[-1].entsize;\n              }\n            }" if (parenthesized_expression "(*(int *)((int)&paVar51->rawsize + 4) == 0x100)" ( (binary_expression "*(int *)((int)&paVar51->rawsize + 4) == 0x100" (pointer_expression "*(int *)((int)&paVar51->rawsize + 4)" * (cast_expression "(int *)((int)&paVar51->rawsize + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar51->rawsize + 4)" ( (binary_expression "(int)&paVar51->rawsize + 4" (cast_expression "(int)&paVar51->rawsize" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar51->rawsize" & (field_expression "paVar51->rawsize" identifier -> field_identifier))) + number_literal) )))) == number_literal) )) (compound_statement "{\n              local_a8 = (asection *)0x0;\n              pvVar49 = *(void **)&paVar51->compressed_size;\n              local_6c = paVar51;\n              while (pbVar50 = local_6c, local_74 <= local_6c) {\n                pbVar14 = local_6c->next;\n                cVar7 = *(char *)((int)&pbVar14->name + iVar22);\n                paVar21 = local_a8;\n                if ((((local_a8 != (asection *)0x0) || (local_6c->id == 0)) ||\n                    (paVar21 = local_6c, local_6c->index != 0x101)) &&\n                   ((local_a8 = paVar21, *(char *)((int)pvVar49 + iVar22) == cVar7 &&\n                    (local_6c->index == 0x100)))) {\n                  pcVar47 = pbVar35->name;\n                  if (cVar7 != '\x04') {\n                    pcVar31 = local_6c->name;\n                    if ((pcVar31 == pcVar47) &&\n                       (iVar43 = memcmp(pbVar14,pvVar49,(size_t)pcVar31), pvVar75 = pvVar49,\n                       pcVar26 = pcVar31, pcVar45 = pcVar47, iVar43 == 0)) {\n                      uVar63 = *(uint *)((int)&local_6c->lma + 4);\n                      pbVar50 = *(bfd_section **)&local_6c->lma;\n                      if (uVar63 != 0 || pbVar50 != (bfd_section *)0x0) {\n                        pbVar14 = paVar51->output_section;\n                        uVar48 = paVar51->alignment_power;\n                        if ((uVar48 != 0 || pbVar14 != (bfd_section *)0x0) &&\n                           ((-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)))) {\n                          *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;\n                          if (uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)) {\n                            *(bfd_section **)&local_6c->lma = pbVar14;\n                            *(uint *)((int)&local_6c->lma + 4) = uVar48;\n                          }\n                          bVar69 = true;\n                          if (local_84 != (asymbol **)0x0) {\n                            *(undefined4 *)&local_6c->size = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (asymbol **)0x0) {\n                      if ((((int)paVar51->rawsize == 0) && (local_a8 != (asection *)0x0)) &&\n                         (local_a8->index == 0)) {\n                        local_a8->index = 0x100;\n                      }\n                    }\n                    else {\n                      paVar51->relocation = (reloc_cache_entry *)0x1;\n                      *(undefined4 *)((int)&paVar51->rawsize + 4) = 0x101;\n                      *(undefined4 *)&local_6c->size = 1;\n                      local_6c->index = 0x101;\n                    }\n                    break;\n                  }\n                  uVar63 = 0;\n                  for (iVar43 = 0; (int)pcVar47 - iVar52 != iVar43; iVar43 = iVar43 + 1) {\n                    uVar63 = uVar63 | (uint)*(byte *)((int)pvVar49 + iVar43 + iVar52) <<\n                                      ((char)iVar43 * '\b' & 0x1fU);\n                  }\n                  local_6c = (bfd_section *)0x0;\n                  pcVar47 = pbVar50->name;\n                  pcVar31 = (char *)((int)&pbVar14->name + iVar52);\n                  for (uVar48 = 0; (int)pcVar47 - iVar52 != uVar48; uVar48 = uVar48 + 1) {\n                    local_6c = (bfd_section *)\n                               ((uint)local_6c |\n                               (uint)(byte)pcVar31[uVar48] << ((char)uVar48 * '\b' & 0x1fU));\n                  }\n                  uVar67 = 0;\n                  uVar63 = (int)local_6c + uVar63;\n                  for (uVar60 = uVar63; uVar60 != 0; uVar60 = uVar60 >> 8) {\n                    uVar67 = uVar67 + 1;\n                  }\n                  in_stack_ffffff28 = pbVar50;\n                  if (uVar67 < uVar48) {\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = (bfd_section *)&pbVar50[-1].entsize;\n              }\n            }" { (expression_statement "local_a8 = (asection *)0x0;" (assignment_expression "local_a8 = (asection *)0x0" identifier = (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pvVar49 = *(void **)&paVar51->compressed_size;" (assignment_expression "pvVar49 = *(void **)&paVar51->compressed_size" identifier = (pointer_expression "*(void **)&paVar51->compressed_size" * (cast_expression "(void **)&paVar51->compressed_size" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&paVar51->compressed_size" & (field_expression "paVar51->compressed_size" identifier -> field_identifier))))) ;) (expression_statement "local_6c = paVar51;" (assignment_expression "local_6c = paVar51" identifier = identifier) ;) (while_statement "while (pbVar50 = local_6c, local_74 <= local_6c) {\n                pbVar14 = local_6c->next;\n                cVar7 = *(char *)((int)&pbVar14->name + iVar22);\n                paVar21 = local_a8;\n                if ((((local_a8 != (asection *)0x0) || (local_6c->id == 0)) ||\n                    (paVar21 = local_6c, local_6c->index != 0x101)) &&\n                   ((local_a8 = paVar21, *(char *)((int)pvVar49 + iVar22) == cVar7 &&\n                    (local_6c->index == 0x100)))) {\n                  pcVar47 = pbVar35->name;\n                  if (cVar7 != '\x04') {\n                    pcVar31 = local_6c->name;\n                    if ((pcVar31 == pcVar47) &&\n                       (iVar43 = memcmp(pbVar14,pvVar49,(size_t)pcVar31), pvVar75 = pvVar49,\n                       pcVar26 = pcVar31, pcVar45 = pcVar47, iVar43 == 0)) {\n                      uVar63 = *(uint *)((int)&local_6c->lma + 4);\n                      pbVar50 = *(bfd_section **)&local_6c->lma;\n                      if (uVar63 != 0 || pbVar50 != (bfd_section *)0x0) {\n                        pbVar14 = paVar51->output_section;\n                        uVar48 = paVar51->alignment_power;\n                        if ((uVar48 != 0 || pbVar14 != (bfd_section *)0x0) &&\n                           ((-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)))) {\n                          *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;\n                          if (uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)) {\n                            *(bfd_section **)&local_6c->lma = pbVar14;\n                            *(uint *)((int)&local_6c->lma + 4) = uVar48;\n                          }\n                          bVar69 = true;\n                          if (local_84 != (asymbol **)0x0) {\n                            *(undefined4 *)&local_6c->size = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (asymbol **)0x0) {\n                      if ((((int)paVar51->rawsize == 0) && (local_a8 != (asection *)0x0)) &&\n                         (local_a8->index == 0)) {\n                        local_a8->index = 0x100;\n                      }\n                    }\n                    else {\n                      paVar51->relocation = (reloc_cache_entry *)0x1;\n                      *(undefined4 *)((int)&paVar51->rawsize + 4) = 0x101;\n                      *(undefined4 *)&local_6c->size = 1;\n                      local_6c->index = 0x101;\n                    }\n                    break;\n                  }\n                  uVar63 = 0;\n                  for (iVar43 = 0; (int)pcVar47 - iVar52 != iVar43; iVar43 = iVar43 + 1) {\n                    uVar63 = uVar63 | (uint)*(byte *)((int)pvVar49 + iVar43 + iVar52) <<\n                                      ((char)iVar43 * '\b' & 0x1fU);\n                  }\n                  local_6c = (bfd_section *)0x0;\n                  pcVar47 = pbVar50->name;\n                  pcVar31 = (char *)((int)&pbVar14->name + iVar52);\n                  for (uVar48 = 0; (int)pcVar47 - iVar52 != uVar48; uVar48 = uVar48 + 1) {\n                    local_6c = (bfd_section *)\n                               ((uint)local_6c |\n                               (uint)(byte)pcVar31[uVar48] << ((char)uVar48 * '\b' & 0x1fU));\n                  }\n                  uVar67 = 0;\n                  uVar63 = (int)local_6c + uVar63;\n                  for (uVar60 = uVar63; uVar60 != 0; uVar60 = uVar60 >> 8) {\n                    uVar67 = uVar67 + 1;\n                  }\n                  in_stack_ffffff28 = pbVar50;\n                  if (uVar67 < uVar48) {\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = (bfd_section *)&pbVar50[-1].entsize;\n              }" while (parenthesized_expression "(pbVar50 = local_6c, local_74 <= local_6c)" ( (comma_expression "pbVar50 = local_6c, local_74 <= local_6c" (assignment_expression "pbVar50 = local_6c" identifier = identifier) , (binary_expression "local_74 <= local_6c" identifier <= identifier)) )) (compound_statement "{\n                pbVar14 = local_6c->next;\n                cVar7 = *(char *)((int)&pbVar14->name + iVar22);\n                paVar21 = local_a8;\n                if ((((local_a8 != (asection *)0x0) || (local_6c->id == 0)) ||\n                    (paVar21 = local_6c, local_6c->index != 0x101)) &&\n                   ((local_a8 = paVar21, *(char *)((int)pvVar49 + iVar22) == cVar7 &&\n                    (local_6c->index == 0x100)))) {\n                  pcVar47 = pbVar35->name;\n                  if (cVar7 != '\x04') {\n                    pcVar31 = local_6c->name;\n                    if ((pcVar31 == pcVar47) &&\n                       (iVar43 = memcmp(pbVar14,pvVar49,(size_t)pcVar31), pvVar75 = pvVar49,\n                       pcVar26 = pcVar31, pcVar45 = pcVar47, iVar43 == 0)) {\n                      uVar63 = *(uint *)((int)&local_6c->lma + 4);\n                      pbVar50 = *(bfd_section **)&local_6c->lma;\n                      if (uVar63 != 0 || pbVar50 != (bfd_section *)0x0) {\n                        pbVar14 = paVar51->output_section;\n                        uVar48 = paVar51->alignment_power;\n                        if ((uVar48 != 0 || pbVar14 != (bfd_section *)0x0) &&\n                           ((-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)))) {\n                          *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;\n                          if (uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)) {\n                            *(bfd_section **)&local_6c->lma = pbVar14;\n                            *(uint *)((int)&local_6c->lma + 4) = uVar48;\n                          }\n                          bVar69 = true;\n                          if (local_84 != (asymbol **)0x0) {\n                            *(undefined4 *)&local_6c->size = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (asymbol **)0x0) {\n                      if ((((int)paVar51->rawsize == 0) && (local_a8 != (asection *)0x0)) &&\n                         (local_a8->index == 0)) {\n                        local_a8->index = 0x100;\n                      }\n                    }\n                    else {\n                      paVar51->relocation = (reloc_cache_entry *)0x1;\n                      *(undefined4 *)((int)&paVar51->rawsize + 4) = 0x101;\n                      *(undefined4 *)&local_6c->size = 1;\n                      local_6c->index = 0x101;\n                    }\n                    break;\n                  }\n                  uVar63 = 0;\n                  for (iVar43 = 0; (int)pcVar47 - iVar52 != iVar43; iVar43 = iVar43 + 1) {\n                    uVar63 = uVar63 | (uint)*(byte *)((int)pvVar49 + iVar43 + iVar52) <<\n                                      ((char)iVar43 * '\b' & 0x1fU);\n                  }\n                  local_6c = (bfd_section *)0x0;\n                  pcVar47 = pbVar50->name;\n                  pcVar31 = (char *)((int)&pbVar14->name + iVar52);\n                  for (uVar48 = 0; (int)pcVar47 - iVar52 != uVar48; uVar48 = uVar48 + 1) {\n                    local_6c = (bfd_section *)\n                               ((uint)local_6c |\n                               (uint)(byte)pcVar31[uVar48] << ((char)uVar48 * '\b' & 0x1fU));\n                  }\n                  uVar67 = 0;\n                  uVar63 = (int)local_6c + uVar63;\n                  for (uVar60 = uVar63; uVar60 != 0; uVar60 = uVar60 >> 8) {\n                    uVar67 = uVar67 + 1;\n                  }\n                  in_stack_ffffff28 = pbVar50;\n                  if (uVar67 < uVar48) {\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = (bfd_section *)&pbVar50[-1].entsize;\n              }" { (expression_statement "pbVar14 = local_6c->next;" (assignment_expression "pbVar14 = local_6c->next" identifier = (field_expression "local_6c->next" identifier -> field_identifier)) ;) (expression_statement "cVar7 = *(char *)((int)&pbVar14->name + iVar22);" (assignment_expression "cVar7 = *(char *)((int)&pbVar14->name + iVar22)" identifier = (pointer_expression "*(char *)((int)&pbVar14->name + iVar22)" * (cast_expression "(char *)((int)&pbVar14->name + iVar22)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pbVar14->name + iVar22)" ( (binary_expression "(int)&pbVar14->name + iVar22" (cast_expression "(int)&pbVar14->name" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pbVar14->name" & (field_expression "pbVar14->name" identifier -> field_identifier))) + identifier) ))))) ;) (expression_statement "paVar21 = local_a8;" (assignment_expression "paVar21 = local_a8" identifier = identifier) ;) (if_statement "if ((((local_a8 != (asection *)0x0) || (local_6c->id == 0)) ||\n                    (paVar21 = local_6c, local_6c->index != 0x101)) &&\n                   ((local_a8 = paVar21, *(char *)((int)pvVar49 + iVar22) == cVar7 &&\n                    (local_6c->index == 0x100)))) {\n                  pcVar47 = pbVar35->name;\n                  if (cVar7 != '\x04') {\n                    pcVar31 = local_6c->name;\n                    if ((pcVar31 == pcVar47) &&\n                       (iVar43 = memcmp(pbVar14,pvVar49,(size_t)pcVar31), pvVar75 = pvVar49,\n                       pcVar26 = pcVar31, pcVar45 = pcVar47, iVar43 == 0)) {\n                      uVar63 = *(uint *)((int)&local_6c->lma + 4);\n                      pbVar50 = *(bfd_section **)&local_6c->lma;\n                      if (uVar63 != 0 || pbVar50 != (bfd_section *)0x0) {\n                        pbVar14 = paVar51->output_section;\n                        uVar48 = paVar51->alignment_power;\n                        if ((uVar48 != 0 || pbVar14 != (bfd_section *)0x0) &&\n                           ((-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)))) {\n                          *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;\n                          if (uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)) {\n                            *(bfd_section **)&local_6c->lma = pbVar14;\n                            *(uint *)((int)&local_6c->lma + 4) = uVar48;\n                          }\n                          bVar69 = true;\n                          if (local_84 != (asymbol **)0x0) {\n                            *(undefined4 *)&local_6c->size = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (asymbol **)0x0) {\n                      if ((((int)paVar51->rawsize == 0) && (local_a8 != (asection *)0x0)) &&\n                         (local_a8->index == 0)) {\n                        local_a8->index = 0x100;\n                      }\n                    }\n                    else {\n                      paVar51->relocation = (reloc_cache_entry *)0x1;\n                      *(undefined4 *)((int)&paVar51->rawsize + 4) = 0x101;\n                      *(undefined4 *)&local_6c->size = 1;\n                      local_6c->index = 0x101;\n                    }\n                    break;\n                  }\n                  uVar63 = 0;\n                  for (iVar43 = 0; (int)pcVar47 - iVar52 != iVar43; iVar43 = iVar43 + 1) {\n                    uVar63 = uVar63 | (uint)*(byte *)((int)pvVar49 + iVar43 + iVar52) <<\n                                      ((char)iVar43 * '\b' & 0x1fU);\n                  }\n                  local_6c = (bfd_section *)0x0;\n                  pcVar47 = pbVar50->name;\n                  pcVar31 = (char *)((int)&pbVar14->name + iVar52);\n                  for (uVar48 = 0; (int)pcVar47 - iVar52 != uVar48; uVar48 = uVar48 + 1) {\n                    local_6c = (bfd_section *)\n                               ((uint)local_6c |\n                               (uint)(byte)pcVar31[uVar48] << ((char)uVar48 * '\b' & 0x1fU));\n                  }\n                  uVar67 = 0;\n                  uVar63 = (int)local_6c + uVar63;\n                  for (uVar60 = uVar63; uVar60 != 0; uVar60 = uVar60 >> 8) {\n                    uVar67 = uVar67 + 1;\n                  }\n                  in_stack_ffffff28 = pbVar50;\n                  if (uVar67 < uVar48) {\n                    goto LAB_0001b1a6;\n                  }\n                }" if (parenthesized_expression "((((local_a8 != (asection *)0x0) || (local_6c->id == 0)) ||\n                    (paVar21 = local_6c, local_6c->index != 0x101)) &&\n                   ((local_a8 = paVar21, *(char *)((int)pvVar49 + iVar22) == cVar7 &&\n                    (local_6c->index == 0x100))))" ( (binary_expression "(((local_a8 != (asection *)0x0) || (local_6c->id == 0)) ||\n                    (paVar21 = local_6c, local_6c->index != 0x101)) &&\n                   ((local_a8 = paVar21, *(char *)((int)pvVar49 + iVar22) == cVar7 &&\n                    (local_6c->index == 0x100)))" (parenthesized_expression "(((local_a8 != (asection *)0x0) || (local_6c->id == 0)) ||\n                    (paVar21 = local_6c, local_6c->index != 0x101))" ( (binary_expression "((local_a8 != (asection *)0x0) || (local_6c->id == 0)) ||\n                    (paVar21 = local_6c, local_6c->index != 0x101)" (parenthesized_expression "((local_a8 != (asection *)0x0) || (local_6c->id == 0))" ( (binary_expression "(local_a8 != (asection *)0x0) || (local_6c->id == 0)" (parenthesized_expression "(local_a8 != (asection *)0x0)" ( (binary_expression "local_a8 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(local_6c->id == 0)" ( (binary_expression "local_6c->id == 0" (field_expression "local_6c->id" identifier -> field_identifier) == number_literal) ))) )) || (parenthesized_expression "(paVar21 = local_6c, local_6c->index != 0x101)" ( (comma_expression "paVar21 = local_6c, local_6c->index != 0x101" (assignment_expression "paVar21 = local_6c" identifier = identifier) , (binary_expression "local_6c->index != 0x101" (field_expression "local_6c->index" identifier -> field_identifier) != number_literal)) ))) )) && (parenthesized_expression "((local_a8 = paVar21, *(char *)((int)pvVar49 + iVar22) == cVar7 &&\n                    (local_6c->index == 0x100)))" ( (parenthesized_expression "(local_a8 = paVar21, *(char *)((int)pvVar49 + iVar22) == cVar7 &&\n                    (local_6c->index == 0x100))" ( (comma_expression "local_a8 = paVar21, *(char *)((int)pvVar49 + iVar22) == cVar7 &&\n                    (local_6c->index == 0x100)" (assignment_expression "local_a8 = paVar21" identifier = identifier) , (binary_expression "*(char *)((int)pvVar49 + iVar22) == cVar7 &&\n                    (local_6c->index == 0x100)" (binary_expression "*(char *)((int)pvVar49 + iVar22) == cVar7" (pointer_expression "*(char *)((int)pvVar49 + iVar22)" * (cast_expression "(char *)((int)pvVar49 + iVar22)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar49 + iVar22)" ( (binary_expression "(int)pvVar49 + iVar22" (cast_expression "(int)pvVar49" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) == identifier) && (parenthesized_expression "(local_6c->index == 0x100)" ( (binary_expression "local_6c->index == 0x100" (field_expression "local_6c->index" identifier -> field_identifier) == number_literal) )))) )) ))) )) (compound_statement "{\n                  pcVar47 = pbVar35->name;\n                  if (cVar7 != '\x04') {\n                    pcVar31 = local_6c->name;\n                    if ((pcVar31 == pcVar47) &&\n                       (iVar43 = memcmp(pbVar14,pvVar49,(size_t)pcVar31), pvVar75 = pvVar49,\n                       pcVar26 = pcVar31, pcVar45 = pcVar47, iVar43 == 0)) {\n                      uVar63 = *(uint *)((int)&local_6c->lma + 4);\n                      pbVar50 = *(bfd_section **)&local_6c->lma;\n                      if (uVar63 != 0 || pbVar50 != (bfd_section *)0x0) {\n                        pbVar14 = paVar51->output_section;\n                        uVar48 = paVar51->alignment_power;\n                        if ((uVar48 != 0 || pbVar14 != (bfd_section *)0x0) &&\n                           ((-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)))) {\n                          *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;\n                          if (uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)) {\n                            *(bfd_section **)&local_6c->lma = pbVar14;\n                            *(uint *)((int)&local_6c->lma + 4) = uVar48;\n                          }\n                          bVar69 = true;\n                          if (local_84 != (asymbol **)0x0) {\n                            *(undefined4 *)&local_6c->size = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (asymbol **)0x0) {\n                      if ((((int)paVar51->rawsize == 0) && (local_a8 != (asection *)0x0)) &&\n                         (local_a8->index == 0)) {\n                        local_a8->index = 0x100;\n                      }\n                    }\n                    else {\n                      paVar51->relocation = (reloc_cache_entry *)0x1;\n                      *(undefined4 *)((int)&paVar51->rawsize + 4) = 0x101;\n                      *(undefined4 *)&local_6c->size = 1;\n                      local_6c->index = 0x101;\n                    }\n                    break;\n                  }\n                  uVar63 = 0;\n                  for (iVar43 = 0; (int)pcVar47 - iVar52 != iVar43; iVar43 = iVar43 + 1) {\n                    uVar63 = uVar63 | (uint)*(byte *)((int)pvVar49 + iVar43 + iVar52) <<\n                                      ((char)iVar43 * '\b' & 0x1fU);\n                  }\n                  local_6c = (bfd_section *)0x0;\n                  pcVar47 = pbVar50->name;\n                  pcVar31 = (char *)((int)&pbVar14->name + iVar52);\n                  for (uVar48 = 0; (int)pcVar47 - iVar52 != uVar48; uVar48 = uVar48 + 1) {\n                    local_6c = (bfd_section *)\n                               ((uint)local_6c |\n                               (uint)(byte)pcVar31[uVar48] << ((char)uVar48 * '\b' & 0x1fU));\n                  }\n                  uVar67 = 0;\n                  uVar63 = (int)local_6c + uVar63;\n                  for (uVar60 = uVar63; uVar60 != 0; uVar60 = uVar60 >> 8) {\n                    uVar67 = uVar67 + 1;\n                  }\n                  in_stack_ffffff28 = pbVar50;\n                  if (uVar67 < uVar48) {\n                    goto LAB_0001b1a6;\n                  }\n                }" { (expression_statement "pcVar47 = pbVar35->name;" (assignment_expression "pcVar47 = pbVar35->name" identifier = (field_expression "pbVar35->name" identifier -> field_identifier)) ;) (if_statement "if (cVar7 != '\x04') {\n                    pcVar31 = local_6c->name;\n                    if ((pcVar31 == pcVar47) &&\n                       (iVar43 = memcmp(pbVar14,pvVar49,(size_t)pcVar31), pvVar75 = pvVar49,\n                       pcVar26 = pcVar31, pcVar45 = pcVar47, iVar43 == 0)) {\n                      uVar63 = *(uint *)((int)&local_6c->lma + 4);\n                      pbVar50 = *(bfd_section **)&local_6c->lma;\n                      if (uVar63 != 0 || pbVar50 != (bfd_section *)0x0) {\n                        pbVar14 = paVar51->output_section;\n                        uVar48 = paVar51->alignment_power;\n                        if ((uVar48 != 0 || pbVar14 != (bfd_section *)0x0) &&\n                           ((-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)))) {\n                          *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;\n                          if (uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)) {\n                            *(bfd_section **)&local_6c->lma = pbVar14;\n                            *(uint *)((int)&local_6c->lma + 4) = uVar48;\n                          }\n                          bVar69 = true;\n                          if (local_84 != (asymbol **)0x0) {\n                            *(undefined4 *)&local_6c->size = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (asymbol **)0x0) {\n                      if ((((int)paVar51->rawsize == 0) && (local_a8 != (asection *)0x0)) &&\n                         (local_a8->index == 0)) {\n                        local_a8->index = 0x100;\n                      }\n                    }\n                    else {\n                      paVar51->relocation = (reloc_cache_entry *)0x1;\n                      *(undefined4 *)((int)&paVar51->rawsize + 4) = 0x101;\n                      *(undefined4 *)&local_6c->size = 1;\n                      local_6c->index = 0x101;\n                    }\n                    break;\n                  }" if (parenthesized_expression "(cVar7 != '\x04')" ( (binary_expression "cVar7 != '\x04'" identifier != (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n                    pcVar31 = local_6c->name;\n                    if ((pcVar31 == pcVar47) &&\n                       (iVar43 = memcmp(pbVar14,pvVar49,(size_t)pcVar31), pvVar75 = pvVar49,\n                       pcVar26 = pcVar31, pcVar45 = pcVar47, iVar43 == 0)) {\n                      uVar63 = *(uint *)((int)&local_6c->lma + 4);\n                      pbVar50 = *(bfd_section **)&local_6c->lma;\n                      if (uVar63 != 0 || pbVar50 != (bfd_section *)0x0) {\n                        pbVar14 = paVar51->output_section;\n                        uVar48 = paVar51->alignment_power;\n                        if ((uVar48 != 0 || pbVar14 != (bfd_section *)0x0) &&\n                           ((-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)))) {\n                          *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;\n                          if (uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)) {\n                            *(bfd_section **)&local_6c->lma = pbVar14;\n                            *(uint *)((int)&local_6c->lma + 4) = uVar48;\n                          }\n                          bVar69 = true;\n                          if (local_84 != (asymbol **)0x0) {\n                            *(undefined4 *)&local_6c->size = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (asymbol **)0x0) {\n                      if ((((int)paVar51->rawsize == 0) && (local_a8 != (asection *)0x0)) &&\n                         (local_a8->index == 0)) {\n                        local_a8->index = 0x100;\n                      }\n                    }\n                    else {\n                      paVar51->relocation = (reloc_cache_entry *)0x1;\n                      *(undefined4 *)((int)&paVar51->rawsize + 4) = 0x101;\n                      *(undefined4 *)&local_6c->size = 1;\n                      local_6c->index = 0x101;\n                    }\n                    break;\n                  }" { (expression_statement "pcVar31 = local_6c->name;" (assignment_expression "pcVar31 = local_6c->name" identifier = (field_expression "local_6c->name" identifier -> field_identifier)) ;) (if_statement "if ((pcVar31 == pcVar47) &&\n                       (iVar43 = memcmp(pbVar14,pvVar49,(size_t)pcVar31), pvVar75 = pvVar49,\n                       pcVar26 = pcVar31, pcVar45 = pcVar47, iVar43 == 0)) {\n                      uVar63 = *(uint *)((int)&local_6c->lma + 4);\n                      pbVar50 = *(bfd_section **)&local_6c->lma;\n                      if (uVar63 != 0 || pbVar50 != (bfd_section *)0x0) {\n                        pbVar14 = paVar51->output_section;\n                        uVar48 = paVar51->alignment_power;\n                        if ((uVar48 != 0 || pbVar14 != (bfd_section *)0x0) &&\n                           ((-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)))) {\n                          *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;\n                          if (uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)) {\n                            *(bfd_section **)&local_6c->lma = pbVar14;\n                            *(uint *)((int)&local_6c->lma + 4) = uVar48;\n                          }\n                          bVar69 = true;\n                          if (local_84 != (asymbol **)0x0) {\n                            *(undefined4 *)&local_6c->size = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }" if (parenthesized_expression "((pcVar31 == pcVar47) &&\n                       (iVar43 = memcmp(pbVar14,pvVar49,(size_t)pcVar31), pvVar75 = pvVar49,\n                       pcVar26 = pcVar31, pcVar45 = pcVar47, iVar43 == 0))" ( (binary_expression "(pcVar31 == pcVar47) &&\n                       (iVar43 = memcmp(pbVar14,pvVar49,(size_t)pcVar31), pvVar75 = pvVar49,\n                       pcVar26 = pcVar31, pcVar45 = pcVar47, iVar43 == 0)" (parenthesized_expression "(pcVar31 == pcVar47)" ( (binary_expression "pcVar31 == pcVar47" identifier == identifier) )) && (parenthesized_expression "(iVar43 = memcmp(pbVar14,pvVar49,(size_t)pcVar31), pvVar75 = pvVar49,\n                       pcVar26 = pcVar31, pcVar45 = pcVar47, iVar43 == 0)" ( (comma_expression "iVar43 = memcmp(pbVar14,pvVar49,(size_t)pcVar31), pvVar75 = pvVar49,\n                       pcVar26 = pcVar31, pcVar45 = pcVar47, iVar43 == 0" (assignment_expression "iVar43 = memcmp(pbVar14,pvVar49,(size_t)pcVar31)" identifier = (call_expression "memcmp(pbVar14,pvVar49,(size_t)pcVar31)" identifier (argument_list "(pbVar14,pvVar49,(size_t)pcVar31)" ( identifier , identifier , (cast_expression "(size_t)pcVar31" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) , (comma_expression "pvVar75 = pvVar49,\n                       pcVar26 = pcVar31, pcVar45 = pcVar47, iVar43 == 0" (assignment_expression "pvVar75 = pvVar49" identifier = identifier) , (comma_expression "pcVar26 = pcVar31, pcVar45 = pcVar47, iVar43 == 0" (assignment_expression "pcVar26 = pcVar31" identifier = identifier) , (comma_expression "pcVar45 = pcVar47, iVar43 == 0" (assignment_expression "pcVar45 = pcVar47" identifier = identifier) , (binary_expression "iVar43 == 0" identifier == number_literal))))) ))) )) (compound_statement "{\n                      uVar63 = *(uint *)((int)&local_6c->lma + 4);\n                      pbVar50 = *(bfd_section **)&local_6c->lma;\n                      if (uVar63 != 0 || pbVar50 != (bfd_section *)0x0) {\n                        pbVar14 = paVar51->output_section;\n                        uVar48 = paVar51->alignment_power;\n                        if ((uVar48 != 0 || pbVar14 != (bfd_section *)0x0) &&\n                           ((-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)))) {\n                          *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;\n                          if (uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)) {\n                            *(bfd_section **)&local_6c->lma = pbVar14;\n                            *(uint *)((int)&local_6c->lma + 4) = uVar48;\n                          }\n                          bVar69 = true;\n                          if (local_84 != (asymbol **)0x0) {\n                            *(undefined4 *)&local_6c->size = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }" { (expression_statement "uVar63 = *(uint *)((int)&local_6c->lma + 4);" (assignment_expression "uVar63 = *(uint *)((int)&local_6c->lma + 4)" identifier = (pointer_expression "*(uint *)((int)&local_6c->lma + 4)" * (cast_expression "(uint *)((int)&local_6c->lma + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_6c->lma + 4)" ( (binary_expression "(int)&local_6c->lma + 4" (cast_expression "(int)&local_6c->lma" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_6c->lma" & (field_expression "local_6c->lma" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "pbVar50 = *(bfd_section **)&local_6c->lma;" (assignment_expression "pbVar50 = *(bfd_section **)&local_6c->lma" identifier = (pointer_expression "*(bfd_section **)&local_6c->lma" * (cast_expression "(bfd_section **)&local_6c->lma" ( (type_descriptor "bfd_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_6c->lma" & (field_expression "local_6c->lma" identifier -> field_identifier))))) ;) (if_statement "if (uVar63 != 0 || pbVar50 != (bfd_section *)0x0) {\n                        pbVar14 = paVar51->output_section;\n                        uVar48 = paVar51->alignment_power;\n                        if ((uVar48 != 0 || pbVar14 != (bfd_section *)0x0) &&\n                           ((-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)))) {\n                          *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;\n                          if (uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)) {\n                            *(bfd_section **)&local_6c->lma = pbVar14;\n                            *(uint *)((int)&local_6c->lma + 4) = uVar48;\n                          }\n                          bVar69 = true;\n                          if (local_84 != (asymbol **)0x0) {\n                            *(undefined4 *)&local_6c->size = 1;\n                          }\n                          break;\n                        }\n                      }" if (parenthesized_expression "(uVar63 != 0 || pbVar50 != (bfd_section *)0x0)" ( (binary_expression "uVar63 != 0 || pbVar50 != (bfd_section *)0x0" (binary_expression "uVar63 != 0" identifier != number_literal) || (binary_expression "pbVar50 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n                        pbVar14 = paVar51->output_section;\n                        uVar48 = paVar51->alignment_power;\n                        if ((uVar48 != 0 || pbVar14 != (bfd_section *)0x0) &&\n                           ((-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)))) {\n                          *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;\n                          if (uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)) {\n                            *(bfd_section **)&local_6c->lma = pbVar14;\n                            *(uint *)((int)&local_6c->lma + 4) = uVar48;\n                          }\n                          bVar69 = true;\n                          if (local_84 != (asymbol **)0x0) {\n                            *(undefined4 *)&local_6c->size = 1;\n                          }\n                          break;\n                        }\n                      }" { (expression_statement "pbVar14 = paVar51->output_section;" (assignment_expression "pbVar14 = paVar51->output_section" identifier = (field_expression "paVar51->output_section" identifier -> field_identifier)) ;) (expression_statement "uVar48 = paVar51->alignment_power;" (assignment_expression "uVar48 = paVar51->alignment_power" identifier = (field_expression "paVar51->alignment_power" identifier -> field_identifier)) ;) (if_statement "if ((uVar48 != 0 || pbVar14 != (bfd_section *)0x0) &&\n                           ((-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)))) {\n                          *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;\n                          if (uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)) {\n                            *(bfd_section **)&local_6c->lma = pbVar14;\n                            *(uint *)((int)&local_6c->lma + 4) = uVar48;\n                          }\n                          bVar69 = true;\n                          if (local_84 != (asymbol **)0x0) {\n                            *(undefined4 *)&local_6c->size = 1;\n                          }\n                          break;\n                        }" if (parenthesized_expression "((uVar48 != 0 || pbVar14 != (bfd_section *)0x0) &&\n                           ((-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59))))" ( (binary_expression "(uVar48 != 0 || pbVar14 != (bfd_section *)0x0) &&\n                           ((-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)))" (parenthesized_expression "(uVar48 != 0 || pbVar14 != (bfd_section *)0x0)" ( (binary_expression "uVar48 != 0 || pbVar14 != (bfd_section *)0x0" (binary_expression "uVar48 != 0" identifier != number_literal) || (binary_expression "pbVar14 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) && (parenthesized_expression "((-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)))" ( (parenthesized_expression "(-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59))" ( (binary_expression "-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50) ||\n                            (uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)" (binary_expression "-uVar63 - 1 < (uint)((bfd_section *)0xfffffff0 < pbVar50)" (binary_expression "-uVar63 - 1" (unary_expression "-uVar63" - identifier) - number_literal) < (call_expression "(uint)((bfd_section *)0xfffffff0 < pbVar50)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((bfd_section *)0xfffffff0 < pbVar50)" ( (binary_expression "(bfd_section *)0xfffffff0 < pbVar50" (cast_expression "(bfd_section *)0xfffffff0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )))) || (parenthesized_expression "(uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59)" ( (comma_expression "uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50),\n                            puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59" (assignment_expression "uVar60 = uVar63 + ((bfd_section *)0xfffffff0 < pbVar50)" identifier = (binary_expression "uVar63 + ((bfd_section *)0xfffffff0 < pbVar50)" identifier + (parenthesized_expression "((bfd_section *)0xfffffff0 < pbVar50)" ( (binary_expression "(bfd_section *)0xfffffff0 < pbVar50" (cast_expression "(bfd_section *)0xfffffff0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )))) , (comma_expression "puVar59 = (uint *)((int)&paVar51->output_offset + 4),\n                            *puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59" (assignment_expression "puVar59 = (uint *)((int)&paVar51->output_offset + 4)" identifier = (cast_expression "(uint *)((int)&paVar51->output_offset + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar51->output_offset + 4)" ( (binary_expression "(int)&paVar51->output_offset + 4" (cast_expression "(int)&paVar51->output_offset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar51->output_offset" & (field_expression "paVar51->output_offset" identifier -> field_identifier))) + number_literal) )))) , (binary_expression "*puVar59 <= uVar60 &&\n                            (uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59" (binary_expression "*puVar59 <= uVar60" (pointer_expression "*puVar59" * identifier) <= identifier) && (binary_expression "(uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset) <= uVar60 - *puVar59" (call_expression "(uint)(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset)" ( (binary_expression "((uint)((int)&pbVar50->next + 3U) & 0xfffffff0) <\n                                  (uint)paVar51->output_offset" (parenthesized_expression "((uint)((int)&pbVar50->next + 3U) & 0xfffffff0)" ( (binary_expression "(uint)((int)&pbVar50->next + 3U) & 0xfffffff0" (call_expression "(uint)((int)&pbVar50->next + 3U)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)&pbVar50->next + 3U)" ( (binary_expression "(int)&pbVar50->next + 3U" (cast_expression "(int)&pbVar50->next" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pbVar50->next" & (field_expression "pbVar50->next" identifier -> field_identifier))) + number_literal) ))) & number_literal) )) < (cast_expression "(uint)paVar51->output_offset" ( (type_descriptor "uint" type_identifier) ) (field_expression "paVar51->output_offset" identifier -> field_identifier))) ))) <= (binary_expression "uVar60 - *puVar59" identifier - (pointer_expression "*puVar59" * identifier)))))) ))) )) ))) )) (compound_statement "{\n                          *(undefined4 *)((int)&paVar51->rawsize + 4) = 0;\n                          if (uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)) {\n                            *(bfd_section **)&local_6c->lma = pbVar14;\n                            *(uint *)((int)&local_6c->lma + 4) = uVar48;\n                          }\n                          bVar69 = true;\n                          if (local_84 != (asymbol **)0x0) {\n                            *(undefined4 *)&local_6c->size = 1;\n                          }\n                          break;\n                        }" { (expression_statement "*(undefined4 *)((int)&paVar51->rawsize + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&paVar51->rawsize + 4) = 0" (pointer_expression "*(undefined4 *)((int)&paVar51->rawsize + 4)" * (cast_expression "(undefined4 *)((int)&paVar51->rawsize + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar51->rawsize + 4)" ( (binary_expression "(int)&paVar51->rawsize + 4" (cast_expression "(int)&paVar51->rawsize" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar51->rawsize" & (field_expression "paVar51->rawsize" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (if_statement "if (uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)) {\n                            *(bfd_section **)&local_6c->lma = pbVar14;\n                            *(uint *)((int)&local_6c->lma + 4) = uVar48;\n                          }" if (parenthesized_expression "(uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14))" ( (binary_expression "uVar63 < uVar48 || uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)" (binary_expression "uVar63 < uVar48" identifier < identifier) || (binary_expression "uVar63 - uVar48 < (uint)(pbVar50 < pbVar14)" (binary_expression "uVar63 - uVar48" identifier - identifier) < (call_expression "(uint)(pbVar50 < pbVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar50 < pbVar14)" ( (binary_expression "pbVar50 < pbVar14" identifier < identifier) ))))) )) (compound_statement "{\n                            *(bfd_section **)&local_6c->lma = pbVar14;\n                            *(uint *)((int)&local_6c->lma + 4) = uVar48;\n                          }" { (expression_statement "*(bfd_section **)&local_6c->lma = pbVar14;" (assignment_expression "*(bfd_section **)&local_6c->lma = pbVar14" (pointer_expression "*(bfd_section **)&local_6c->lma" * (cast_expression "(bfd_section **)&local_6c->lma" ( (type_descriptor "bfd_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_6c->lma" & (field_expression "local_6c->lma" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(uint *)((int)&local_6c->lma + 4) = uVar48;" (assignment_expression "*(uint *)((int)&local_6c->lma + 4) = uVar48" (pointer_expression "*(uint *)((int)&local_6c->lma + 4)" * (cast_expression "(uint *)((int)&local_6c->lma + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_6c->lma + 4)" ( (binary_expression "(int)&local_6c->lma + 4" (cast_expression "(int)&local_6c->lma" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_6c->lma" & (field_expression "local_6c->lma" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) })) (expression_statement "bVar69 = true;" (assignment_expression "bVar69 = true" identifier = true) ;) (if_statement "if (local_84 != (asymbol **)0x0) {\n                            *(undefined4 *)&local_6c->size = 1;\n                          }" if (parenthesized_expression "(local_84 != (asymbol **)0x0)" ( (binary_expression "local_84 != (asymbol **)0x0" identifier != (cast_expression "(asymbol **)0x0" ( (type_descriptor "asymbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n                            *(undefined4 *)&local_6c->size = 1;\n                          }" { (expression_statement "*(undefined4 *)&local_6c->size = 1;" (assignment_expression "*(undefined4 *)&local_6c->size = 1" (pointer_expression "*(undefined4 *)&local_6c->size" * (cast_expression "(undefined4 *)&local_6c->size" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_6c->size" & (field_expression "local_6c->size" identifier -> field_identifier)))) = number_literal) ;) })) (break_statement "break;" break ;) })) })) })) (if_statement "if (local_84 == (asymbol **)0x0) {\n                      if ((((int)paVar51->rawsize == 0) && (local_a8 != (asection *)0x0)) &&\n                         (local_a8->index == 0)) {\n                        local_a8->index = 0x100;\n                      }\n                    }\n                    else {\n                      paVar51->relocation = (reloc_cache_entry *)0x1;\n                      *(undefined4 *)((int)&paVar51->rawsize + 4) = 0x101;\n                      *(undefined4 *)&local_6c->size = 1;\n                      local_6c->index = 0x101;\n                    }" if (parenthesized_expression "(local_84 == (asymbol **)0x0)" ( (binary_expression "local_84 == (asymbol **)0x0" identifier == (cast_expression "(asymbol **)0x0" ( (type_descriptor "asymbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n                      if ((((int)paVar51->rawsize == 0) && (local_a8 != (asection *)0x0)) &&\n                         (local_a8->index == 0)) {\n                        local_a8->index = 0x100;\n                      }\n                    }" { (if_statement "if ((((int)paVar51->rawsize == 0) && (local_a8 != (asection *)0x0)) &&\n                         (local_a8->index == 0)) {\n                        local_a8->index = 0x100;\n                      }" if (parenthesized_expression "((((int)paVar51->rawsize == 0) && (local_a8 != (asection *)0x0)) &&\n                         (local_a8->index == 0))" ( (binary_expression "(((int)paVar51->rawsize == 0) && (local_a8 != (asection *)0x0)) &&\n                         (local_a8->index == 0)" (parenthesized_expression "(((int)paVar51->rawsize == 0) && (local_a8 != (asection *)0x0))" ( (binary_expression "((int)paVar51->rawsize == 0) && (local_a8 != (asection *)0x0)" (parenthesized_expression "((int)paVar51->rawsize == 0)" ( (binary_expression "(int)paVar51->rawsize == 0" (cast_expression "(int)paVar51->rawsize" ( (type_descriptor "int" primitive_type) ) (field_expression "paVar51->rawsize" identifier -> field_identifier)) == number_literal) )) && (parenthesized_expression "(local_a8 != (asection *)0x0)" ( (binary_expression "local_a8 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(local_a8->index == 0)" ( (binary_expression "local_a8->index == 0" (field_expression "local_a8->index" identifier -> field_identifier) == number_literal) ))) )) (compound_statement "{\n                        local_a8->index = 0x100;\n                      }" { (expression_statement "local_a8->index = 0x100;" (assignment_expression "local_a8->index = 0x100" (field_expression "local_a8->index" identifier -> field_identifier) = number_literal) ;) })) }) (else_clause "else {\n                      paVar51->relocation = (reloc_cache_entry *)0x1;\n                      *(undefined4 *)((int)&paVar51->rawsize + 4) = 0x101;\n                      *(undefined4 *)&local_6c->size = 1;\n                      local_6c->index = 0x101;\n                    }" else (compound_statement "{\n                      paVar51->relocation = (reloc_cache_entry *)0x1;\n                      *(undefined4 *)((int)&paVar51->rawsize + 4) = 0x101;\n                      *(undefined4 *)&local_6c->size = 1;\n                      local_6c->index = 0x101;\n                    }" { (expression_statement "paVar51->relocation = (reloc_cache_entry *)0x1;" (assignment_expression "paVar51->relocation = (reloc_cache_entry *)0x1" (field_expression "paVar51->relocation" identifier -> field_identifier) = (cast_expression "(reloc_cache_entry *)0x1" ( (type_descriptor "reloc_cache_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)((int)&paVar51->rawsize + 4) = 0x101;" (assignment_expression "*(undefined4 *)((int)&paVar51->rawsize + 4) = 0x101" (pointer_expression "*(undefined4 *)((int)&paVar51->rawsize + 4)" * (cast_expression "(undefined4 *)((int)&paVar51->rawsize + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar51->rawsize + 4)" ( (binary_expression "(int)&paVar51->rawsize + 4" (cast_expression "(int)&paVar51->rawsize" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar51->rawsize" & (field_expression "paVar51->rawsize" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&local_6c->size = 1;" (assignment_expression "*(undefined4 *)&local_6c->size = 1" (pointer_expression "*(undefined4 *)&local_6c->size" * (cast_expression "(undefined4 *)&local_6c->size" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_6c->size" & (field_expression "local_6c->size" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "local_6c->index = 0x101;" (assignment_expression "local_6c->index = 0x101" (field_expression "local_6c->index" identifier -> field_identifier) = number_literal) ;) }))) (break_statement "break;" break ;) })) (expression_statement "uVar63 = 0;" (assignment_expression "uVar63 = 0" identifier = number_literal) ;) (for_statement "for (iVar43 = 0; (int)pcVar47 - iVar52 != iVar43; iVar43 = iVar43 + 1) {\n                    uVar63 = uVar63 | (uint)*(byte *)((int)pvVar49 + iVar43 + iVar52) <<\n                                      ((char)iVar43 * '\b' & 0x1fU);\n                  }" for ( (assignment_expression "iVar43 = 0" identifier = number_literal) ; (binary_expression "(int)pcVar47 - iVar52 != iVar43" (binary_expression "(int)pcVar47 - iVar52" (cast_expression "(int)pcVar47" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) != identifier) ; (assignment_expression "iVar43 = iVar43 + 1" identifier = (binary_expression "iVar43 + 1" identifier + number_literal)) ) (compound_statement "{\n                    uVar63 = uVar63 | (uint)*(byte *)((int)pvVar49 + iVar43 + iVar52) <<\n                                      ((char)iVar43 * '\b' & 0x1fU);\n                  }" { (expression_statement "uVar63 = uVar63 | (uint)*(byte *)((int)pvVar49 + iVar43 + iVar52) <<\n                                      ((char)iVar43 * '\b' & 0x1fU);" (assignment_expression "uVar63 = uVar63 | (uint)*(byte *)((int)pvVar49 + iVar43 + iVar52) <<\n                                      ((char)iVar43 * '\b' & 0x1fU)" identifier = (binary_expression "uVar63 | (uint)*(byte *)((int)pvVar49 + iVar43 + iVar52) <<\n                                      ((char)iVar43 * '\b' & 0x1fU)" identifier | (binary_expression "(uint)*(byte *)((int)pvVar49 + iVar43 + iVar52) <<\n                                      ((char)iVar43 * '\b' & 0x1fU)" (binary_expression "(uint)*(byte *)((int)pvVar49 + iVar43 + iVar52)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)pvVar49 + iVar43 + iVar52)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar49 + iVar43 + iVar52)" ( (binary_expression "(int)pvVar49 + iVar43 + iVar52" (binary_expression "(int)pvVar49 + iVar43" (cast_expression "(int)pvVar49" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) )))) << (parenthesized_expression "((char)iVar43 * '\b' & 0x1fU)" ( (binary_expression "(char)iVar43 * '\b' & 0x1fU" (binary_expression "(char)iVar43 * '\b'" (cast_expression "(char)iVar43" ( (type_descriptor "char" primitive_type) ) identifier) * (char_literal "'\b'" ' escape_sequence ')) & number_literal) ))))) ;) })) (expression_statement "local_6c = (bfd_section *)0x0;" (assignment_expression "local_6c = (bfd_section *)0x0" identifier = (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar47 = pbVar50->name;" (assignment_expression "pcVar47 = pbVar50->name" identifier = (field_expression "pbVar50->name" identifier -> field_identifier)) ;) (expression_statement "pcVar31 = (char *)((int)&pbVar14->name + iVar52);" (assignment_expression "pcVar31 = (char *)((int)&pbVar14->name + iVar52)" identifier = (cast_expression "(char *)((int)&pbVar14->name + iVar52)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pbVar14->name + iVar52)" ( (binary_expression "(int)&pbVar14->name + iVar52" (cast_expression "(int)&pbVar14->name" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pbVar14->name" & (field_expression "pbVar14->name" identifier -> field_identifier))) + identifier) )))) ;) (for_statement "for (uVar48 = 0; (int)pcVar47 - iVar52 != uVar48; uVar48 = uVar48 + 1) {\n                    local_6c = (bfd_section *)\n                               ((uint)local_6c |\n                               (uint)(byte)pcVar31[uVar48] << ((char)uVar48 * '\b' & 0x1fU));\n                  }" for ( (assignment_expression "uVar48 = 0" identifier = number_literal) ; (binary_expression "(int)pcVar47 - iVar52 != uVar48" (binary_expression "(int)pcVar47 - iVar52" (cast_expression "(int)pcVar47" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) != identifier) ; (assignment_expression "uVar48 = uVar48 + 1" identifier = (binary_expression "uVar48 + 1" identifier + number_literal)) ) (compound_statement "{\n                    local_6c = (bfd_section *)\n                               ((uint)local_6c |\n                               (uint)(byte)pcVar31[uVar48] << ((char)uVar48 * '\b' & 0x1fU));\n                  }" { (expression_statement "local_6c = (bfd_section *)\n                               ((uint)local_6c |\n                               (uint)(byte)pcVar31[uVar48] << ((char)uVar48 * '\b' & 0x1fU));" (assignment_expression "local_6c = (bfd_section *)\n                               ((uint)local_6c |\n                               (uint)(byte)pcVar31[uVar48] << ((char)uVar48 * '\b' & 0x1fU))" identifier = (cast_expression "(bfd_section *)\n                               ((uint)local_6c |\n                               (uint)(byte)pcVar31[uVar48] << ((char)uVar48 * '\b' & 0x1fU))" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)local_6c |\n                               (uint)(byte)pcVar31[uVar48] << ((char)uVar48 * '\b' & 0x1fU))" ( (binary_expression "(uint)local_6c |\n                               (uint)(byte)pcVar31[uVar48] << ((char)uVar48 * '\b' & 0x1fU)" (cast_expression "(uint)local_6c" ( (type_descriptor "uint" type_identifier) ) identifier) | (binary_expression "(uint)(byte)pcVar31[uVar48] << ((char)uVar48 * '\b' & 0x1fU)" (cast_expression "(uint)(byte)pcVar31[uVar48]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pcVar31[uVar48]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar31[uVar48]" identifier [ identifier ]))) << (parenthesized_expression "((char)uVar48 * '\b' & 0x1fU)" ( (binary_expression "(char)uVar48 * '\b' & 0x1fU" (binary_expression "(char)uVar48 * '\b'" (cast_expression "(char)uVar48" ( (type_descriptor "char" primitive_type) ) identifier) * (char_literal "'\b'" ' escape_sequence ')) & number_literal) )))) )))) ;) })) (expression_statement "uVar67 = 0;" (assignment_expression "uVar67 = 0" identifier = number_literal) ;) (expression_statement "uVar63 = (int)local_6c + uVar63;" (assignment_expression "uVar63 = (int)local_6c + uVar63" identifier = (binary_expression "(int)local_6c + uVar63" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (for_statement "for (uVar60 = uVar63; uVar60 != 0; uVar60 = uVar60 >> 8) {\n                    uVar67 = uVar67 + 1;\n                  }" for ( (assignment_expression "uVar60 = uVar63" identifier = identifier) ; (binary_expression "uVar60 != 0" identifier != number_literal) ; (assignment_expression "uVar60 = uVar60 >> 8" identifier = (binary_expression "uVar60 >> 8" identifier >> number_literal)) ) (compound_statement "{\n                    uVar67 = uVar67 + 1;\n                  }" { (expression_statement "uVar67 = uVar67 + 1;" (assignment_expression "uVar67 = uVar67 + 1" identifier = (binary_expression "uVar67 + 1" identifier + number_literal)) ;) })) (expression_statement "in_stack_ffffff28 = pbVar50;" (assignment_expression "in_stack_ffffff28 = pbVar50" identifier = identifier) ;) (if_statement "if (uVar67 < uVar48) {\n                    goto LAB_0001b1a6;\n                  }" if (parenthesized_expression "(uVar67 < uVar48)" ( (binary_expression "uVar67 < uVar48" identifier < identifier) )) (compound_statement "{\n                    goto LAB_0001b1a6;\n                  }" { (goto_statement "goto LAB_0001b1a6;" goto statement_identifier ;) })) })) (expression_statement "local_6c = (bfd_section *)&pbVar50[-1].entsize;" (assignment_expression "local_6c = (bfd_section *)&pbVar50[-1].entsize" identifier = (cast_expression "(bfd_section *)&pbVar50[-1].entsize" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pbVar50[-1].entsize" & (field_expression "pbVar50[-1].entsize" (subscript_expression "pbVar50[-1]" identifier [ number_literal ]) . field_identifier)))) ;) })) })) (goto_statement "goto LAB_0001afd1;" goto statement_identifier ;) })) (if_statement "if (!bVar69) goto LAB_0001ae41;" if (parenthesized_expression "(!bVar69)" ( (unary_expression "!bVar69" ! identifier) )) (goto_statement "goto LAB_0001ae41;" goto statement_identifier ;)) (expression_statement "pvVar49 = (void *)xmalloc(pcVar27,pvVar75,pcVar26,pcVar45);" (assignment_expression "pvVar49 = (void *)xmalloc(pcVar27,pvVar75,pcVar26,pcVar45)" identifier = (cast_expression "(void *)xmalloc(pcVar27,pvVar75,pcVar26,pcVar45)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(pcVar27,pvVar75,pcVar26,pcVar45)" identifier (argument_list "(pcVar27,pvVar75,pcVar26,pcVar45)" ( identifier , identifier , identifier , identifier ))))) ;) (expression_statement "local_cc = local_7c;" (assignment_expression "local_cc = local_7c" identifier = identifier) ;) (expression_statement "pvVar75 = pvVar49;" (assignment_expression "pvVar75 = pvVar49" identifier = identifier) ;) (expression_statement "in_stack_ffffff28 = local_78;" (assignment_expression "in_stack_ffffff28 = local_78" identifier = identifier) ;) (expression_statement "local_a8 = (asection *)pbVar39;" (assignment_expression "local_a8 = (asection *)pbVar39" identifier = (cast_expression "(asection *)pbVar39" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (for_statement "for (paVar51 = local_74; paVar51 < paVar68;\n              paVar51 = (asection *)((int)&paVar51->size + 4)) {\n            pcVar45 = paVar51->name;\n            uVar63 = paVar51->index;\n            pcVar26 = pcVar45 + paVar51->id + 0xc;\n            pvVar54 = pvVar75;\n            if (uVar63 != 0) {\n              if ((int)paVar51->size == 0) {\n                memcpy(pvVar75,local_a8,(size_t)pcVar26);\n                pvVar54 = (void *)((int)pvVar75 + (int)pcVar26);\n              }\n              else {\n                pbVar1 = &paVar51->vma;\n                bVar72 = *pbVar1;\n                bVar73 = *pbVar1;\n                p_Var15 = ibfd->xvec->bfd_putx32;\n                __dest = (void *)((int)pvVar75 + 0xc);\n                pvVar54 = (void *)((int)__dest + (int)pcVar45);\n                if (((*(asection **)((int)&paVar51->vma + 4) == local_78) &&\n                    (*(char **)pbVar1 == local_7c)) &&\n                   ((*(asection **)((int)&paVar51->lma + 4) == in_stack_ffffff28 &&\n                    (*(char **)&paVar51->lma == local_cc)))) {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  (*ibfd->xvec->bfd_putx32)(0,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                }\n                else {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  uVar48 = 8;\n                  if ((ibfd->xvec->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    uVar48 = 0x10;\n                  }\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar48,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                  pbVar13 = ibfd->xvec;\n                  if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    (*pbVar13->bfd_putx64)(bVar73,pvVar54);\n                    (*ibfd->xvec->bfd_putx64)(paVar51->lma,(void *)((int)pvVar54 + 8));\n                    pvVar54 = (void *)((int)pvVar54 + 0x10);\n                  }\n                  else {\n                    (*pbVar13->bfd_putx32)(bVar72,pvVar54);\n                    (*ibfd->xvec->bfd_putx32)(paVar51->lma,(void *)((int)pvVar54 + 4));\n                    pvVar54 = (void *)((int)pvVar54 + 8);\n                  }\n                }\n              }\n              local_7c = *(char **)&paVar51->vma;\n              local_78 = *(asection **)((int)&paVar51->vma + 4);\n              local_cc = *(char **)&paVar51->lma;\n              in_stack_ffffff28 = *(asection **)((int)&paVar51->lma + 4);\n            }\n            local_a8 = (asection *)((int)local_a8 + (int)pcVar26);\n            pvVar75 = pvVar54;\n          }" for ( (assignment_expression "paVar51 = local_74" identifier = identifier) ; (binary_expression "paVar51 < paVar68" identifier < identifier) ; (assignment_expression "paVar51 = (asection *)((int)&paVar51->size + 4)" identifier = (cast_expression "(asection *)((int)&paVar51->size + 4)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar51->size + 4)" ( (binary_expression "(int)&paVar51->size + 4" (cast_expression "(int)&paVar51->size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar51->size" & (field_expression "paVar51->size" identifier -> field_identifier))) + number_literal) )))) ) (compound_statement "{\n            pcVar45 = paVar51->name;\n            uVar63 = paVar51->index;\n            pcVar26 = pcVar45 + paVar51->id + 0xc;\n            pvVar54 = pvVar75;\n            if (uVar63 != 0) {\n              if ((int)paVar51->size == 0) {\n                memcpy(pvVar75,local_a8,(size_t)pcVar26);\n                pvVar54 = (void *)((int)pvVar75 + (int)pcVar26);\n              }\n              else {\n                pbVar1 = &paVar51->vma;\n                bVar72 = *pbVar1;\n                bVar73 = *pbVar1;\n                p_Var15 = ibfd->xvec->bfd_putx32;\n                __dest = (void *)((int)pvVar75 + 0xc);\n                pvVar54 = (void *)((int)__dest + (int)pcVar45);\n                if (((*(asection **)((int)&paVar51->vma + 4) == local_78) &&\n                    (*(char **)pbVar1 == local_7c)) &&\n                   ((*(asection **)((int)&paVar51->lma + 4) == in_stack_ffffff28 &&\n                    (*(char **)&paVar51->lma == local_cc)))) {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  (*ibfd->xvec->bfd_putx32)(0,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                }\n                else {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  uVar48 = 8;\n                  if ((ibfd->xvec->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    uVar48 = 0x10;\n                  }\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar48,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                  pbVar13 = ibfd->xvec;\n                  if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    (*pbVar13->bfd_putx64)(bVar73,pvVar54);\n                    (*ibfd->xvec->bfd_putx64)(paVar51->lma,(void *)((int)pvVar54 + 8));\n                    pvVar54 = (void *)((int)pvVar54 + 0x10);\n                  }\n                  else {\n                    (*pbVar13->bfd_putx32)(bVar72,pvVar54);\n                    (*ibfd->xvec->bfd_putx32)(paVar51->lma,(void *)((int)pvVar54 + 4));\n                    pvVar54 = (void *)((int)pvVar54 + 8);\n                  }\n                }\n              }\n              local_7c = *(char **)&paVar51->vma;\n              local_78 = *(asection **)((int)&paVar51->vma + 4);\n              local_cc = *(char **)&paVar51->lma;\n              in_stack_ffffff28 = *(asection **)((int)&paVar51->lma + 4);\n            }\n            local_a8 = (asection *)((int)local_a8 + (int)pcVar26);\n            pvVar75 = pvVar54;\n          }" { (expression_statement "pcVar45 = paVar51->name;" (assignment_expression "pcVar45 = paVar51->name" identifier = (field_expression "paVar51->name" identifier -> field_identifier)) ;) (expression_statement "uVar63 = paVar51->index;" (assignment_expression "uVar63 = paVar51->index" identifier = (field_expression "paVar51->index" identifier -> field_identifier)) ;) (expression_statement "pcVar26 = pcVar45 + paVar51->id + 0xc;" (assignment_expression "pcVar26 = pcVar45 + paVar51->id + 0xc" identifier = (binary_expression "pcVar45 + paVar51->id + 0xc" (binary_expression "pcVar45 + paVar51->id" identifier + (field_expression "paVar51->id" identifier -> field_identifier)) + number_literal)) ;) (expression_statement "pvVar54 = pvVar75;" (assignment_expression "pvVar54 = pvVar75" identifier = identifier) ;) (if_statement "if (uVar63 != 0) {\n              if ((int)paVar51->size == 0) {\n                memcpy(pvVar75,local_a8,(size_t)pcVar26);\n                pvVar54 = (void *)((int)pvVar75 + (int)pcVar26);\n              }\n              else {\n                pbVar1 = &paVar51->vma;\n                bVar72 = *pbVar1;\n                bVar73 = *pbVar1;\n                p_Var15 = ibfd->xvec->bfd_putx32;\n                __dest = (void *)((int)pvVar75 + 0xc);\n                pvVar54 = (void *)((int)__dest + (int)pcVar45);\n                if (((*(asection **)((int)&paVar51->vma + 4) == local_78) &&\n                    (*(char **)pbVar1 == local_7c)) &&\n                   ((*(asection **)((int)&paVar51->lma + 4) == in_stack_ffffff28 &&\n                    (*(char **)&paVar51->lma == local_cc)))) {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  (*ibfd->xvec->bfd_putx32)(0,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                }\n                else {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  uVar48 = 8;\n                  if ((ibfd->xvec->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    uVar48 = 0x10;\n                  }\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar48,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                  pbVar13 = ibfd->xvec;\n                  if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    (*pbVar13->bfd_putx64)(bVar73,pvVar54);\n                    (*ibfd->xvec->bfd_putx64)(paVar51->lma,(void *)((int)pvVar54 + 8));\n                    pvVar54 = (void *)((int)pvVar54 + 0x10);\n                  }\n                  else {\n                    (*pbVar13->bfd_putx32)(bVar72,pvVar54);\n                    (*ibfd->xvec->bfd_putx32)(paVar51->lma,(void *)((int)pvVar54 + 4));\n                    pvVar54 = (void *)((int)pvVar54 + 8);\n                  }\n                }\n              }\n              local_7c = *(char **)&paVar51->vma;\n              local_78 = *(asection **)((int)&paVar51->vma + 4);\n              local_cc = *(char **)&paVar51->lma;\n              in_stack_ffffff28 = *(asection **)((int)&paVar51->lma + 4);\n            }" if (parenthesized_expression "(uVar63 != 0)" ( (binary_expression "uVar63 != 0" identifier != number_literal) )) (compound_statement "{\n              if ((int)paVar51->size == 0) {\n                memcpy(pvVar75,local_a8,(size_t)pcVar26);\n                pvVar54 = (void *)((int)pvVar75 + (int)pcVar26);\n              }\n              else {\n                pbVar1 = &paVar51->vma;\n                bVar72 = *pbVar1;\n                bVar73 = *pbVar1;\n                p_Var15 = ibfd->xvec->bfd_putx32;\n                __dest = (void *)((int)pvVar75 + 0xc);\n                pvVar54 = (void *)((int)__dest + (int)pcVar45);\n                if (((*(asection **)((int)&paVar51->vma + 4) == local_78) &&\n                    (*(char **)pbVar1 == local_7c)) &&\n                   ((*(asection **)((int)&paVar51->lma + 4) == in_stack_ffffff28 &&\n                    (*(char **)&paVar51->lma == local_cc)))) {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  (*ibfd->xvec->bfd_putx32)(0,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                }\n                else {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  uVar48 = 8;\n                  if ((ibfd->xvec->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    uVar48 = 0x10;\n                  }\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar48,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                  pbVar13 = ibfd->xvec;\n                  if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    (*pbVar13->bfd_putx64)(bVar73,pvVar54);\n                    (*ibfd->xvec->bfd_putx64)(paVar51->lma,(void *)((int)pvVar54 + 8));\n                    pvVar54 = (void *)((int)pvVar54 + 0x10);\n                  }\n                  else {\n                    (*pbVar13->bfd_putx32)(bVar72,pvVar54);\n                    (*ibfd->xvec->bfd_putx32)(paVar51->lma,(void *)((int)pvVar54 + 4));\n                    pvVar54 = (void *)((int)pvVar54 + 8);\n                  }\n                }\n              }\n              local_7c = *(char **)&paVar51->vma;\n              local_78 = *(asection **)((int)&paVar51->vma + 4);\n              local_cc = *(char **)&paVar51->lma;\n              in_stack_ffffff28 = *(asection **)((int)&paVar51->lma + 4);\n            }" { (if_statement "if ((int)paVar51->size == 0) {\n                memcpy(pvVar75,local_a8,(size_t)pcVar26);\n                pvVar54 = (void *)((int)pvVar75 + (int)pcVar26);\n              }\n              else {\n                pbVar1 = &paVar51->vma;\n                bVar72 = *pbVar1;\n                bVar73 = *pbVar1;\n                p_Var15 = ibfd->xvec->bfd_putx32;\n                __dest = (void *)((int)pvVar75 + 0xc);\n                pvVar54 = (void *)((int)__dest + (int)pcVar45);\n                if (((*(asection **)((int)&paVar51->vma + 4) == local_78) &&\n                    (*(char **)pbVar1 == local_7c)) &&\n                   ((*(asection **)((int)&paVar51->lma + 4) == in_stack_ffffff28 &&\n                    (*(char **)&paVar51->lma == local_cc)))) {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  (*ibfd->xvec->bfd_putx32)(0,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                }\n                else {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  uVar48 = 8;\n                  if ((ibfd->xvec->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    uVar48 = 0x10;\n                  }\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar48,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                  pbVar13 = ibfd->xvec;\n                  if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    (*pbVar13->bfd_putx64)(bVar73,pvVar54);\n                    (*ibfd->xvec->bfd_putx64)(paVar51->lma,(void *)((int)pvVar54 + 8));\n                    pvVar54 = (void *)((int)pvVar54 + 0x10);\n                  }\n                  else {\n                    (*pbVar13->bfd_putx32)(bVar72,pvVar54);\n                    (*ibfd->xvec->bfd_putx32)(paVar51->lma,(void *)((int)pvVar54 + 4));\n                    pvVar54 = (void *)((int)pvVar54 + 8);\n                  }\n                }\n              }" if (parenthesized_expression "((int)paVar51->size == 0)" ( (binary_expression "(int)paVar51->size == 0" (cast_expression "(int)paVar51->size" ( (type_descriptor "int" primitive_type) ) (field_expression "paVar51->size" identifier -> field_identifier)) == number_literal) )) (compound_statement "{\n                memcpy(pvVar75,local_a8,(size_t)pcVar26);\n                pvVar54 = (void *)((int)pvVar75 + (int)pcVar26);\n              }" { (expression_statement "memcpy(pvVar75,local_a8,(size_t)pcVar26);" (call_expression "memcpy(pvVar75,local_a8,(size_t)pcVar26)" identifier (argument_list "(pvVar75,local_a8,(size_t)pcVar26)" ( identifier , identifier , (cast_expression "(size_t)pcVar26" ( (type_descriptor "size_t" primitive_type) ) identifier) ))) ;) (expression_statement "pvVar54 = (void *)((int)pvVar75 + (int)pcVar26);" (assignment_expression "pvVar54 = (void *)((int)pvVar75 + (int)pcVar26)" identifier = (cast_expression "(void *)((int)pvVar75 + (int)pcVar26)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar75 + (int)pcVar26)" ( (binary_expression "(int)pvVar75 + (int)pcVar26" (cast_expression "(int)pvVar75" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pcVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }) (else_clause "else {\n                pbVar1 = &paVar51->vma;\n                bVar72 = *pbVar1;\n                bVar73 = *pbVar1;\n                p_Var15 = ibfd->xvec->bfd_putx32;\n                __dest = (void *)((int)pvVar75 + 0xc);\n                pvVar54 = (void *)((int)__dest + (int)pcVar45);\n                if (((*(asection **)((int)&paVar51->vma + 4) == local_78) &&\n                    (*(char **)pbVar1 == local_7c)) &&\n                   ((*(asection **)((int)&paVar51->lma + 4) == in_stack_ffffff28 &&\n                    (*(char **)&paVar51->lma == local_cc)))) {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  (*ibfd->xvec->bfd_putx32)(0,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                }\n                else {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  uVar48 = 8;\n                  if ((ibfd->xvec->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    uVar48 = 0x10;\n                  }\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar48,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                  pbVar13 = ibfd->xvec;\n                  if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    (*pbVar13->bfd_putx64)(bVar73,pvVar54);\n                    (*ibfd->xvec->bfd_putx64)(paVar51->lma,(void *)((int)pvVar54 + 8));\n                    pvVar54 = (void *)((int)pvVar54 + 0x10);\n                  }\n                  else {\n                    (*pbVar13->bfd_putx32)(bVar72,pvVar54);\n                    (*ibfd->xvec->bfd_putx32)(paVar51->lma,(void *)((int)pvVar54 + 4));\n                    pvVar54 = (void *)((int)pvVar54 + 8);\n                  }\n                }\n              }" else (compound_statement "{\n                pbVar1 = &paVar51->vma;\n                bVar72 = *pbVar1;\n                bVar73 = *pbVar1;\n                p_Var15 = ibfd->xvec->bfd_putx32;\n                __dest = (void *)((int)pvVar75 + 0xc);\n                pvVar54 = (void *)((int)__dest + (int)pcVar45);\n                if (((*(asection **)((int)&paVar51->vma + 4) == local_78) &&\n                    (*(char **)pbVar1 == local_7c)) &&\n                   ((*(asection **)((int)&paVar51->lma + 4) == in_stack_ffffff28 &&\n                    (*(char **)&paVar51->lma == local_cc)))) {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  (*ibfd->xvec->bfd_putx32)(0,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                }\n                else {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  uVar48 = 8;\n                  if ((ibfd->xvec->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    uVar48 = 0x10;\n                  }\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar48,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                  pbVar13 = ibfd->xvec;\n                  if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    (*pbVar13->bfd_putx64)(bVar73,pvVar54);\n                    (*ibfd->xvec->bfd_putx64)(paVar51->lma,(void *)((int)pvVar54 + 8));\n                    pvVar54 = (void *)((int)pvVar54 + 0x10);\n                  }\n                  else {\n                    (*pbVar13->bfd_putx32)(bVar72,pvVar54);\n                    (*ibfd->xvec->bfd_putx32)(paVar51->lma,(void *)((int)pvVar54 + 4));\n                    pvVar54 = (void *)((int)pvVar54 + 8);\n                  }\n                }\n              }" { (expression_statement "pbVar1 = &paVar51->vma;" (assignment_expression "pbVar1 = &paVar51->vma" identifier = (pointer_expression "&paVar51->vma" & (field_expression "paVar51->vma" identifier -> field_identifier))) ;) (expression_statement "bVar72 = *pbVar1;" (assignment_expression "bVar72 = *pbVar1" identifier = (pointer_expression "*pbVar1" * identifier)) ;) (expression_statement "bVar73 = *pbVar1;" (assignment_expression "bVar73 = *pbVar1" identifier = (pointer_expression "*pbVar1" * identifier)) ;) (expression_statement "p_Var15 = ibfd->xvec->bfd_putx32;" (assignment_expression "p_Var15 = ibfd->xvec->bfd_putx32" identifier = (field_expression "ibfd->xvec->bfd_putx32" (field_expression "ibfd->xvec" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "__dest = (void *)((int)pvVar75 + 0xc);" (assignment_expression "__dest = (void *)((int)pvVar75 + 0xc)" identifier = (cast_expression "(void *)((int)pvVar75 + 0xc)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar75 + 0xc)" ( (binary_expression "(int)pvVar75 + 0xc" (cast_expression "(int)pvVar75" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pvVar54 = (void *)((int)__dest + (int)pcVar45);" (assignment_expression "pvVar54 = (void *)((int)__dest + (int)pcVar45)" identifier = (cast_expression "(void *)((int)__dest + (int)pcVar45)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__dest + (int)pcVar45)" ( (binary_expression "(int)__dest + (int)pcVar45" (cast_expression "(int)__dest" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pcVar45" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (((*(asection **)((int)&paVar51->vma + 4) == local_78) &&\n                    (*(char **)pbVar1 == local_7c)) &&\n                   ((*(asection **)((int)&paVar51->lma + 4) == in_stack_ffffff28 &&\n                    (*(char **)&paVar51->lma == local_cc)))) {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  (*ibfd->xvec->bfd_putx32)(0,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                }\n                else {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  uVar48 = 8;\n                  if ((ibfd->xvec->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    uVar48 = 0x10;\n                  }\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar48,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                  pbVar13 = ibfd->xvec;\n                  if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    (*pbVar13->bfd_putx64)(bVar73,pvVar54);\n                    (*ibfd->xvec->bfd_putx64)(paVar51->lma,(void *)((int)pvVar54 + 8));\n                    pvVar54 = (void *)((int)pvVar54 + 0x10);\n                  }\n                  else {\n                    (*pbVar13->bfd_putx32)(bVar72,pvVar54);\n                    (*ibfd->xvec->bfd_putx32)(paVar51->lma,(void *)((int)pvVar54 + 4));\n                    pvVar54 = (void *)((int)pvVar54 + 8);\n                  }\n                }" if (parenthesized_expression "(((*(asection **)((int)&paVar51->vma + 4) == local_78) &&\n                    (*(char **)pbVar1 == local_7c)) &&\n                   ((*(asection **)((int)&paVar51->lma + 4) == in_stack_ffffff28 &&\n                    (*(char **)&paVar51->lma == local_cc))))" ( (binary_expression "((*(asection **)((int)&paVar51->vma + 4) == local_78) &&\n                    (*(char **)pbVar1 == local_7c)) &&\n                   ((*(asection **)((int)&paVar51->lma + 4) == in_stack_ffffff28 &&\n                    (*(char **)&paVar51->lma == local_cc)))" (parenthesized_expression "((*(asection **)((int)&paVar51->vma + 4) == local_78) &&\n                    (*(char **)pbVar1 == local_7c))" ( (binary_expression "(*(asection **)((int)&paVar51->vma + 4) == local_78) &&\n                    (*(char **)pbVar1 == local_7c)" (parenthesized_expression "(*(asection **)((int)&paVar51->vma + 4) == local_78)" ( (binary_expression "*(asection **)((int)&paVar51->vma + 4) == local_78" (pointer_expression "*(asection **)((int)&paVar51->vma + 4)" * (cast_expression "(asection **)((int)&paVar51->vma + 4)" ( (type_descriptor "asection **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&paVar51->vma + 4)" ( (binary_expression "(int)&paVar51->vma + 4" (cast_expression "(int)&paVar51->vma" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar51->vma" & (field_expression "paVar51->vma" identifier -> field_identifier))) + number_literal) )))) == identifier) )) && (parenthesized_expression "(*(char **)pbVar1 == local_7c)" ( (binary_expression "*(char **)pbVar1 == local_7c" (pointer_expression "*(char **)pbVar1" * (cast_expression "(char **)pbVar1" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) == identifier) ))) )) && (parenthesized_expression "((*(asection **)((int)&paVar51->lma + 4) == in_stack_ffffff28 &&\n                    (*(char **)&paVar51->lma == local_cc)))" ( (parenthesized_expression "(*(asection **)((int)&paVar51->lma + 4) == in_stack_ffffff28 &&\n                    (*(char **)&paVar51->lma == local_cc))" ( (binary_expression "*(asection **)((int)&paVar51->lma + 4) == in_stack_ffffff28 &&\n                    (*(char **)&paVar51->lma == local_cc)" (binary_expression "*(asection **)((int)&paVar51->lma + 4) == in_stack_ffffff28" (pointer_expression "*(asection **)((int)&paVar51->lma + 4)" * (cast_expression "(asection **)((int)&paVar51->lma + 4)" ( (type_descriptor "asection **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&paVar51->lma + 4)" ( (binary_expression "(int)&paVar51->lma + 4" (cast_expression "(int)&paVar51->lma" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar51->lma" & (field_expression "paVar51->lma" identifier -> field_identifier))) + number_literal) )))) == identifier) && (parenthesized_expression "(*(char **)&paVar51->lma == local_cc)" ( (binary_expression "*(char **)&paVar51->lma == local_cc" (pointer_expression "*(char **)&paVar51->lma" * (cast_expression "(char **)&paVar51->lma" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&paVar51->lma" & (field_expression "paVar51->lma" identifier -> field_identifier)))) == identifier) ))) )) ))) )) (compound_statement "{\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  (*ibfd->xvec->bfd_putx32)(0,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                }" { (expression_statement "(*p_Var15)(ZEXT48(pcVar45),pvVar75);" (call_expression "(*p_Var15)(ZEXT48(pcVar45),pvVar75)" (parenthesized_expression "(*p_Var15)" ( (pointer_expression "*p_Var15" * identifier) )) (argument_list "(ZEXT48(pcVar45),pvVar75)" ( (call_expression "ZEXT48(pcVar45)" identifier (argument_list "(pcVar45)" ( identifier ))) , identifier ))) ;) (expression_statement "(*ibfd->xvec->bfd_putx32)(0,(void *)((int)pvVar75 + 4));" (call_expression "(*ibfd->xvec->bfd_putx32)(0,(void *)((int)pvVar75 + 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 "(0,(void *)((int)pvVar75 + 4))" ( number_literal , (cast_expression "(void *)((int)pvVar75 + 4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar75 + 4)" ( (binary_expression "(int)pvVar75 + 4" (cast_expression "(int)pvVar75" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ))) ;) (expression_statement "(*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));" (call_expression "(*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8))" (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 "((ulonglong)uVar63,(void *)((int)pvVar75 + 8))" ( (cast_expression "(ulonglong)uVar63" ( (type_descriptor "ulonglong" type_identifier) ) identifier) , (cast_expression "(void *)((int)pvVar75 + 8)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar75 + 8)" ( (binary_expression "(int)pvVar75 + 8" (cast_expression "(int)pvVar75" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ))) ;) (expression_statement "memcpy(__dest,paVar51->next,(size_t)pcVar45);" (call_expression "memcpy(__dest,paVar51->next,(size_t)pcVar45)" identifier (argument_list "(__dest,paVar51->next,(size_t)pcVar45)" ( identifier , (field_expression "paVar51->next" identifier -> field_identifier) , (cast_expression "(size_t)pcVar45" ( (type_descriptor "size_t" primitive_type) ) identifier) ))) ;) }) (else_clause "else {\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  uVar48 = 8;\n                  if ((ibfd->xvec->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    uVar48 = 0x10;\n                  }\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar48,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                  pbVar13 = ibfd->xvec;\n                  if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    (*pbVar13->bfd_putx64)(bVar73,pvVar54);\n                    (*ibfd->xvec->bfd_putx64)(paVar51->lma,(void *)((int)pvVar54 + 8));\n                    pvVar54 = (void *)((int)pvVar54 + 0x10);\n                  }\n                  else {\n                    (*pbVar13->bfd_putx32)(bVar72,pvVar54);\n                    (*ibfd->xvec->bfd_putx32)(paVar51->lma,(void *)((int)pvVar54 + 4));\n                    pvVar54 = (void *)((int)pvVar54 + 8);\n                  }\n                }" else (compound_statement "{\n                  (*p_Var15)(ZEXT48(pcVar45),pvVar75);\n                  uVar48 = 8;\n                  if ((ibfd->xvec->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    uVar48 = 0x10;\n                  }\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar48,(void *)((int)pvVar75 + 4));\n                  (*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));\n                  memcpy(__dest,paVar51->next,(size_t)pcVar45);\n                  pbVar13 = ibfd->xvec;\n                  if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    (*pbVar13->bfd_putx64)(bVar73,pvVar54);\n                    (*ibfd->xvec->bfd_putx64)(paVar51->lma,(void *)((int)pvVar54 + 8));\n                    pvVar54 = (void *)((int)pvVar54 + 0x10);\n                  }\n                  else {\n                    (*pbVar13->bfd_putx32)(bVar72,pvVar54);\n                    (*ibfd->xvec->bfd_putx32)(paVar51->lma,(void *)((int)pvVar54 + 4));\n                    pvVar54 = (void *)((int)pvVar54 + 8);\n                  }\n                }" { (expression_statement "(*p_Var15)(ZEXT48(pcVar45),pvVar75);" (call_expression "(*p_Var15)(ZEXT48(pcVar45),pvVar75)" (parenthesized_expression "(*p_Var15)" ( (pointer_expression "*p_Var15" * identifier) )) (argument_list "(ZEXT48(pcVar45),pvVar75)" ( (call_expression "ZEXT48(pcVar45)" identifier (argument_list "(pcVar45)" ( identifier ))) , identifier ))) ;) (expression_statement "uVar48 = 8;" (assignment_expression "uVar48 = 8" identifier = number_literal) ;) (if_statement "if ((ibfd->xvec->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    uVar48 = 0x10;\n                  }" if (parenthesized_expression "((ibfd->xvec->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02'))" ( (binary_expression "(ibfd->xvec->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')" (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) )) && (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                    uVar48 = 0x10;\n                  }" { (expression_statement "uVar48 = 0x10;" (assignment_expression "uVar48 = 0x10" identifier = number_literal) ;) })) (expression_statement "(*ibfd->xvec->bfd_putx32)((ulonglong)uVar48,(void *)((int)pvVar75 + 4));" (call_expression "(*ibfd->xvec->bfd_putx32)((ulonglong)uVar48,(void *)((int)pvVar75 + 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 "((ulonglong)uVar48,(void *)((int)pvVar75 + 4))" ( (cast_expression "(ulonglong)uVar48" ( (type_descriptor "ulonglong" type_identifier) ) identifier) , (cast_expression "(void *)((int)pvVar75 + 4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar75 + 4)" ( (binary_expression "(int)pvVar75 + 4" (cast_expression "(int)pvVar75" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ))) ;) (expression_statement "(*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8));" (call_expression "(*ibfd->xvec->bfd_putx32)((ulonglong)uVar63,(void *)((int)pvVar75 + 8))" (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 "((ulonglong)uVar63,(void *)((int)pvVar75 + 8))" ( (cast_expression "(ulonglong)uVar63" ( (type_descriptor "ulonglong" type_identifier) ) identifier) , (cast_expression "(void *)((int)pvVar75 + 8)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar75 + 8)" ( (binary_expression "(int)pvVar75 + 8" (cast_expression "(int)pvVar75" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ))) ;) (expression_statement "memcpy(__dest,paVar51->next,(size_t)pcVar45);" (call_expression "memcpy(__dest,paVar51->next,(size_t)pcVar45)" identifier (argument_list "(__dest,paVar51->next,(size_t)pcVar45)" ( identifier , (field_expression "paVar51->next" identifier -> field_identifier) , (cast_expression "(size_t)pcVar45" ( (type_descriptor "size_t" primitive_type) ) identifier) ))) ;) (expression_statement "pbVar13 = ibfd->xvec;" (assignment_expression "pbVar13 = ibfd->xvec" identifier = (field_expression "ibfd->xvec" identifier -> field_identifier)) ;) (if_statement "if ((pbVar13->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {\n                    (*pbVar13->bfd_putx64)(bVar73,pvVar54);\n                    (*ibfd->xvec->bfd_putx64)(paVar51->lma,(void *)((int)pvVar54 + 8));\n                    pvVar54 = (void *)((int)pvVar54 + 0x10);\n                  }\n                  else {\n                    (*pbVar13->bfd_putx32)(bVar72,pvVar54);\n                    (*ibfd->xvec->bfd_putx32)(paVar51->lma,(void *)((int)pvVar54 + 4));\n                    pvVar54 = (void *)((int)pvVar54 + 8);\n                  }" if (parenthesized_expression "((pbVar13->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02'))" ( (binary_expression "(pbVar13->flavour == bfd_target_elf_flavour) &&\n                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')" (parenthesized_expression "(pbVar13->flavour == bfd_target_elf_flavour)" ( (binary_expression "pbVar13->flavour == bfd_target_elf_flavour" (field_expression "pbVar13->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                    (*pbVar13->bfd_putx64)(bVar73,pvVar54);\n                    (*ibfd->xvec->bfd_putx64)(paVar51->lma,(void *)((int)pvVar54 + 8));\n                    pvVar54 = (void *)((int)pvVar54 + 0x10);\n                  }" { (expression_statement "(*pbVar13->bfd_putx64)(bVar73,pvVar54);" (call_expression "(*pbVar13->bfd_putx64)(bVar73,pvVar54)" (parenthesized_expression "(*pbVar13->bfd_putx64)" ( (pointer_expression "*pbVar13->bfd_putx64" * (field_expression "pbVar13->bfd_putx64" identifier -> field_identifier)) )) (argument_list "(bVar73,pvVar54)" ( identifier , identifier ))) ;) (expression_statement "(*ibfd->xvec->bfd_putx64)(paVar51->lma,(void *)((int)pvVar54 + 8));" (call_expression "(*ibfd->xvec->bfd_putx64)(paVar51->lma,(void *)((int)pvVar54 + 8))" (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 "(paVar51->lma,(void *)((int)pvVar54 + 8))" ( (field_expression "paVar51->lma" identifier -> field_identifier) , (cast_expression "(void *)((int)pvVar54 + 8)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar54 + 8)" ( (binary_expression "(int)pvVar54 + 8" (cast_expression "(int)pvVar54" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ))) ;) (expression_statement "pvVar54 = (void *)((int)pvVar54 + 0x10);" (assignment_expression "pvVar54 = (void *)((int)pvVar54 + 0x10)" identifier = (cast_expression "(void *)((int)pvVar54 + 0x10)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar54 + 0x10)" ( (binary_expression "(int)pvVar54 + 0x10" (cast_expression "(int)pvVar54" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) (else_clause "else {\n                    (*pbVar13->bfd_putx32)(bVar72,pvVar54);\n                    (*ibfd->xvec->bfd_putx32)(paVar51->lma,(void *)((int)pvVar54 + 4));\n                    pvVar54 = (void *)((int)pvVar54 + 8);\n                  }" else (compound_statement "{\n                    (*pbVar13->bfd_putx32)(bVar72,pvVar54);\n                    (*ibfd->xvec->bfd_putx32)(paVar51->lma,(void *)((int)pvVar54 + 4));\n                    pvVar54 = (void *)((int)pvVar54 + 8);\n                  }" { (expression_statement "(*pbVar13->bfd_putx32)(bVar72,pvVar54);" (call_expression "(*pbVar13->bfd_putx32)(bVar72,pvVar54)" (parenthesized_expression "(*pbVar13->bfd_putx32)" ( (pointer_expression "*pbVar13->bfd_putx32" * (field_expression "pbVar13->bfd_putx32" identifier -> field_identifier)) )) (argument_list "(bVar72,pvVar54)" ( identifier , identifier ))) ;) (expression_statement "(*ibfd->xvec->bfd_putx32)(paVar51->lma,(void *)((int)pvVar54 + 4));" (call_expression "(*ibfd->xvec->bfd_putx32)(paVar51->lma,(void *)((int)pvVar54 + 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 "(paVar51->lma,(void *)((int)pvVar54 + 4))" ( (field_expression "paVar51->lma" identifier -> field_identifier) , (cast_expression "(void *)((int)pvVar54 + 4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar54 + 4)" ( (binary_expression "(int)pvVar54 + 4" (cast_expression "(int)pvVar54" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ))) ;) (expression_statement "pvVar54 = (void *)((int)pvVar54 + 8);" (assignment_expression "pvVar54 = (void *)((int)pvVar54 + 8)" identifier = (cast_expression "(void *)((int)pvVar54 + 8)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar54 + 8)" ( (binary_expression "(int)pvVar54 + 8" (cast_expression "(int)pvVar54" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) }))) }))) (expression_statement "local_7c = *(char **)&paVar51->vma;" (assignment_expression "local_7c = *(char **)&paVar51->vma" identifier = (pointer_expression "*(char **)&paVar51->vma" * (cast_expression "(char **)&paVar51->vma" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&paVar51->vma" & (field_expression "paVar51->vma" identifier -> field_identifier))))) ;) (expression_statement "local_78 = *(asection **)((int)&paVar51->vma + 4);" (assignment_expression "local_78 = *(asection **)((int)&paVar51->vma + 4)" identifier = (pointer_expression "*(asection **)((int)&paVar51->vma + 4)" * (cast_expression "(asection **)((int)&paVar51->vma + 4)" ( (type_descriptor "asection **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&paVar51->vma + 4)" ( (binary_expression "(int)&paVar51->vma + 4" (cast_expression "(int)&paVar51->vma" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar51->vma" & (field_expression "paVar51->vma" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "local_cc = *(char **)&paVar51->lma;" (assignment_expression "local_cc = *(char **)&paVar51->lma" identifier = (pointer_expression "*(char **)&paVar51->lma" * (cast_expression "(char **)&paVar51->lma" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&paVar51->lma" & (field_expression "paVar51->lma" identifier -> field_identifier))))) ;) (expression_statement "in_stack_ffffff28 = *(asection **)((int)&paVar51->lma + 4);" (assignment_expression "in_stack_ffffff28 = *(asection **)((int)&paVar51->lma + 4)" identifier = (pointer_expression "*(asection **)((int)&paVar51->lma + 4)" * (cast_expression "(asection **)((int)&paVar51->lma + 4)" ( (type_descriptor "asection **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&paVar51->lma + 4)" ( (binary_expression "(int)&paVar51->lma + 4" (cast_expression "(int)&paVar51->lma" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar51->lma" & (field_expression "paVar51->lma" identifier -> field_identifier))) + number_literal) ))))) ;) })) (expression_statement "local_a8 = (asection *)((int)local_a8 + (int)pcVar26);" (assignment_expression "local_a8 = (asection *)((int)local_a8 + (int)pcVar26)" identifier = (cast_expression "(asection *)((int)local_a8 + (int)pcVar26)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + (int)pcVar26)" ( (binary_expression "(int)local_a8 + (int)pcVar26" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pcVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pvVar75 = pvVar54;" (assignment_expression "pvVar75 = pvVar54" identifier = identifier) ;) })) (expression_statement "pcVar26 = (char *)((int)pvVar75 - (int)pvVar49);" (assignment_expression "pcVar26 = (char *)((int)pvVar75 - (int)pvVar49)" identifier = (cast_expression "(char *)((int)pvVar75 - (int)pvVar49)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar75 - (int)pvVar49)" ( (binary_expression "(int)pvVar75 - (int)pvVar49" (cast_expression "(int)pvVar75" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pvVar49" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "paVar68 = (asection *)((int)pcVar26 >> 0x1f);" (assignment_expression "paVar68 = (asection *)((int)pcVar26 >> 0x1f)" identifier = (cast_expression "(asection *)((int)pcVar26 >> 0x1f)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pcVar26 >> 0x1f)" ( (binary_expression "(int)pcVar26 >> 0x1f" (cast_expression "(int)pcVar26" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "in_stack_ffffff24 = (bfd_section *)obfd;" (assignment_expression "in_stack_ffffff24 = (bfd_section *)obfd" identifier = (cast_expression "(bfd_section *)obfd" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "memcpy(pbVar39,pvVar49,(size_t)pcVar26);" (call_expression "memcpy(pbVar39,pvVar49,(size_t)pcVar26)" identifier (argument_list "(pbVar39,pvVar49,(size_t)pcVar26)" ( identifier , identifier , (cast_expression "(size_t)pcVar26" ( (type_descriptor "size_t" primitive_type) ) identifier) ))) ;) (expression_statement "free(pvVar49);" (call_expression "free(pvVar49)" identifier (argument_list "(pvVar49)" ( identifier ))) ;) (expression_statement "free(local_74);" (call_expression "free(local_74)" identifier (argument_list "(local_74)" ( identifier ))) ;) (expression_statement "local_6c = (bfd_section *)obfd;" (assignment_expression "local_6c = (bfd_section *)obfd" identifier = (cast_expression "(bfd_section *)obfd" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "merged_size._0_4_ = pcVar26;" (assignment_expression "merged_size._0_4_ = pcVar26" (field_expression "merged_size._0_4_" identifier . field_identifier) = identifier) ;) (expression_statement "merged_size._4_4_ = paVar68;" (assignment_expression "merged_size._4_4_ = paVar68" (field_expression "merged_size._4_4_" identifier . field_identifier) = identifier) ;) (if_statement "if ((paVar53 != paVar68) || (pcVar27 != pcVar26)) {\n            pbVar35 = paVar30->output_section;\n            if ((pbVar35 != (bfd_section *)0x0) &&\n               (pbVar35 = (bfd_section *)bfd_set_section_size(obfd,pbVar35,pcVar26,paVar68),\n               pbVar35 != (bfd_section *)0x0)) goto LAB_00018e0e;\n            pcVar27 = (char *)dcgettext(0,"warning: failed to set merged notes size",5,pbVar35);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n          }" if (parenthesized_expression "((paVar53 != paVar68) || (pcVar27 != pcVar26))" ( (binary_expression "(paVar53 != paVar68) || (pcVar27 != pcVar26)" (parenthesized_expression "(paVar53 != paVar68)" ( (binary_expression "paVar53 != paVar68" identifier != identifier) )) || (parenthesized_expression "(pcVar27 != pcVar26)" ( (binary_expression "pcVar27 != pcVar26" identifier != identifier) ))) )) (compound_statement "{\n            pbVar35 = paVar30->output_section;\n            if ((pbVar35 != (bfd_section *)0x0) &&\n               (pbVar35 = (bfd_section *)bfd_set_section_size(obfd,pbVar35,pcVar26,paVar68),\n               pbVar35 != (bfd_section *)0x0)) goto LAB_00018e0e;\n            pcVar27 = (char *)dcgettext(0,"warning: failed to set merged notes size",5,pbVar35);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n          }" { (expression_statement "pbVar35 = paVar30->output_section;" (assignment_expression "pbVar35 = paVar30->output_section" identifier = (field_expression "paVar30->output_section" identifier -> field_identifier)) ;) (if_statement "if ((pbVar35 != (bfd_section *)0x0) &&\n               (pbVar35 = (bfd_section *)bfd_set_section_size(obfd,pbVar35,pcVar26,paVar68),\n               pbVar35 != (bfd_section *)0x0)) goto LAB_00018e0e;" if (parenthesized_expression "((pbVar35 != (bfd_section *)0x0) &&\n               (pbVar35 = (bfd_section *)bfd_set_section_size(obfd,pbVar35,pcVar26,paVar68),\n               pbVar35 != (bfd_section *)0x0))" ( (binary_expression "(pbVar35 != (bfd_section *)0x0) &&\n               (pbVar35 = (bfd_section *)bfd_set_section_size(obfd,pbVar35,pcVar26,paVar68),\n               pbVar35 != (bfd_section *)0x0)" (parenthesized_expression "(pbVar35 != (bfd_section *)0x0)" ( (binary_expression "pbVar35 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pbVar35 = (bfd_section *)bfd_set_section_size(obfd,pbVar35,pcVar26,paVar68),\n               pbVar35 != (bfd_section *)0x0)" ( (comma_expression "pbVar35 = (bfd_section *)bfd_set_section_size(obfd,pbVar35,pcVar26,paVar68),\n               pbVar35 != (bfd_section *)0x0" (assignment_expression "pbVar35 = (bfd_section *)bfd_set_section_size(obfd,pbVar35,pcVar26,paVar68)" identifier = (cast_expression "(bfd_section *)bfd_set_section_size(obfd,pbVar35,pcVar26,paVar68)" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_set_section_size(obfd,pbVar35,pcVar26,paVar68)" identifier (argument_list "(obfd,pbVar35,pcVar26,paVar68)" ( identifier , identifier , identifier , identifier ))))) , (binary_expression "pbVar35 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_00018e0e;" goto statement_identifier ;)) (expression_statement "pcVar27 = (char *)dcgettext(0,"warning: failed to set merged notes size",5,pbVar35);" (assignment_expression "pcVar27 = (char *)dcgettext(0,"warning: failed to set merged notes size",5,pbVar35)" identifier = (cast_expression "(char *)dcgettext(0,"warning: failed to set merged notes size",5,pbVar35)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"warning: failed to set merged notes size",5,pbVar35)" identifier (argument_list "(0,"warning: failed to set merged notes size",5,pbVar35)" ( number_literal , (string_literal ""warning: failed to set merged notes size"" " string_content ") , number_literal , identifier ))))) ;) (expression_statement "bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);" (call_expression "bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27)" identifier (argument_list "((char *)0x0,obfd,paVar30,pcVar27)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier , identifier ))) ;) })) }) (else_clause "else {\n          pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,\n                                      local_7c);\nLAB_0001ae12:\n          if (pcVar27 != (char *)0x0) {\n            bfd_set_error(0x11);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            status = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n          local_6c = (bfd_section *)obfd;\n        }" else (compound_statement "{\n          pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,\n                                      local_7c);\nLAB_0001ae12:\n          if (pcVar27 != (char *)0x0) {\n            bfd_set_error(0x11);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            status = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n          local_6c = (bfd_section *)obfd;\n        }" { (expression_statement "pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,\n                                      local_7c);" (assignment_expression "pcVar27 = (char *)dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,\n                                      local_7c)" identifier = (cast_expression "(char *)dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,\n                                      local_7c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,\n                                      local_7c)" identifier (argument_list "(0,"corrupt GNU build attribute notes: excess data at end",5,\n                                      local_7c)" ( number_literal , (string_literal ""corrupt GNU build attribute notes: excess data at end"" " string_content ") , number_literal , identifier ))))) ;) (labeled_statement "LAB_0001ae12:\n          if (pcVar27 != (char *)0x0) {\n            bfd_set_error(0x11);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            status = 1;\n          }" statement_identifier : (if_statement "if (pcVar27 != (char *)0x0) {\n            bfd_set_error(0x11);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            status = 1;\n          }" if (parenthesized_expression "(pcVar27 != (char *)0x0)" ( (binary_expression "pcVar27 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            bfd_set_error(0x11);\n            bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            status = 1;\n          }" { (expression_statement "bfd_set_error(0x11);" (call_expression "bfd_set_error(0x11)" identifier (argument_list "(0x11)" ( number_literal ))) ;) (expression_statement "bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);" (call_expression "bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27)" identifier (argument_list "((char *)0x0,ibfd,paVar30,pcVar27)" ( (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_0001ae41:\n          free(local_74);" statement_identifier : (expression_statement "free(local_74);" (call_expression "free(local_74)" identifier (argument_list "(local_74)" ( identifier ))) ;)) (expression_statement "local_6c = (bfd_section *)obfd;" (assignment_expression "local_6c = (bfd_section *)obfd" identifier = (cast_expression "(bfd_section *)obfd" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) 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_4_ = (char *)0x0;" (assignment_expression "merged_size._0_4_ = (char *)0x0" (field_expression "merged_size._0_4_" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "merged_size._4_4_ = (asection *)0x0;" (assignment_expression "merged_size._4_4_ = (asection *)0x0" (field_expression "merged_size._4_4_" identifier . field_identifier) = (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }))) })) (labeled_statement "LAB_00018e0e:\n  obfd = (bfd *)local_6c;" statement_identifier : (expression_statement "obfd = (bfd *)local_6c;" (assignment_expression "obfd = (bfd *)local_6c" identifier = (cast_expression "(bfd *)local_6c" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "local_c4 = gnu_debuglink_filename;" (assignment_expression "local_c4 = gnu_debuglink_filename" identifier = identifier) ;) (for_statement "for (psVar57 = dump_sections; gnu_debuglink_filename = local_c4, psVar57 != (section_add *)0x0;\n      psVar57 = psVar57->next) {\n    paVar30 = (asection *)bfd_get_section_by_name(ibfd,*(char **)((int)psVar57 + 4));\n    if (paVar30 == (asection *)0x0) {\n      pcVar27 = *(char **)((int)psVar57 + 4);\n      pcVar26 = (char *)dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n      bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar26,pcVar27);\n    }\n    else {\n      if ((paVar30->flags & 0x100) == 0) {\n        pcVar27 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar37 = (size_t)paVar30->size;\n        iVar22 = *(int *)((int)&paVar30->size + 4);\n        if (iVar22 != 0 || sVar37 != 0) {\n          __s = fopen64(*(char **)((int)psVar57 + 8),"w");\n          if (__s == (FILE *)0x0) {\n            pcVar27 = (char *)dcgettext(0,"could not open section dump file",5);\n            bfd_nonfatal_message(*(char **)((int)psVar57 + 8),(bfd *)0x0,(asection *)0x0,pcVar27);\n          }\n          else {\n            iVar52 = bfd_malloc_and_get_section(ibfd,paVar30,&contents);\n            if (iVar52 == 0) {\n              pcVar27 = (char *)dcgettext(0,"could not retrieve section contents",5);\n              bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            }\n            else {\n              sVar38 = fwrite(contents,1,sVar37,__s);\n              if (iVar22 != 0 || sVar37 != sVar38) {\n                piVar44 = __errno_location();\n                pcVar26 = strerror(*piVar44);\n                pcVar27 = *(char **)((int)psVar57 + 8);\n                pcVar45 = (char *)dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                non_fatal(pcVar45,pcVar27,pcVar26);\n                free(contents);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(contents);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar27 = "can\'t dump section - it is empty";\n      }\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n    }\nLAB_00018eb1:\n    local_c4 = gnu_debuglink_filename;\n  }" for ( (assignment_expression "psVar57 = dump_sections" identifier = identifier) ; (comma_expression "gnu_debuglink_filename = local_c4, psVar57 != (section_add *)0x0" (assignment_expression "gnu_debuglink_filename = local_c4" identifier = identifier) , (binary_expression "psVar57 != (section_add *)0x0" identifier != (cast_expression "(section_add *)0x0" ( (type_descriptor "section_add *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "psVar57 = psVar57->next" identifier = (field_expression "psVar57->next" identifier -> field_identifier)) ) (compound_statement "{\n    paVar30 = (asection *)bfd_get_section_by_name(ibfd,*(char **)((int)psVar57 + 4));\n    if (paVar30 == (asection *)0x0) {\n      pcVar27 = *(char **)((int)psVar57 + 4);\n      pcVar26 = (char *)dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n      bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar26,pcVar27);\n    }\n    else {\n      if ((paVar30->flags & 0x100) == 0) {\n        pcVar27 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar37 = (size_t)paVar30->size;\n        iVar22 = *(int *)((int)&paVar30->size + 4);\n        if (iVar22 != 0 || sVar37 != 0) {\n          __s = fopen64(*(char **)((int)psVar57 + 8),"w");\n          if (__s == (FILE *)0x0) {\n            pcVar27 = (char *)dcgettext(0,"could not open section dump file",5);\n            bfd_nonfatal_message(*(char **)((int)psVar57 + 8),(bfd *)0x0,(asection *)0x0,pcVar27);\n          }\n          else {\n            iVar52 = bfd_malloc_and_get_section(ibfd,paVar30,&contents);\n            if (iVar52 == 0) {\n              pcVar27 = (char *)dcgettext(0,"could not retrieve section contents",5);\n              bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            }\n            else {\n              sVar38 = fwrite(contents,1,sVar37,__s);\n              if (iVar22 != 0 || sVar37 != sVar38) {\n                piVar44 = __errno_location();\n                pcVar26 = strerror(*piVar44);\n                pcVar27 = *(char **)((int)psVar57 + 8);\n                pcVar45 = (char *)dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                non_fatal(pcVar45,pcVar27,pcVar26);\n                free(contents);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(contents);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar27 = "can\'t dump section - it is empty";\n      }\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n    }\nLAB_00018eb1:\n    local_c4 = gnu_debuglink_filename;\n  }" { (expression_statement "paVar30 = (asection *)bfd_get_section_by_name(ibfd,*(char **)((int)psVar57 + 4));" (assignment_expression "paVar30 = (asection *)bfd_get_section_by_name(ibfd,*(char **)((int)psVar57 + 4))" identifier = (cast_expression "(asection *)bfd_get_section_by_name(ibfd,*(char **)((int)psVar57 + 4))" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_get_section_by_name(ibfd,*(char **)((int)psVar57 + 4))" identifier (argument_list "(ibfd,*(char **)((int)psVar57 + 4))" ( identifier , (pointer_expression "*(char **)((int)psVar57 + 4)" * (cast_expression "(char **)((int)psVar57 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)psVar57 + 4)" ( (binary_expression "(int)psVar57 + 4" (cast_expression "(int)psVar57" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))))) ;) (if_statement "if (paVar30 == (asection *)0x0) {\n      pcVar27 = *(char **)((int)psVar57 + 4);\n      pcVar26 = (char *)dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n      bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar26,pcVar27);\n    }\n    else {\n      if ((paVar30->flags & 0x100) == 0) {\n        pcVar27 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar37 = (size_t)paVar30->size;\n        iVar22 = *(int *)((int)&paVar30->size + 4);\n        if (iVar22 != 0 || sVar37 != 0) {\n          __s = fopen64(*(char **)((int)psVar57 + 8),"w");\n          if (__s == (FILE *)0x0) {\n            pcVar27 = (char *)dcgettext(0,"could not open section dump file",5);\n            bfd_nonfatal_message(*(char **)((int)psVar57 + 8),(bfd *)0x0,(asection *)0x0,pcVar27);\n          }\n          else {\n            iVar52 = bfd_malloc_and_get_section(ibfd,paVar30,&contents);\n            if (iVar52 == 0) {\n              pcVar27 = (char *)dcgettext(0,"could not retrieve section contents",5);\n              bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            }\n            else {\n              sVar38 = fwrite(contents,1,sVar37,__s);\n              if (iVar22 != 0 || sVar37 != sVar38) {\n                piVar44 = __errno_location();\n                pcVar26 = strerror(*piVar44);\n                pcVar27 = *(char **)((int)psVar57 + 8);\n                pcVar45 = (char *)dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                non_fatal(pcVar45,pcVar27,pcVar26);\n                free(contents);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(contents);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar27 = "can\'t dump section - it is empty";\n      }\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n    }" if (parenthesized_expression "(paVar30 == (asection *)0x0)" ( (binary_expression "paVar30 == (asection *)0x0" identifier == (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar27 = *(char **)((int)psVar57 + 4);\n      pcVar26 = (char *)dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n      bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar26,pcVar27);\n    }" { (expression_statement "pcVar27 = *(char **)((int)psVar57 + 4);" (assignment_expression "pcVar27 = *(char **)((int)psVar57 + 4)" identifier = (pointer_expression "*(char **)((int)psVar57 + 4)" * (cast_expression "(char **)((int)psVar57 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)psVar57 + 4)" ( (binary_expression "(int)psVar57 + 4" (cast_expression "(int)psVar57" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pcVar26 = (char *)dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);" (assignment_expression "pcVar26 = (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,pcVar26,pcVar27);" (call_expression "bfd_nonfatal_message((char *)0x0,ibfd,(asection *)0x0,pcVar26,pcVar27)" identifier (argument_list "((char *)0x0,ibfd,(asection *)0x0,pcVar26,pcVar27)" ( (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      if ((paVar30->flags & 0x100) == 0) {\n        pcVar27 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar37 = (size_t)paVar30->size;\n        iVar22 = *(int *)((int)&paVar30->size + 4);\n        if (iVar22 != 0 || sVar37 != 0) {\n          __s = fopen64(*(char **)((int)psVar57 + 8),"w");\n          if (__s == (FILE *)0x0) {\n            pcVar27 = (char *)dcgettext(0,"could not open section dump file",5);\n            bfd_nonfatal_message(*(char **)((int)psVar57 + 8),(bfd *)0x0,(asection *)0x0,pcVar27);\n          }\n          else {\n            iVar52 = bfd_malloc_and_get_section(ibfd,paVar30,&contents);\n            if (iVar52 == 0) {\n              pcVar27 = (char *)dcgettext(0,"could not retrieve section contents",5);\n              bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            }\n            else {\n              sVar38 = fwrite(contents,1,sVar37,__s);\n              if (iVar22 != 0 || sVar37 != sVar38) {\n                piVar44 = __errno_location();\n                pcVar26 = strerror(*piVar44);\n                pcVar27 = *(char **)((int)psVar57 + 8);\n                pcVar45 = (char *)dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                non_fatal(pcVar45,pcVar27,pcVar26);\n                free(contents);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(contents);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar27 = "can\'t dump section - it is empty";\n      }\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n    }" else (compound_statement "{\n      if ((paVar30->flags & 0x100) == 0) {\n        pcVar27 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar37 = (size_t)paVar30->size;\n        iVar22 = *(int *)((int)&paVar30->size + 4);\n        if (iVar22 != 0 || sVar37 != 0) {\n          __s = fopen64(*(char **)((int)psVar57 + 8),"w");\n          if (__s == (FILE *)0x0) {\n            pcVar27 = (char *)dcgettext(0,"could not open section dump file",5);\n            bfd_nonfatal_message(*(char **)((int)psVar57 + 8),(bfd *)0x0,(asection *)0x0,pcVar27);\n          }\n          else {\n            iVar52 = bfd_malloc_and_get_section(ibfd,paVar30,&contents);\n            if (iVar52 == 0) {\n              pcVar27 = (char *)dcgettext(0,"could not retrieve section contents",5);\n              bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            }\n            else {\n              sVar38 = fwrite(contents,1,sVar37,__s);\n              if (iVar22 != 0 || sVar37 != sVar38) {\n                piVar44 = __errno_location();\n                pcVar26 = strerror(*piVar44);\n                pcVar27 = *(char **)((int)psVar57 + 8);\n                pcVar45 = (char *)dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                non_fatal(pcVar45,pcVar27,pcVar26);\n                free(contents);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(contents);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar27 = "can\'t dump section - it is empty";\n      }\n      pcVar27 = (char *)dcgettext(0,pcVar27,5);\n      bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n    }" { (if_statement "if ((paVar30->flags & 0x100) == 0) {\n        pcVar27 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar37 = (size_t)paVar30->size;\n        iVar22 = *(int *)((int)&paVar30->size + 4);\n        if (iVar22 != 0 || sVar37 != 0) {\n          __s = fopen64(*(char **)((int)psVar57 + 8),"w");\n          if (__s == (FILE *)0x0) {\n            pcVar27 = (char *)dcgettext(0,"could not open section dump file",5);\n            bfd_nonfatal_message(*(char **)((int)psVar57 + 8),(bfd *)0x0,(asection *)0x0,pcVar27);\n          }\n          else {\n            iVar52 = bfd_malloc_and_get_section(ibfd,paVar30,&contents);\n            if (iVar52 == 0) {\n              pcVar27 = (char *)dcgettext(0,"could not retrieve section contents",5);\n              bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            }\n            else {\n              sVar38 = fwrite(contents,1,sVar37,__s);\n              if (iVar22 != 0 || sVar37 != sVar38) {\n                piVar44 = __errno_location();\n                pcVar26 = strerror(*piVar44);\n                pcVar27 = *(char **)((int)psVar57 + 8);\n                pcVar45 = (char *)dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                non_fatal(pcVar45,pcVar27,pcVar26);\n                free(contents);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(contents);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar27 = "can\'t dump section - it is empty";\n      }" if (parenthesized_expression "((paVar30->flags & 0x100) == 0)" ( (binary_expression "(paVar30->flags & 0x100) == 0" (parenthesized_expression "(paVar30->flags & 0x100)" ( (binary_expression "paVar30->flags & 0x100" (field_expression "paVar30->flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        pcVar27 = "can\'t dump section - it has no contents";\n      }" { (expression_statement "pcVar27 = "can\'t dump section - it has no contents";" (assignment_expression "pcVar27 = "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 ")) ;) }) (else_clause "else {\n        sVar37 = (size_t)paVar30->size;\n        iVar22 = *(int *)((int)&paVar30->size + 4);\n        if (iVar22 != 0 || sVar37 != 0) {\n          __s = fopen64(*(char **)((int)psVar57 + 8),"w");\n          if (__s == (FILE *)0x0) {\n            pcVar27 = (char *)dcgettext(0,"could not open section dump file",5);\n            bfd_nonfatal_message(*(char **)((int)psVar57 + 8),(bfd *)0x0,(asection *)0x0,pcVar27);\n          }\n          else {\n            iVar52 = bfd_malloc_and_get_section(ibfd,paVar30,&contents);\n            if (iVar52 == 0) {\n              pcVar27 = (char *)dcgettext(0,"could not retrieve section contents",5);\n              bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            }\n            else {\n              sVar38 = fwrite(contents,1,sVar37,__s);\n              if (iVar22 != 0 || sVar37 != sVar38) {\n                piVar44 = __errno_location();\n                pcVar26 = strerror(*piVar44);\n                pcVar27 = *(char **)((int)psVar57 + 8);\n                pcVar45 = (char *)dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                non_fatal(pcVar45,pcVar27,pcVar26);\n                free(contents);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(contents);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar27 = "can\'t dump section - it is empty";\n      }" else (compound_statement "{\n        sVar37 = (size_t)paVar30->size;\n        iVar22 = *(int *)((int)&paVar30->size + 4);\n        if (iVar22 != 0 || sVar37 != 0) {\n          __s = fopen64(*(char **)((int)psVar57 + 8),"w");\n          if (__s == (FILE *)0x0) {\n            pcVar27 = (char *)dcgettext(0,"could not open section dump file",5);\n            bfd_nonfatal_message(*(char **)((int)psVar57 + 8),(bfd *)0x0,(asection *)0x0,pcVar27);\n          }\n          else {\n            iVar52 = bfd_malloc_and_get_section(ibfd,paVar30,&contents);\n            if (iVar52 == 0) {\n              pcVar27 = (char *)dcgettext(0,"could not retrieve section contents",5);\n              bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            }\n            else {\n              sVar38 = fwrite(contents,1,sVar37,__s);\n              if (iVar22 != 0 || sVar37 != sVar38) {\n                piVar44 = __errno_location();\n                pcVar26 = strerror(*piVar44);\n                pcVar27 = *(char **)((int)psVar57 + 8);\n                pcVar45 = (char *)dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                non_fatal(pcVar45,pcVar27,pcVar26);\n                free(contents);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(contents);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar27 = "can\'t dump section - it is empty";\n      }" { (expression_statement "sVar37 = (size_t)paVar30->size;" (assignment_expression "sVar37 = (size_t)paVar30->size" identifier = (cast_expression "(size_t)paVar30->size" ( (type_descriptor "size_t" primitive_type) ) (field_expression "paVar30->size" identifier -> field_identifier))) ;) (expression_statement "iVar22 = *(int *)((int)&paVar30->size + 4);" (assignment_expression "iVar22 = *(int *)((int)&paVar30->size + 4)" identifier = (pointer_expression "*(int *)((int)&paVar30->size + 4)" * (cast_expression "(int *)((int)&paVar30->size + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar30->size + 4)" ( (binary_expression "(int)&paVar30->size + 4" (cast_expression "(int)&paVar30->size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar30->size" & (field_expression "paVar30->size" identifier -> field_identifier))) + number_literal) ))))) ;) (if_statement "if (iVar22 != 0 || sVar37 != 0) {\n          __s = fopen64(*(char **)((int)psVar57 + 8),"w");\n          if (__s == (FILE *)0x0) {\n            pcVar27 = (char *)dcgettext(0,"could not open section dump file",5);\n            bfd_nonfatal_message(*(char **)((int)psVar57 + 8),(bfd *)0x0,(asection *)0x0,pcVar27);\n          }\n          else {\n            iVar52 = bfd_malloc_and_get_section(ibfd,paVar30,&contents);\n            if (iVar52 == 0) {\n              pcVar27 = (char *)dcgettext(0,"could not retrieve section contents",5);\n              bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            }\n            else {\n              sVar38 = fwrite(contents,1,sVar37,__s);\n              if (iVar22 != 0 || sVar37 != sVar38) {\n                piVar44 = __errno_location();\n                pcVar26 = strerror(*piVar44);\n                pcVar27 = *(char **)((int)psVar57 + 8);\n                pcVar45 = (char *)dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                non_fatal(pcVar45,pcVar27,pcVar26);\n                free(contents);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(contents);\n          }\n          goto LAB_00018eb1;\n        }" if (parenthesized_expression "(iVar22 != 0 || sVar37 != 0)" ( (binary_expression "iVar22 != 0 || sVar37 != 0" (binary_expression "iVar22 != 0" identifier != number_literal) || (binary_expression "sVar37 != 0" identifier != number_literal)) )) (compound_statement "{\n          __s = fopen64(*(char **)((int)psVar57 + 8),"w");\n          if (__s == (FILE *)0x0) {\n            pcVar27 = (char *)dcgettext(0,"could not open section dump file",5);\n            bfd_nonfatal_message(*(char **)((int)psVar57 + 8),(bfd *)0x0,(asection *)0x0,pcVar27);\n          }\n          else {\n            iVar52 = bfd_malloc_and_get_section(ibfd,paVar30,&contents);\n            if (iVar52 == 0) {\n              pcVar27 = (char *)dcgettext(0,"could not retrieve section contents",5);\n              bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            }\n            else {\n              sVar38 = fwrite(contents,1,sVar37,__s);\n              if (iVar22 != 0 || sVar37 != sVar38) {\n                piVar44 = __errno_location();\n                pcVar26 = strerror(*piVar44);\n                pcVar27 = *(char **)((int)psVar57 + 8);\n                pcVar45 = (char *)dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                non_fatal(pcVar45,pcVar27,pcVar26);\n                free(contents);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(contents);\n          }\n          goto LAB_00018eb1;\n        }" { (expression_statement "__s = fopen64(*(char **)((int)psVar57 + 8),"w");" (assignment_expression "__s = fopen64(*(char **)((int)psVar57 + 8),"w")" identifier = (call_expression "fopen64(*(char **)((int)psVar57 + 8),"w")" identifier (argument_list "(*(char **)((int)psVar57 + 8),"w")" ( (pointer_expression "*(char **)((int)psVar57 + 8)" * (cast_expression "(char **)((int)psVar57 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)psVar57 + 8)" ( (binary_expression "(int)psVar57 + 8" (cast_expression "(int)psVar57" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (string_literal ""w"" " string_content ") )))) ;) (if_statement "if (__s == (FILE *)0x0) {\n            pcVar27 = (char *)dcgettext(0,"could not open section dump file",5);\n            bfd_nonfatal_message(*(char **)((int)psVar57 + 8),(bfd *)0x0,(asection *)0x0,pcVar27);\n          }\n          else {\n            iVar52 = bfd_malloc_and_get_section(ibfd,paVar30,&contents);\n            if (iVar52 == 0) {\n              pcVar27 = (char *)dcgettext(0,"could not retrieve section contents",5);\n              bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            }\n            else {\n              sVar38 = fwrite(contents,1,sVar37,__s);\n              if (iVar22 != 0 || sVar37 != sVar38) {\n                piVar44 = __errno_location();\n                pcVar26 = strerror(*piVar44);\n                pcVar27 = *(char **)((int)psVar57 + 8);\n                pcVar45 = (char *)dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                non_fatal(pcVar45,pcVar27,pcVar26);\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            pcVar27 = (char *)dcgettext(0,"could not open section dump file",5);\n            bfd_nonfatal_message(*(char **)((int)psVar57 + 8),(bfd *)0x0,(asection *)0x0,pcVar27);\n          }" { (expression_statement "pcVar27 = (char *)dcgettext(0,"could not open section dump file",5);" (assignment_expression "pcVar27 = (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 "bfd_nonfatal_message(*(char **)((int)psVar57 + 8),(bfd *)0x0,(asection *)0x0,pcVar27);" (call_expression "bfd_nonfatal_message(*(char **)((int)psVar57 + 8),(bfd *)0x0,(asection *)0x0,pcVar27)" identifier (argument_list "(*(char **)((int)psVar57 + 8),(bfd *)0x0,(asection *)0x0,pcVar27)" ( (pointer_expression "*(char **)((int)psVar57 + 8)" * (cast_expression "(char **)((int)psVar57 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)psVar57 + 8)" ( (binary_expression "(int)psVar57 + 8" (cast_expression "(int)psVar57" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (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            iVar52 = bfd_malloc_and_get_section(ibfd,paVar30,&contents);\n            if (iVar52 == 0) {\n              pcVar27 = (char *)dcgettext(0,"could not retrieve section contents",5);\n              bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            }\n            else {\n              sVar38 = fwrite(contents,1,sVar37,__s);\n              if (iVar22 != 0 || sVar37 != sVar38) {\n                piVar44 = __errno_location();\n                pcVar26 = strerror(*piVar44);\n                pcVar27 = *(char **)((int)psVar57 + 8);\n                pcVar45 = (char *)dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                non_fatal(pcVar45,pcVar27,pcVar26);\n                free(contents);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(contents);\n          }" else (compound_statement "{\n            iVar52 = bfd_malloc_and_get_section(ibfd,paVar30,&contents);\n            if (iVar52 == 0) {\n              pcVar27 = (char *)dcgettext(0,"could not retrieve section contents",5);\n              bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            }\n            else {\n              sVar38 = fwrite(contents,1,sVar37,__s);\n              if (iVar22 != 0 || sVar37 != sVar38) {\n                piVar44 = __errno_location();\n                pcVar26 = strerror(*piVar44);\n                pcVar27 = *(char **)((int)psVar57 + 8);\n                pcVar45 = (char *)dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                non_fatal(pcVar45,pcVar27,pcVar26);\n                free(contents);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(contents);\n          }" { (expression_statement "iVar52 = bfd_malloc_and_get_section(ibfd,paVar30,&contents);" (assignment_expression "iVar52 = bfd_malloc_and_get_section(ibfd,paVar30,&contents)" identifier = (call_expression "bfd_malloc_and_get_section(ibfd,paVar30,&contents)" identifier (argument_list "(ibfd,paVar30,&contents)" ( identifier , identifier , (pointer_expression "&contents" & identifier) )))) ;) (if_statement "if (iVar52 == 0) {\n              pcVar27 = (char *)dcgettext(0,"could not retrieve section contents",5);\n              bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            }\n            else {\n              sVar38 = fwrite(contents,1,sVar37,__s);\n              if (iVar22 != 0 || sVar37 != sVar38) {\n                piVar44 = __errno_location();\n                pcVar26 = strerror(*piVar44);\n                pcVar27 = *(char **)((int)psVar57 + 8);\n                pcVar45 = (char *)dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                non_fatal(pcVar45,pcVar27,pcVar26);\n                free(contents);\n                return 0;\n              }\n            }" if (parenthesized_expression "(iVar52 == 0)" ( (binary_expression "iVar52 == 0" identifier == number_literal) )) (compound_statement "{\n              pcVar27 = (char *)dcgettext(0,"could not retrieve section contents",5);\n              bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);\n            }" { (expression_statement "pcVar27 = (char *)dcgettext(0,"could not retrieve section contents",5);" (assignment_expression "pcVar27 = (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,paVar30,pcVar27);" (call_expression "bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27)" identifier (argument_list "((char *)0x0,ibfd,paVar30,pcVar27)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n              sVar38 = fwrite(contents,1,sVar37,__s);\n              if (iVar22 != 0 || sVar37 != sVar38) {\n                piVar44 = __errno_location();\n                pcVar26 = strerror(*piVar44);\n                pcVar27 = *(char **)((int)psVar57 + 8);\n                pcVar45 = (char *)dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                non_fatal(pcVar45,pcVar27,pcVar26);\n                free(contents);\n                return 0;\n              }\n            }" else (compound_statement "{\n              sVar38 = fwrite(contents,1,sVar37,__s);\n              if (iVar22 != 0 || sVar37 != sVar38) {\n                piVar44 = __errno_location();\n                pcVar26 = strerror(*piVar44);\n                pcVar27 = *(char **)((int)psVar57 + 8);\n                pcVar45 = (char *)dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                non_fatal(pcVar45,pcVar27,pcVar26);\n                free(contents);\n                return 0;\n              }\n            }" { (expression_statement "sVar38 = fwrite(contents,1,sVar37,__s);" (assignment_expression "sVar38 = fwrite(contents,1,sVar37,__s)" identifier = (call_expression "fwrite(contents,1,sVar37,__s)" identifier (argument_list "(contents,1,sVar37,__s)" ( identifier , number_literal , identifier , identifier )))) ;) (if_statement "if (iVar22 != 0 || sVar37 != sVar38) {\n                piVar44 = __errno_location();\n                pcVar26 = strerror(*piVar44);\n                pcVar27 = *(char **)((int)psVar57 + 8);\n                pcVar45 = (char *)dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                non_fatal(pcVar45,pcVar27,pcVar26);\n                free(contents);\n                return 0;\n              }" if (parenthesized_expression "(iVar22 != 0 || sVar37 != sVar38)" ( (binary_expression "iVar22 != 0 || sVar37 != sVar38" (binary_expression "iVar22 != 0" identifier != number_literal) || (binary_expression "sVar37 != sVar38" identifier != identifier)) )) (compound_statement "{\n                piVar44 = __errno_location();\n                pcVar26 = strerror(*piVar44);\n                pcVar27 = *(char **)((int)psVar57 + 8);\n                pcVar45 = (char *)dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                non_fatal(pcVar45,pcVar27,pcVar26);\n                free(contents);\n                return 0;\n              }" { (expression_statement "piVar44 = __errno_location();" (assignment_expression "piVar44 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar26 = strerror(*piVar44);" (assignment_expression "pcVar26 = strerror(*piVar44)" identifier = (call_expression "strerror(*piVar44)" identifier (argument_list "(*piVar44)" ( (pointer_expression "*piVar44" * identifier) )))) ;) (expression_statement "pcVar27 = *(char **)((int)psVar57 + 8);" (assignment_expression "pcVar27 = *(char **)((int)psVar57 + 8)" identifier = (pointer_expression "*(char **)((int)psVar57 + 8)" * (cast_expression "(char **)((int)psVar57 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)psVar57 + 8)" ( (binary_expression "(int)psVar57 + 8" (cast_expression "(int)psVar57" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pcVar45 = (char *)dcgettext(0,"error writing section contents to %s (error: %s)",5);" (assignment_expression "pcVar45 = (char *)dcgettext(0,"error writing section contents to %s (error: %s)",5)" identifier = (cast_expression "(char *)dcgettext(0,"error writing section contents to %s (error: %s)",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (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 "non_fatal(pcVar45,pcVar27,pcVar26);" (call_expression "non_fatal(pcVar45,pcVar27,pcVar26)" identifier (argument_list "(pcVar45,pcVar27,pcVar26)" ( 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_00018eb1;" goto statement_identifier ;) })) (expression_statement "pcVar27 = "can\'t dump section - it is empty";" (assignment_expression "pcVar27 = "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 "pcVar27 = (char *)dcgettext(0,pcVar27,5);" (assignment_expression "pcVar27 = (char *)dcgettext(0,pcVar27,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar27,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar27,5)" identifier (argument_list "(0,pcVar27,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27);" (call_expression "bfd_nonfatal_message((char *)0x0,ibfd,paVar30,pcVar27)" identifier (argument_list "((char *)0x0,ibfd,paVar30,pcVar27)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier , identifier ))) ;) }))) (labeled_statement "LAB_00018eb1:\n    local_c4 = gnu_debuglink_filename;" statement_identifier : (expression_statement "local_c4 = gnu_debuglink_filename;" (assignment_expression "local_c4 = gnu_debuglink_filename" identifier = identifier) ;)) })) (if_statement "if (local_c4 != (char *)0x0) {\n    iVar22 = bfd_get_section_by_name(local_6c,".gnu_debuglink");\n    if (iVar22 == 0) {\n      local_c4 = (char *)bfd_create_gnu_debuglink_section(local_6c,gnu_debuglink_filename);\n      pcVar27 = gnu_debuglink_filename;\n      if (local_c4 == (char *)0x0) {\n        pcVar26 = (char *)dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        bfd_nonfatal_message((char *)0x0,(bfd *)local_6c,(asection *)0x0,pcVar26,pcVar27);\n        return 0;\n      }\n      if (*(int *)(local_6c->id + 4) == 2) {\n        prVar42 = (reloc_cache_entry *)local_6c->orelocation;\n        prVar62 = (reloc_cache_entry *)0x0;\n        if (prVar42 == (reloc_cache_entry *)0x0) {\nLAB_0001aa69:\n          uVar63 = 0x1000;\n          iVar22 = 0;\n        }\n        else {\n          do {\n            prVar12 = *(reloc_cache_entry **)((int)&prVar42[1].address + 4);\n            prVar61 = prVar62;\n            if (((prVar12 != (reloc_cache_entry *)0x0 ||\n                  *(reloc_cache_entry **)&prVar42[1].address != (reloc_cache_entry *)0x0) &&\n                (prVar61 = prVar42, prVar62 != (reloc_cache_entry *)0x0)) &&\n               (prVar11 = *(reloc_cache_entry **)((int)&prVar62[1].address + 4), prVar61 = prVar62,\n               prVar11 < prVar12 ||\n               (uint)((int)prVar11 - (int)prVar12) <\n               (uint)(*(reloc_cache_entry **)&prVar62[1].address <\n                     *(reloc_cache_entry **)&prVar42[1].address))) {\n              prVar61 = prVar42;\n            }\n            prVar42 = *(reloc_cache_entry **)&prVar42->addend;\n            prVar62 = prVar61;\n          } while (prVar42 != (reloc_cache_entry *)0x0);\n          if (prVar61 == (reloc_cache_entry *)0x0) goto LAB_0001aa69;\n          uVar63 = (int)&(prVar61[1].howto)->type + (int)*(reloc_cache_entry **)&prVar61[1].address;\n          iVar22 = (int)&((reloc_cache_entry *)prVar61[2].sym_ptr_ptr)->sym_ptr_ptr +\n                   (int)&(*(reloc_cache_entry **)((int)&prVar61[1].address + 4))->sym_ptr_ptr +\n                   (uint)CARRY4((uint)prVar61[1].howto,\n                                (uint)*(reloc_cache_entry **)&prVar61[1].address);\n          if (-iVar22 - 1U < (uint)(0xfffff000 < uVar63)) {\n            uVar63 = 0xffffffff;\n            iVar22 = -1;\n          }\n          else {\n            iVar22 = iVar22 + (uint)(0xfffff000 < uVar63);\n            uVar63 = uVar63 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(local_c4 + 0x24) = uVar63;\n        *(int *)(local_c4 + 0x28) = iVar22;\n        *(uint *)(local_c4 + 0x1c) = uVar63;\n        *(int *)(local_c4 + 0x20) = iVar22;\n        local_c4[0x18] = local_c4[0x18] | 1;\n      }\n    }\n    else {\n      pcVar27 = local_6c->name;\n      pcVar26 = (char *)dcgettext(0,"%s: debuglink section already exists",5);\n      non_fatal(pcVar26,pcVar27);\n      gnu_debuglink_filename = (char *)0x0;\n      local_c4 = (char *)0x0;\n    }\n  }" if (parenthesized_expression "(local_c4 != (char *)0x0)" ( (binary_expression "local_c4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar22 = bfd_get_section_by_name(local_6c,".gnu_debuglink");\n    if (iVar22 == 0) {\n      local_c4 = (char *)bfd_create_gnu_debuglink_section(local_6c,gnu_debuglink_filename);\n      pcVar27 = gnu_debuglink_filename;\n      if (local_c4 == (char *)0x0) {\n        pcVar26 = (char *)dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        bfd_nonfatal_message((char *)0x0,(bfd *)local_6c,(asection *)0x0,pcVar26,pcVar27);\n        return 0;\n      }\n      if (*(int *)(local_6c->id + 4) == 2) {\n        prVar42 = (reloc_cache_entry *)local_6c->orelocation;\n        prVar62 = (reloc_cache_entry *)0x0;\n        if (prVar42 == (reloc_cache_entry *)0x0) {\nLAB_0001aa69:\n          uVar63 = 0x1000;\n          iVar22 = 0;\n        }\n        else {\n          do {\n            prVar12 = *(reloc_cache_entry **)((int)&prVar42[1].address + 4);\n            prVar61 = prVar62;\n            if (((prVar12 != (reloc_cache_entry *)0x0 ||\n                  *(reloc_cache_entry **)&prVar42[1].address != (reloc_cache_entry *)0x0) &&\n                (prVar61 = prVar42, prVar62 != (reloc_cache_entry *)0x0)) &&\n               (prVar11 = *(reloc_cache_entry **)((int)&prVar62[1].address + 4), prVar61 = prVar62,\n               prVar11 < prVar12 ||\n               (uint)((int)prVar11 - (int)prVar12) <\n               (uint)(*(reloc_cache_entry **)&prVar62[1].address <\n                     *(reloc_cache_entry **)&prVar42[1].address))) {\n              prVar61 = prVar42;\n            }\n            prVar42 = *(reloc_cache_entry **)&prVar42->addend;\n            prVar62 = prVar61;\n          } while (prVar42 != (reloc_cache_entry *)0x0);\n          if (prVar61 == (reloc_cache_entry *)0x0) goto LAB_0001aa69;\n          uVar63 = (int)&(prVar61[1].howto)->type + (int)*(reloc_cache_entry **)&prVar61[1].address;\n          iVar22 = (int)&((reloc_cache_entry *)prVar61[2].sym_ptr_ptr)->sym_ptr_ptr +\n                   (int)&(*(reloc_cache_entry **)((int)&prVar61[1].address + 4))->sym_ptr_ptr +\n                   (uint)CARRY4((uint)prVar61[1].howto,\n                                (uint)*(reloc_cache_entry **)&prVar61[1].address);\n          if (-iVar22 - 1U < (uint)(0xfffff000 < uVar63)) {\n            uVar63 = 0xffffffff;\n            iVar22 = -1;\n          }\n          else {\n            iVar22 = iVar22 + (uint)(0xfffff000 < uVar63);\n            uVar63 = uVar63 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(local_c4 + 0x24) = uVar63;\n        *(int *)(local_c4 + 0x28) = iVar22;\n        *(uint *)(local_c4 + 0x1c) = uVar63;\n        *(int *)(local_c4 + 0x20) = iVar22;\n        local_c4[0x18] = local_c4[0x18] | 1;\n      }\n    }\n    else {\n      pcVar27 = local_6c->name;\n      pcVar26 = (char *)dcgettext(0,"%s: debuglink section already exists",5);\n      non_fatal(pcVar26,pcVar27);\n      gnu_debuglink_filename = (char *)0x0;\n      local_c4 = (char *)0x0;\n    }\n  }" { (expression_statement "iVar22 = bfd_get_section_by_name(local_6c,".gnu_debuglink");" (assignment_expression "iVar22 = bfd_get_section_by_name(local_6c,".gnu_debuglink")" identifier = (call_expression "bfd_get_section_by_name(local_6c,".gnu_debuglink")" identifier (argument_list "(local_6c,".gnu_debuglink")" ( identifier , (string_literal "".gnu_debuglink"" " string_content ") )))) ;) (if_statement "if (iVar22 == 0) {\n      local_c4 = (char *)bfd_create_gnu_debuglink_section(local_6c,gnu_debuglink_filename);\n      pcVar27 = gnu_debuglink_filename;\n      if (local_c4 == (char *)0x0) {\n        pcVar26 = (char *)dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        bfd_nonfatal_message((char *)0x0,(bfd *)local_6c,(asection *)0x0,pcVar26,pcVar27);\n        return 0;\n      }\n      if (*(int *)(local_6c->id + 4) == 2) {\n        prVar42 = (reloc_cache_entry *)local_6c->orelocation;\n        prVar62 = (reloc_cache_entry *)0x0;\n        if (prVar42 == (reloc_cache_entry *)0x0) {\nLAB_0001aa69:\n          uVar63 = 0x1000;\n          iVar22 = 0;\n        }\n        else {\n          do {\n            prVar12 = *(reloc_cache_entry **)((int)&prVar42[1].address + 4);\n            prVar61 = prVar62;\n            if (((prVar12 != (reloc_cache_entry *)0x0 ||\n                  *(reloc_cache_entry **)&prVar42[1].address != (reloc_cache_entry *)0x0) &&\n                (prVar61 = prVar42, prVar62 != (reloc_cache_entry *)0x0)) &&\n               (prVar11 = *(reloc_cache_entry **)((int)&prVar62[1].address + 4), prVar61 = prVar62,\n               prVar11 < prVar12 ||\n               (uint)((int)prVar11 - (int)prVar12) <\n               (uint)(*(reloc_cache_entry **)&prVar62[1].address <\n                     *(reloc_cache_entry **)&prVar42[1].address))) {\n              prVar61 = prVar42;\n            }\n            prVar42 = *(reloc_cache_entry **)&prVar42->addend;\n            prVar62 = prVar61;\n          } while (prVar42 != (reloc_cache_entry *)0x0);\n          if (prVar61 == (reloc_cache_entry *)0x0) goto LAB_0001aa69;\n          uVar63 = (int)&(prVar61[1].howto)->type + (int)*(reloc_cache_entry **)&prVar61[1].address;\n          iVar22 = (int)&((reloc_cache_entry *)prVar61[2].sym_ptr_ptr)->sym_ptr_ptr +\n                   (int)&(*(reloc_cache_entry **)((int)&prVar61[1].address + 4))->sym_ptr_ptr +\n                   (uint)CARRY4((uint)prVar61[1].howto,\n                                (uint)*(reloc_cache_entry **)&prVar61[1].address);\n          if (-iVar22 - 1U < (uint)(0xfffff000 < uVar63)) {\n            uVar63 = 0xffffffff;\n            iVar22 = -1;\n          }\n          else {\n            iVar22 = iVar22 + (uint)(0xfffff000 < uVar63);\n            uVar63 = uVar63 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(local_c4 + 0x24) = uVar63;\n        *(int *)(local_c4 + 0x28) = iVar22;\n        *(uint *)(local_c4 + 0x1c) = uVar63;\n        *(int *)(local_c4 + 0x20) = iVar22;\n        local_c4[0x18] = local_c4[0x18] | 1;\n      }\n    }\n    else {\n      pcVar27 = local_6c->name;\n      pcVar26 = (char *)dcgettext(0,"%s: debuglink section already exists",5);\n      non_fatal(pcVar26,pcVar27);\n      gnu_debuglink_filename = (char *)0x0;\n      local_c4 = (char *)0x0;\n    }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\n      local_c4 = (char *)bfd_create_gnu_debuglink_section(local_6c,gnu_debuglink_filename);\n      pcVar27 = gnu_debuglink_filename;\n      if (local_c4 == (char *)0x0) {\n        pcVar26 = (char *)dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        bfd_nonfatal_message((char *)0x0,(bfd *)local_6c,(asection *)0x0,pcVar26,pcVar27);\n        return 0;\n      }\n      if (*(int *)(local_6c->id + 4) == 2) {\n        prVar42 = (reloc_cache_entry *)local_6c->orelocation;\n        prVar62 = (reloc_cache_entry *)0x0;\n        if (prVar42 == (reloc_cache_entry *)0x0) {\nLAB_0001aa69:\n          uVar63 = 0x1000;\n          iVar22 = 0;\n        }\n        else {\n          do {\n            prVar12 = *(reloc_cache_entry **)((int)&prVar42[1].address + 4);\n            prVar61 = prVar62;\n            if (((prVar12 != (reloc_cache_entry *)0x0 ||\n                  *(reloc_cache_entry **)&prVar42[1].address != (reloc_cache_entry *)0x0) &&\n                (prVar61 = prVar42, prVar62 != (reloc_cache_entry *)0x0)) &&\n               (prVar11 = *(reloc_cache_entry **)((int)&prVar62[1].address + 4), prVar61 = prVar62,\n               prVar11 < prVar12 ||\n               (uint)((int)prVar11 - (int)prVar12) <\n               (uint)(*(reloc_cache_entry **)&prVar62[1].address <\n                     *(reloc_cache_entry **)&prVar42[1].address))) {\n              prVar61 = prVar42;\n            }\n            prVar42 = *(reloc_cache_entry **)&prVar42->addend;\n            prVar62 = prVar61;\n          } while (prVar42 != (reloc_cache_entry *)0x0);\n          if (prVar61 == (reloc_cache_entry *)0x0) goto LAB_0001aa69;\n          uVar63 = (int)&(prVar61[1].howto)->type + (int)*(reloc_cache_entry **)&prVar61[1].address;\n          iVar22 = (int)&((reloc_cache_entry *)prVar61[2].sym_ptr_ptr)->sym_ptr_ptr +\n                   (int)&(*(reloc_cache_entry **)((int)&prVar61[1].address + 4))->sym_ptr_ptr +\n                   (uint)CARRY4((uint)prVar61[1].howto,\n                                (uint)*(reloc_cache_entry **)&prVar61[1].address);\n          if (-iVar22 - 1U < (uint)(0xfffff000 < uVar63)) {\n            uVar63 = 0xffffffff;\n            iVar22 = -1;\n          }\n          else {\n            iVar22 = iVar22 + (uint)(0xfffff000 < uVar63);\n            uVar63 = uVar63 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(local_c4 + 0x24) = uVar63;\n        *(int *)(local_c4 + 0x28) = iVar22;\n        *(uint *)(local_c4 + 0x1c) = uVar63;\n        *(int *)(local_c4 + 0x20) = iVar22;\n        local_c4[0x18] = local_c4[0x18] | 1;\n      }\n    }" { (expression_statement "local_c4 = (char *)bfd_create_gnu_debuglink_section(local_6c,gnu_debuglink_filename);" (assignment_expression "local_c4 = (char *)bfd_create_gnu_debuglink_section(local_6c,gnu_debuglink_filename)" identifier = (cast_expression "(char *)bfd_create_gnu_debuglink_section(local_6c,gnu_debuglink_filename)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_create_gnu_debuglink_section(local_6c,gnu_debuglink_filename)" identifier (argument_list "(local_6c,gnu_debuglink_filename)" ( identifier , identifier ))))) ;) (expression_statement "pcVar27 = gnu_debuglink_filename;" (assignment_expression "pcVar27 = gnu_debuglink_filename" identifier = identifier) ;) (if_statement "if (local_c4 == (char *)0x0) {\n        pcVar26 = (char *)dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        bfd_nonfatal_message((char *)0x0,(bfd *)local_6c,(asection *)0x0,pcVar26,pcVar27);\n        return 0;\n      }" if (parenthesized_expression "(local_c4 == (char *)0x0)" ( (binary_expression "local_c4 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar26 = (char *)dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        bfd_nonfatal_message((char *)0x0,(bfd *)local_6c,(asection *)0x0,pcVar26,pcVar27);\n        return 0;\n      }" { (expression_statement "pcVar26 = (char *)dcgettext(0,"cannot create debug link section `%s\'",5,0);" (assignment_expression "pcVar26 = (char *)dcgettext(0,"cannot create debug link section `%s\'",5,0)" identifier = (cast_expression "(char *)dcgettext(0,"cannot create debug link section `%s\'",5,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"cannot create debug link section `%s\'",5,0)" identifier (argument_list "(0,"cannot create debug link section `%s\'",5,0)" ( number_literal , (string_literal ""cannot create debug link section `%s\'"" " string_content escape_sequence ") , number_literal , number_literal ))))) ;) (expression_statement "bfd_nonfatal_message((char *)0x0,(bfd *)local_6c,(asection *)0x0,pcVar26,pcVar27);" (call_expression "bfd_nonfatal_message((char *)0x0,(bfd *)local_6c,(asection *)0x0,pcVar26,pcVar27)" identifier (argument_list "((char *)0x0,(bfd *)local_6c,(asection *)0x0,pcVar26,pcVar27)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(bfd *)local_6c" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) 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 (*(int *)(local_6c->id + 4) == 2) {\n        prVar42 = (reloc_cache_entry *)local_6c->orelocation;\n        prVar62 = (reloc_cache_entry *)0x0;\n        if (prVar42 == (reloc_cache_entry *)0x0) {\nLAB_0001aa69:\n          uVar63 = 0x1000;\n          iVar22 = 0;\n        }\n        else {\n          do {\n            prVar12 = *(reloc_cache_entry **)((int)&prVar42[1].address + 4);\n            prVar61 = prVar62;\n            if (((prVar12 != (reloc_cache_entry *)0x0 ||\n                  *(reloc_cache_entry **)&prVar42[1].address != (reloc_cache_entry *)0x0) &&\n                (prVar61 = prVar42, prVar62 != (reloc_cache_entry *)0x0)) &&\n               (prVar11 = *(reloc_cache_entry **)((int)&prVar62[1].address + 4), prVar61 = prVar62,\n               prVar11 < prVar12 ||\n               (uint)((int)prVar11 - (int)prVar12) <\n               (uint)(*(reloc_cache_entry **)&prVar62[1].address <\n                     *(reloc_cache_entry **)&prVar42[1].address))) {\n              prVar61 = prVar42;\n            }\n            prVar42 = *(reloc_cache_entry **)&prVar42->addend;\n            prVar62 = prVar61;\n          } while (prVar42 != (reloc_cache_entry *)0x0);\n          if (prVar61 == (reloc_cache_entry *)0x0) goto LAB_0001aa69;\n          uVar63 = (int)&(prVar61[1].howto)->type + (int)*(reloc_cache_entry **)&prVar61[1].address;\n          iVar22 = (int)&((reloc_cache_entry *)prVar61[2].sym_ptr_ptr)->sym_ptr_ptr +\n                   (int)&(*(reloc_cache_entry **)((int)&prVar61[1].address + 4))->sym_ptr_ptr +\n                   (uint)CARRY4((uint)prVar61[1].howto,\n                                (uint)*(reloc_cache_entry **)&prVar61[1].address);\n          if (-iVar22 - 1U < (uint)(0xfffff000 < uVar63)) {\n            uVar63 = 0xffffffff;\n            iVar22 = -1;\n          }\n          else {\n            iVar22 = iVar22 + (uint)(0xfffff000 < uVar63);\n            uVar63 = uVar63 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(local_c4 + 0x24) = uVar63;\n        *(int *)(local_c4 + 0x28) = iVar22;\n        *(uint *)(local_c4 + 0x1c) = uVar63;\n        *(int *)(local_c4 + 0x20) = iVar22;\n        local_c4[0x18] = local_c4[0x18] | 1;\n      }" if (parenthesized_expression "(*(int *)(local_6c->id + 4) == 2)" ( (binary_expression "*(int *)(local_6c->id + 4) == 2" (pointer_expression "*(int *)(local_6c->id + 4)" * (cast_expression "(int *)(local_6c->id + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_6c->id + 4)" ( (binary_expression "local_6c->id + 4" (field_expression "local_6c->id" identifier -> field_identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n        prVar42 = (reloc_cache_entry *)local_6c->orelocation;\n        prVar62 = (reloc_cache_entry *)0x0;\n        if (prVar42 == (reloc_cache_entry *)0x0) {\nLAB_0001aa69:\n          uVar63 = 0x1000;\n          iVar22 = 0;\n        }\n        else {\n          do {\n            prVar12 = *(reloc_cache_entry **)((int)&prVar42[1].address + 4);\n            prVar61 = prVar62;\n            if (((prVar12 != (reloc_cache_entry *)0x0 ||\n                  *(reloc_cache_entry **)&prVar42[1].address != (reloc_cache_entry *)0x0) &&\n                (prVar61 = prVar42, prVar62 != (reloc_cache_entry *)0x0)) &&\n               (prVar11 = *(reloc_cache_entry **)((int)&prVar62[1].address + 4), prVar61 = prVar62,\n               prVar11 < prVar12 ||\n               (uint)((int)prVar11 - (int)prVar12) <\n               (uint)(*(reloc_cache_entry **)&prVar62[1].address <\n                     *(reloc_cache_entry **)&prVar42[1].address))) {\n              prVar61 = prVar42;\n            }\n            prVar42 = *(reloc_cache_entry **)&prVar42->addend;\n            prVar62 = prVar61;\n          } while (prVar42 != (reloc_cache_entry *)0x0);\n          if (prVar61 == (reloc_cache_entry *)0x0) goto LAB_0001aa69;\n          uVar63 = (int)&(prVar61[1].howto)->type + (int)*(reloc_cache_entry **)&prVar61[1].address;\n          iVar22 = (int)&((reloc_cache_entry *)prVar61[2].sym_ptr_ptr)->sym_ptr_ptr +\n                   (int)&(*(reloc_cache_entry **)((int)&prVar61[1].address + 4))->sym_ptr_ptr +\n                   (uint)CARRY4((uint)prVar61[1].howto,\n                                (uint)*(reloc_cache_entry **)&prVar61[1].address);\n          if (-iVar22 - 1U < (uint)(0xfffff000 < uVar63)) {\n            uVar63 = 0xffffffff;\n            iVar22 = -1;\n          }\n          else {\n            iVar22 = iVar22 + (uint)(0xfffff000 < uVar63);\n            uVar63 = uVar63 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(local_c4 + 0x24) = uVar63;\n        *(int *)(local_c4 + 0x28) = iVar22;\n        *(uint *)(local_c4 + 0x1c) = uVar63;\n        *(int *)(local_c4 + 0x20) = iVar22;\n        local_c4[0x18] = local_c4[0x18] | 1;\n      }" { (expression_statement "prVar42 = (reloc_cache_entry *)local_6c->orelocation;" (assignment_expression "prVar42 = (reloc_cache_entry *)local_6c->orelocation" identifier = (cast_expression "(reloc_cache_entry *)local_6c->orelocation" ( (type_descriptor "reloc_cache_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_6c->orelocation" identifier -> field_identifier))) ;) (expression_statement "prVar62 = (reloc_cache_entry *)0x0;" (assignment_expression "prVar62 = (reloc_cache_entry *)0x0" identifier = (cast_expression "(reloc_cache_entry *)0x0" ( (type_descriptor "reloc_cache_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (prVar42 == (reloc_cache_entry *)0x0) {\nLAB_0001aa69:\n          uVar63 = 0x1000;\n          iVar22 = 0;\n        }\n        else {\n          do {\n            prVar12 = *(reloc_cache_entry **)((int)&prVar42[1].address + 4);\n            prVar61 = prVar62;\n            if (((prVar12 != (reloc_cache_entry *)0x0 ||\n                  *(reloc_cache_entry **)&prVar42[1].address != (reloc_cache_entry *)0x0) &&\n                (prVar61 = prVar42, prVar62 != (reloc_cache_entry *)0x0)) &&\n               (prVar11 = *(reloc_cache_entry **)((int)&prVar62[1].address + 4), prVar61 = prVar62,\n               prVar11 < prVar12 ||\n               (uint)((int)prVar11 - (int)prVar12) <\n               (uint)(*(reloc_cache_entry **)&prVar62[1].address <\n                     *(reloc_cache_entry **)&prVar42[1].address))) {\n              prVar61 = prVar42;\n            }\n            prVar42 = *(reloc_cache_entry **)&prVar42->addend;\n            prVar62 = prVar61;\n          } while (prVar42 != (reloc_cache_entry *)0x0);\n          if (prVar61 == (reloc_cache_entry *)0x0) goto LAB_0001aa69;\n          uVar63 = (int)&(prVar61[1].howto)->type + (int)*(reloc_cache_entry **)&prVar61[1].address;\n          iVar22 = (int)&((reloc_cache_entry *)prVar61[2].sym_ptr_ptr)->sym_ptr_ptr +\n                   (int)&(*(reloc_cache_entry **)((int)&prVar61[1].address + 4))->sym_ptr_ptr +\n                   (uint)CARRY4((uint)prVar61[1].howto,\n                                (uint)*(reloc_cache_entry **)&prVar61[1].address);\n          if (-iVar22 - 1U < (uint)(0xfffff000 < uVar63)) {\n            uVar63 = 0xffffffff;\n            iVar22 = -1;\n          }\n          else {\n            iVar22 = iVar22 + (uint)(0xfffff000 < uVar63);\n            uVar63 = uVar63 + 0xfff & 0xfffff000;\n          }\n        }" if (parenthesized_expression "(prVar42 == (reloc_cache_entry *)0x0)" ( (binary_expression "prVar42 == (reloc_cache_entry *)0x0" identifier == (cast_expression "(reloc_cache_entry *)0x0" ( (type_descriptor "reloc_cache_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0001aa69:\n          uVar63 = 0x1000;\n          iVar22 = 0;\n        }" { (labeled_statement "LAB_0001aa69:\n          uVar63 = 0x1000;" statement_identifier : (expression_statement "uVar63 = 0x1000;" (assignment_expression "uVar63 = 0x1000" identifier = number_literal) ;)) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          do {\n            prVar12 = *(reloc_cache_entry **)((int)&prVar42[1].address + 4);\n            prVar61 = prVar62;\n            if (((prVar12 != (reloc_cache_entry *)0x0 ||\n                  *(reloc_cache_entry **)&prVar42[1].address != (reloc_cache_entry *)0x0) &&\n                (prVar61 = prVar42, prVar62 != (reloc_cache_entry *)0x0)) &&\n               (prVar11 = *(reloc_cache_entry **)((int)&prVar62[1].address + 4), prVar61 = prVar62,\n               prVar11 < prVar12 ||\n               (uint)((int)prVar11 - (int)prVar12) <\n               (uint)(*(reloc_cache_entry **)&prVar62[1].address <\n                     *(reloc_cache_entry **)&prVar42[1].address))) {\n              prVar61 = prVar42;\n            }\n            prVar42 = *(reloc_cache_entry **)&prVar42->addend;\n            prVar62 = prVar61;\n          } while (prVar42 != (reloc_cache_entry *)0x0);\n          if (prVar61 == (reloc_cache_entry *)0x0) goto LAB_0001aa69;\n          uVar63 = (int)&(prVar61[1].howto)->type + (int)*(reloc_cache_entry **)&prVar61[1].address;\n          iVar22 = (int)&((reloc_cache_entry *)prVar61[2].sym_ptr_ptr)->sym_ptr_ptr +\n                   (int)&(*(reloc_cache_entry **)((int)&prVar61[1].address + 4))->sym_ptr_ptr +\n                   (uint)CARRY4((uint)prVar61[1].howto,\n                                (uint)*(reloc_cache_entry **)&prVar61[1].address);\n          if (-iVar22 - 1U < (uint)(0xfffff000 < uVar63)) {\n            uVar63 = 0xffffffff;\n            iVar22 = -1;\n          }\n          else {\n            iVar22 = iVar22 + (uint)(0xfffff000 < uVar63);\n            uVar63 = uVar63 + 0xfff & 0xfffff000;\n          }\n        }" else (compound_statement "{\n          do {\n            prVar12 = *(reloc_cache_entry **)((int)&prVar42[1].address + 4);\n            prVar61 = prVar62;\n            if (((prVar12 != (reloc_cache_entry *)0x0 ||\n                  *(reloc_cache_entry **)&prVar42[1].address != (reloc_cache_entry *)0x0) &&\n                (prVar61 = prVar42, prVar62 != (reloc_cache_entry *)0x0)) &&\n               (prVar11 = *(reloc_cache_entry **)((int)&prVar62[1].address + 4), prVar61 = prVar62,\n               prVar11 < prVar12 ||\n               (uint)((int)prVar11 - (int)prVar12) <\n               (uint)(*(reloc_cache_entry **)&prVar62[1].address <\n                     *(reloc_cache_entry **)&prVar42[1].address))) {\n              prVar61 = prVar42;\n            }\n            prVar42 = *(reloc_cache_entry **)&prVar42->addend;\n            prVar62 = prVar61;\n          } while (prVar42 != (reloc_cache_entry *)0x0);\n          if (prVar61 == (reloc_cache_entry *)0x0) goto LAB_0001aa69;\n          uVar63 = (int)&(prVar61[1].howto)->type + (int)*(reloc_cache_entry **)&prVar61[1].address;\n          iVar22 = (int)&((reloc_cache_entry *)prVar61[2].sym_ptr_ptr)->sym_ptr_ptr +\n                   (int)&(*(reloc_cache_entry **)((int)&prVar61[1].address + 4))->sym_ptr_ptr +\n                   (uint)CARRY4((uint)prVar61[1].howto,\n                                (uint)*(reloc_cache_entry **)&prVar61[1].address);\n          if (-iVar22 - 1U < (uint)(0xfffff000 < uVar63)) {\n            uVar63 = 0xffffffff;\n            iVar22 = -1;\n          }\n          else {\n            iVar22 = iVar22 + (uint)(0xfffff000 < uVar63);\n            uVar63 = uVar63 + 0xfff & 0xfffff000;\n          }\n        }" { (do_statement "do {\n            prVar12 = *(reloc_cache_entry **)((int)&prVar42[1].address + 4);\n            prVar61 = prVar62;\n            if (((prVar12 != (reloc_cache_entry *)0x0 ||\n                  *(reloc_cache_entry **)&prVar42[1].address != (reloc_cache_entry *)0x0) &&\n                (prVar61 = prVar42, prVar62 != (reloc_cache_entry *)0x0)) &&\n               (prVar11 = *(reloc_cache_entry **)((int)&prVar62[1].address + 4), prVar61 = prVar62,\n               prVar11 < prVar12 ||\n               (uint)((int)prVar11 - (int)prVar12) <\n               (uint)(*(reloc_cache_entry **)&prVar62[1].address <\n                     *(reloc_cache_entry **)&prVar42[1].address))) {\n              prVar61 = prVar42;\n            }\n            prVar42 = *(reloc_cache_entry **)&prVar42->addend;\n            prVar62 = prVar61;\n          } while (prVar42 != (reloc_cache_entry *)0x0);" do (compound_statement "{\n            prVar12 = *(reloc_cache_entry **)((int)&prVar42[1].address + 4);\n            prVar61 = prVar62;\n            if (((prVar12 != (reloc_cache_entry *)0x0 ||\n                  *(reloc_cache_entry **)&prVar42[1].address != (reloc_cache_entry *)0x0) &&\n                (prVar61 = prVar42, prVar62 != (reloc_cache_entry *)0x0)) &&\n               (prVar11 = *(reloc_cache_entry **)((int)&prVar62[1].address + 4), prVar61 = prVar62,\n               prVar11 < prVar12 ||\n               (uint)((int)prVar11 - (int)prVar12) <\n               (uint)(*(reloc_cache_entry **)&prVar62[1].address <\n                     *(reloc_cache_entry **)&prVar42[1].address))) {\n              prVar61 = prVar42;\n            }\n            prVar42 = *(reloc_cache_entry **)&prVar42->addend;\n            prVar62 = prVar61;\n          }" { (expression_statement "prVar12 = *(reloc_cache_entry **)((int)&prVar42[1].address + 4);" (assignment_expression "prVar12 = *(reloc_cache_entry **)((int)&prVar42[1].address + 4)" identifier = (pointer_expression "*(reloc_cache_entry **)((int)&prVar42[1].address + 4)" * (cast_expression "(reloc_cache_entry **)((int)&prVar42[1].address + 4)" ( (type_descriptor "reloc_cache_entry **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&prVar42[1].address + 4)" ( (binary_expression "(int)&prVar42[1].address + 4" (cast_expression "(int)&prVar42[1].address" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar42[1].address" & (field_expression "prVar42[1].address" (subscript_expression "prVar42[1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))))) ;) (expression_statement "prVar61 = prVar62;" (assignment_expression "prVar61 = prVar62" identifier = identifier) ;) (if_statement "if (((prVar12 != (reloc_cache_entry *)0x0 ||\n                  *(reloc_cache_entry **)&prVar42[1].address != (reloc_cache_entry *)0x0) &&\n                (prVar61 = prVar42, prVar62 != (reloc_cache_entry *)0x0)) &&\n               (prVar11 = *(reloc_cache_entry **)((int)&prVar62[1].address + 4), prVar61 = prVar62,\n               prVar11 < prVar12 ||\n               (uint)((int)prVar11 - (int)prVar12) <\n               (uint)(*(reloc_cache_entry **)&prVar62[1].address <\n                     *(reloc_cache_entry **)&prVar42[1].address))) {\n              prVar61 = prVar42;\n            }" if (parenthesized_expression "(((prVar12 != (reloc_cache_entry *)0x0 ||\n                  *(reloc_cache_entry **)&prVar42[1].address != (reloc_cache_entry *)0x0) &&\n                (prVar61 = prVar42, prVar62 != (reloc_cache_entry *)0x0)) &&\n               (prVar11 = *(reloc_cache_entry **)((int)&prVar62[1].address + 4), prVar61 = prVar62,\n               prVar11 < prVar12 ||\n               (uint)((int)prVar11 - (int)prVar12) <\n               (uint)(*(reloc_cache_entry **)&prVar62[1].address <\n                     *(reloc_cache_entry **)&prVar42[1].address)))" ( (binary_expression "((prVar12 != (reloc_cache_entry *)0x0 ||\n                  *(reloc_cache_entry **)&prVar42[1].address != (reloc_cache_entry *)0x0) &&\n                (prVar61 = prVar42, prVar62 != (reloc_cache_entry *)0x0)) &&\n               (prVar11 = *(reloc_cache_entry **)((int)&prVar62[1].address + 4), prVar61 = prVar62,\n               prVar11 < prVar12 ||\n               (uint)((int)prVar11 - (int)prVar12) <\n               (uint)(*(reloc_cache_entry **)&prVar62[1].address <\n                     *(reloc_cache_entry **)&prVar42[1].address))" (parenthesized_expression "((prVar12 != (reloc_cache_entry *)0x0 ||\n                  *(reloc_cache_entry **)&prVar42[1].address != (reloc_cache_entry *)0x0) &&\n                (prVar61 = prVar42, prVar62 != (reloc_cache_entry *)0x0))" ( (binary_expression "(prVar12 != (reloc_cache_entry *)0x0 ||\n                  *(reloc_cache_entry **)&prVar42[1].address != (reloc_cache_entry *)0x0) &&\n                (prVar61 = prVar42, prVar62 != (reloc_cache_entry *)0x0)" (parenthesized_expression "(prVar12 != (reloc_cache_entry *)0x0 ||\n                  *(reloc_cache_entry **)&prVar42[1].address != (reloc_cache_entry *)0x0)" ( (binary_expression "prVar12 != (reloc_cache_entry *)0x0 ||\n                  *(reloc_cache_entry **)&prVar42[1].address != (reloc_cache_entry *)0x0" (binary_expression "prVar12 != (reloc_cache_entry *)0x0" identifier != (cast_expression "(reloc_cache_entry *)0x0" ( (type_descriptor "reloc_cache_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "*(reloc_cache_entry **)&prVar42[1].address != (reloc_cache_entry *)0x0" (pointer_expression "*(reloc_cache_entry **)&prVar42[1].address" * (cast_expression "(reloc_cache_entry **)&prVar42[1].address" ( (type_descriptor "reloc_cache_entry **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&prVar42[1].address" & (field_expression "prVar42[1].address" (subscript_expression "prVar42[1]" identifier [ number_literal ]) . field_identifier)))) != (cast_expression "(reloc_cache_entry *)0x0" ( (type_descriptor "reloc_cache_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) && (parenthesized_expression "(prVar61 = prVar42, prVar62 != (reloc_cache_entry *)0x0)" ( (comma_expression "prVar61 = prVar42, prVar62 != (reloc_cache_entry *)0x0" (assignment_expression "prVar61 = prVar42" identifier = identifier) , (binary_expression "prVar62 != (reloc_cache_entry *)0x0" identifier != (cast_expression "(reloc_cache_entry *)0x0" ( (type_descriptor "reloc_cache_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(prVar11 = *(reloc_cache_entry **)((int)&prVar62[1].address + 4), prVar61 = prVar62,\n               prVar11 < prVar12 ||\n               (uint)((int)prVar11 - (int)prVar12) <\n               (uint)(*(reloc_cache_entry **)&prVar62[1].address <\n                     *(reloc_cache_entry **)&prVar42[1].address))" ( (comma_expression "prVar11 = *(reloc_cache_entry **)((int)&prVar62[1].address + 4), prVar61 = prVar62,\n               prVar11 < prVar12 ||\n               (uint)((int)prVar11 - (int)prVar12) <\n               (uint)(*(reloc_cache_entry **)&prVar62[1].address <\n                     *(reloc_cache_entry **)&prVar42[1].address)" (assignment_expression "prVar11 = *(reloc_cache_entry **)((int)&prVar62[1].address + 4)" identifier = (pointer_expression "*(reloc_cache_entry **)((int)&prVar62[1].address + 4)" * (cast_expression "(reloc_cache_entry **)((int)&prVar62[1].address + 4)" ( (type_descriptor "reloc_cache_entry **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&prVar62[1].address + 4)" ( (binary_expression "(int)&prVar62[1].address + 4" (cast_expression "(int)&prVar62[1].address" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar62[1].address" & (field_expression "prVar62[1].address" (subscript_expression "prVar62[1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))))) , (comma_expression "prVar61 = prVar62,\n               prVar11 < prVar12 ||\n               (uint)((int)prVar11 - (int)prVar12) <\n               (uint)(*(reloc_cache_entry **)&prVar62[1].address <\n                     *(reloc_cache_entry **)&prVar42[1].address)" (assignment_expression "prVar61 = prVar62" identifier = identifier) , (binary_expression "prVar11 < prVar12 ||\n               (uint)((int)prVar11 - (int)prVar12) <\n               (uint)(*(reloc_cache_entry **)&prVar62[1].address <\n                     *(reloc_cache_entry **)&prVar42[1].address)" (binary_expression "prVar11 < prVar12" identifier < identifier) || (binary_expression "(uint)((int)prVar11 - (int)prVar12) <\n               (uint)(*(reloc_cache_entry **)&prVar62[1].address <\n                     *(reloc_cache_entry **)&prVar42[1].address)" (call_expression "(uint)((int)prVar11 - (int)prVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)prVar11 - (int)prVar12)" ( (binary_expression "(int)prVar11 - (int)prVar12" (cast_expression "(int)prVar11" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)prVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < (call_expression "(uint)(*(reloc_cache_entry **)&prVar62[1].address <\n                     *(reloc_cache_entry **)&prVar42[1].address)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(reloc_cache_entry **)&prVar62[1].address <\n                     *(reloc_cache_entry **)&prVar42[1].address)" ( (binary_expression "*(reloc_cache_entry **)&prVar62[1].address <\n                     *(reloc_cache_entry **)&prVar42[1].address" (pointer_expression "*(reloc_cache_entry **)&prVar62[1].address" * (cast_expression "(reloc_cache_entry **)&prVar62[1].address" ( (type_descriptor "reloc_cache_entry **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&prVar62[1].address" & (field_expression "prVar62[1].address" (subscript_expression "prVar62[1]" identifier [ number_literal ]) . field_identifier)))) < (pointer_expression "*(reloc_cache_entry **)&prVar42[1].address" * (cast_expression "(reloc_cache_entry **)&prVar42[1].address" ( (type_descriptor "reloc_cache_entry **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&prVar42[1].address" & (field_expression "prVar42[1].address" (subscript_expression "prVar42[1]" identifier [ number_literal ]) . field_identifier))))) ))))))) ))) )) (compound_statement "{\n              prVar61 = prVar42;\n            }" { (expression_statement "prVar61 = prVar42;" (assignment_expression "prVar61 = prVar42" identifier = identifier) ;) })) (expression_statement "prVar42 = *(reloc_cache_entry **)&prVar42->addend;" (assignment_expression "prVar42 = *(reloc_cache_entry **)&prVar42->addend" identifier = (pointer_expression "*(reloc_cache_entry **)&prVar42->addend" * (cast_expression "(reloc_cache_entry **)&prVar42->addend" ( (type_descriptor "reloc_cache_entry **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&prVar42->addend" & (field_expression "prVar42->addend" identifier -> field_identifier))))) ;) (expression_statement "prVar62 = prVar61;" (assignment_expression "prVar62 = prVar61" identifier = identifier) ;) }) while (parenthesized_expression "(prVar42 != (reloc_cache_entry *)0x0)" ( (binary_expression "prVar42 != (reloc_cache_entry *)0x0" identifier != (cast_expression "(reloc_cache_entry *)0x0" ( (type_descriptor "reloc_cache_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (if_statement "if (prVar61 == (reloc_cache_entry *)0x0) goto LAB_0001aa69;" if (parenthesized_expression "(prVar61 == (reloc_cache_entry *)0x0)" ( (binary_expression "prVar61 == (reloc_cache_entry *)0x0" identifier == (cast_expression "(reloc_cache_entry *)0x0" ( (type_descriptor "reloc_cache_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001aa69;" goto statement_identifier ;)) (expression_statement "uVar63 = (int)&(prVar61[1].howto)->type + (int)*(reloc_cache_entry **)&prVar61[1].address;" (assignment_expression "uVar63 = (int)&(prVar61[1].howto)->type + (int)*(reloc_cache_entry **)&prVar61[1].address" identifier = (binary_expression "(int)&(prVar61[1].howto)->type + (int)*(reloc_cache_entry **)&prVar61[1].address" (cast_expression "(int)&(prVar61[1].howto)->type" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(prVar61[1].howto)->type" & (field_expression "(prVar61[1].howto)->type" (parenthesized_expression "(prVar61[1].howto)" ( (field_expression "prVar61[1].howto" (subscript_expression "prVar61[1]" identifier [ number_literal ]) . field_identifier) )) -> field_identifier))) + (cast_expression "(int)*(reloc_cache_entry **)&prVar61[1].address" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(reloc_cache_entry **)&prVar61[1].address" * (cast_expression "(reloc_cache_entry **)&prVar61[1].address" ( (type_descriptor "reloc_cache_entry **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&prVar61[1].address" & (field_expression "prVar61[1].address" (subscript_expression "prVar61[1]" identifier [ number_literal ]) . field_identifier))))))) ;) (expression_statement "iVar22 = (int)&((reloc_cache_entry *)prVar61[2].sym_ptr_ptr)->sym_ptr_ptr +\n                   (int)&(*(reloc_cache_entry **)((int)&prVar61[1].address + 4))->sym_ptr_ptr +\n                   (uint)CARRY4((uint)prVar61[1].howto,\n                                (uint)*(reloc_cache_entry **)&prVar61[1].address);" (assignment_expression "iVar22 = (int)&((reloc_cache_entry *)prVar61[2].sym_ptr_ptr)->sym_ptr_ptr +\n                   (int)&(*(reloc_cache_entry **)((int)&prVar61[1].address + 4))->sym_ptr_ptr +\n                   (uint)CARRY4((uint)prVar61[1].howto,\n                                (uint)*(reloc_cache_entry **)&prVar61[1].address)" identifier = (binary_expression "(int)&((reloc_cache_entry *)prVar61[2].sym_ptr_ptr)->sym_ptr_ptr +\n                   (int)&(*(reloc_cache_entry **)((int)&prVar61[1].address + 4))->sym_ptr_ptr +\n                   (uint)CARRY4((uint)prVar61[1].howto,\n                                (uint)*(reloc_cache_entry **)&prVar61[1].address)" (binary_expression "(int)&((reloc_cache_entry *)prVar61[2].sym_ptr_ptr)->sym_ptr_ptr +\n                   (int)&(*(reloc_cache_entry **)((int)&prVar61[1].address + 4))->sym_ptr_ptr" (cast_expression "(int)&((reloc_cache_entry *)prVar61[2].sym_ptr_ptr)->sym_ptr_ptr" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&((reloc_cache_entry *)prVar61[2].sym_ptr_ptr)->sym_ptr_ptr" & (field_expression "((reloc_cache_entry *)prVar61[2].sym_ptr_ptr)->sym_ptr_ptr" (parenthesized_expression "((reloc_cache_entry *)prVar61[2].sym_ptr_ptr)" ( (cast_expression "(reloc_cache_entry *)prVar61[2].sym_ptr_ptr" ( (type_descriptor "reloc_cache_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "prVar61[2].sym_ptr_ptr" (subscript_expression "prVar61[2]" identifier [ number_literal ]) . field_identifier)) )) -> field_identifier))) + (cast_expression "(int)&(*(reloc_cache_entry **)((int)&prVar61[1].address + 4))->sym_ptr_ptr" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(*(reloc_cache_entry **)((int)&prVar61[1].address + 4))->sym_ptr_ptr" & (field_expression "(*(reloc_cache_entry **)((int)&prVar61[1].address + 4))->sym_ptr_ptr" (parenthesized_expression "(*(reloc_cache_entry **)((int)&prVar61[1].address + 4))" ( (pointer_expression "*(reloc_cache_entry **)((int)&prVar61[1].address + 4)" * (cast_expression "(reloc_cache_entry **)((int)&prVar61[1].address + 4)" ( (type_descriptor "reloc_cache_entry **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&prVar61[1].address + 4)" ( (binary_expression "(int)&prVar61[1].address + 4" (cast_expression "(int)&prVar61[1].address" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&prVar61[1].address" & (field_expression "prVar61[1].address" (subscript_expression "prVar61[1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) )) -> field_identifier)))) + (cast_expression "(uint)CARRY4((uint)prVar61[1].howto,\n                                (uint)*(reloc_cache_entry **)&prVar61[1].address)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)prVar61[1].howto,\n                                (uint)*(reloc_cache_entry **)&prVar61[1].address)" identifier (argument_list "((uint)prVar61[1].howto,\n                                (uint)*(reloc_cache_entry **)&prVar61[1].address)" ( (cast_expression "(uint)prVar61[1].howto" ( (type_descriptor "uint" type_identifier) ) (field_expression "prVar61[1].howto" (subscript_expression "prVar61[1]" identifier [ number_literal ]) . field_identifier)) , (binary_expression "(uint)*(reloc_cache_entry **)&prVar61[1].address" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(reloc_cache_entry **)&prVar61[1].address" ( (type_descriptor "reloc_cache_entry **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&prVar61[1].address" & (field_expression "prVar61[1].address" (subscript_expression "prVar61[1]" identifier [ number_literal ]) . field_identifier)))) )))))) ;) (if_statement "if (-iVar22 - 1U < (uint)(0xfffff000 < uVar63)) {\n            uVar63 = 0xffffffff;\n            iVar22 = -1;\n          }\n          else {\n            iVar22 = iVar22 + (uint)(0xfffff000 < uVar63);\n            uVar63 = uVar63 + 0xfff & 0xfffff000;\n          }" if (parenthesized_expression "(-iVar22 - 1U < (uint)(0xfffff000 < uVar63))" ( (binary_expression "-iVar22 - 1U < (uint)(0xfffff000 < uVar63)" (binary_expression "-iVar22 - 1U" (unary_expression "-iVar22" - identifier) - number_literal) < (call_expression "(uint)(0xfffff000 < uVar63)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffff000 < uVar63)" ( (binary_expression "0xfffff000 < uVar63" number_literal < identifier) )))) )) (compound_statement "{\n            uVar63 = 0xffffffff;\n            iVar22 = -1;\n          }" { (expression_statement "uVar63 = 0xffffffff;" (assignment_expression "uVar63 = 0xffffffff" identifier = number_literal) ;) (expression_statement "iVar22 = -1;" (assignment_expression "iVar22 = -1" identifier = number_literal) ;) }) (else_clause "else {\n            iVar22 = iVar22 + (uint)(0xfffff000 < uVar63);\n            uVar63 = uVar63 + 0xfff & 0xfffff000;\n          }" else (compound_statement "{\n            iVar22 = iVar22 + (uint)(0xfffff000 < uVar63);\n            uVar63 = uVar63 + 0xfff & 0xfffff000;\n          }" { (expression_statement "iVar22 = iVar22 + (uint)(0xfffff000 < uVar63);" (assignment_expression "iVar22 = iVar22 + (uint)(0xfffff000 < uVar63)" identifier = (binary_expression "iVar22 + (uint)(0xfffff000 < uVar63)" identifier + (call_expression "(uint)(0xfffff000 < uVar63)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffff000 < uVar63)" ( (binary_expression "0xfffff000 < uVar63" number_literal < identifier) ))))) ;) (expression_statement "uVar63 = uVar63 + 0xfff & 0xfffff000;" (assignment_expression "uVar63 = uVar63 + 0xfff & 0xfffff000" identifier = (binary_expression "uVar63 + 0xfff & 0xfffff000" (binary_expression "uVar63 + 0xfff" identifier + number_literal) & number_literal)) ;) }))) }))) (expression_statement "*(uint *)(local_c4 + 0x24) = uVar63;" (assignment_expression "*(uint *)(local_c4 + 0x24) = uVar63" (pointer_expression "*(uint *)(local_c4 + 0x24)" * (cast_expression "(uint *)(local_c4 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + 0x24)" ( (binary_expression "local_c4 + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(local_c4 + 0x28) = iVar22;" (assignment_expression "*(int *)(local_c4 + 0x28) = iVar22" (pointer_expression "*(int *)(local_c4 + 0x28)" * (cast_expression "(int *)(local_c4 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + 0x28)" ( (binary_expression "local_c4 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(local_c4 + 0x1c) = uVar63;" (assignment_expression "*(uint *)(local_c4 + 0x1c) = uVar63" (pointer_expression "*(uint *)(local_c4 + 0x1c)" * (cast_expression "(uint *)(local_c4 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + 0x1c)" ( (binary_expression "local_c4 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(local_c4 + 0x20) = iVar22;" (assignment_expression "*(int *)(local_c4 + 0x20) = iVar22" (pointer_expression "*(int *)(local_c4 + 0x20)" * (cast_expression "(int *)(local_c4 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_c4 + 0x20)" ( (binary_expression "local_c4 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "local_c4[0x18] = local_c4[0x18] | 1;" (assignment_expression "local_c4[0x18] = local_c4[0x18] | 1" (subscript_expression "local_c4[0x18]" identifier [ number_literal ]) = (binary_expression "local_c4[0x18] | 1" (subscript_expression "local_c4[0x18]" identifier [ number_literal ]) | number_literal)) ;) })) }) (else_clause "else {\n      pcVar27 = local_6c->name;\n      pcVar26 = (char *)dcgettext(0,"%s: debuglink section already exists",5);\n      non_fatal(pcVar26,pcVar27);\n      gnu_debuglink_filename = (char *)0x0;\n      local_c4 = (char *)0x0;\n    }" else (compound_statement "{\n      pcVar27 = local_6c->name;\n      pcVar26 = (char *)dcgettext(0,"%s: debuglink section already exists",5);\n      non_fatal(pcVar26,pcVar27);\n      gnu_debuglink_filename = (char *)0x0;\n      local_c4 = (char *)0x0;\n    }" { (expression_statement "pcVar27 = local_6c->name;" (assignment_expression "pcVar27 = local_6c->name" identifier = (field_expression "local_6c->name" identifier -> field_identifier)) ;) (expression_statement "pcVar26 = (char *)dcgettext(0,"%s: debuglink section already exists",5);" (assignment_expression "pcVar26 = (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(pcVar26,pcVar27);" (call_expression "non_fatal(pcVar26,pcVar27)" identifier (argument_list "(pcVar26,pcVar27)" ( identifier , 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_c4 = (char *)0x0;" (assignment_expression "local_c4 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) })) (expression_statement "sVar37 = (size_t)local_6c->filepos;" (assignment_expression "sVar37 = (size_t)local_6c->filepos" identifier = (cast_expression "(size_t)local_6c->filepos" ( (type_descriptor "size_t" primitive_type) ) (field_expression "local_6c->filepos" identifier -> field_identifier))) ;) (if_statement "if ((sVar37 == 0) || (gap_fill_set == 0 && pad_to_set == 0)) {\n    local_b8 = (asection *)0x0;\n    local_bc = 0;\n    local_b4 = (void *)0x0;\n    local_a8 = (asection *)0x0;\n    uVar63 = local_bc;\n    paVar30 = local_b8;\n  }\n  else {\n    local_a8 = (asection *)xmalloc(sVar37 * 4);\n    contents = (bfd_byte *)local_a8;\n    bfd_map_over_sections(local_6c,get_sections,&contents);\n    qsort(local_a8,sVar37,4,compare_section_lma);\n    sVar38 = sVar37 * 8;\n    local_b4 = (void *)xmalloc(sVar38);\n    memset(local_b4,0,sVar38);\n    if ((gap_fill_set == 0) || (sVar37 == 1)) {\n      local_b8 = (asection *)0x0;\n      local_bc = 0;\n    }\n    else {\n      local_b8 = (asection *)0x0;\n      local_bc = 0;\n      local_6c = (bfd_section *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (bfd_section *)((int)local_6c + 1);\n        iVar22 = *local_64;\n        uVar63 = local_bc;\n        paVar30 = local_b8;\n        if ((*(uint *)(iVar22 + 0x14) & 0x102) == 0x102) {\n          uVar48 = *(uint *)(iVar22 + 0x2c);\n          uVar60 = *(uint *)(local_64[1] + 0x28);\n          uVar67 = *(uint *)(local_64[1] + 0x24);\n          uVar55 = uVar48 + *(uint *)(iVar22 + 0x24);\n          uVar64 = *(int *)(iVar22 + 0x30) + *(int *)(iVar22 + 0x28) +\n                   (uint)CARRY4(uVar48,*(uint *)(iVar22 + 0x24));\n          if (uVar64 < uVar60 || uVar64 - uVar60 < (uint)(uVar55 < uVar67)) {\n            paVar30 = (asection *)(uVar67 - uVar55);\n            uVar63 = (uVar60 - uVar64) - (uint)(uVar67 < uVar55);\n            iVar22 = bfd_set_section_size\n                               (obfd,iVar22,(int)&paVar30->name + uVar48,\n                                *(int *)(iVar22 + 0x30) + uVar63 +\n                                (uint)CARRY4(uVar48,(uint)paVar30));\n            if (iVar22 == 0) {\n              pcVar27 = (char *)dcgettext(0,"Can\'t fill gap after section",5,0);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_64,pcVar27);\n              status = 1;\n              break;\n            }\n            *(asection **)((int)local_b4 + (int)local_6c * 8 + -8) = paVar30;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar63;\n            if (uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63) {\n              uVar63 = local_bc;\n              paVar30 = local_b8;\n            }\n          }\n        }\n        local_b8 = paVar30;\n        local_bc = uVar63;\n        local_64 = local_64 + 1;\n      } while ((bfd_section *)(sVar37 - 1) != local_6c);\n    }\n    uVar63 = local_bc;\n    paVar30 = local_b8;\n    if (pad_to_set != 0) {\n      iVar22 = *(int *)((int)local_a8 + (sVar37 - 1) * 4);\n      uVar48 = *(uint *)(iVar22 + 0x24);\n      uVar60 = uVar48 + *(uint *)(iVar22 + 0x2c);\n      uVar67 = *(int *)(iVar22 + 0x28) + *(int *)(iVar22 + 0x30) +\n               (uint)CARRY4(uVar48,*(uint *)(iVar22 + 0x2c));\n      if (uVar67 < pad_to._4_4_ || uVar67 - pad_to._4_4_ < (uint)(uVar60 < (uint)pad_to)) {\n        iVar22 = bfd_set_section_size\n                           (obfd,iVar22,(uint)pad_to - uVar48,\n                            (pad_to._4_4_ - *(int *)(iVar22 + 0x28)) - (uint)((uint)pad_to < uVar48)\n                           );\n        if (iVar22 == 0) {\n          pcVar27 = (char *)dcgettext(0,"can\'t add padding",5,uVar60);\n          bfd_nonfatal_message\n                    ((char *)0x0,obfd,*(asection **)((int)local_a8 + (sVar37 - 1) * 4),pcVar27);\n          status = 1;\n        }\n        else {\n          paVar30 = (asection *)((uint)pad_to - uVar60);\n          uVar63 = (pad_to._4_4_ - uVar67) - (uint)((uint)pad_to < uVar60);\n          *(asection **)((int)local_b4 + (sVar38 - 8)) = paVar30;\n          *(uint *)((int)local_b4 + (sVar38 - 4)) = uVar63;\n          if (uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63) {\n            uVar63 = local_bc;\n            paVar30 = local_b8;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "((sVar37 == 0) || (gap_fill_set == 0 && pad_to_set == 0))" ( (binary_expression "(sVar37 == 0) || (gap_fill_set == 0 && pad_to_set == 0)" (parenthesized_expression "(sVar37 == 0)" ( (binary_expression "sVar37 == 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_b8 = (asection *)0x0;\n    local_bc = 0;\n    local_b4 = (void *)0x0;\n    local_a8 = (asection *)0x0;\n    uVar63 = local_bc;\n    paVar30 = local_b8;\n  }" { (expression_statement "local_b8 = (asection *)0x0;" (assignment_expression "local_b8 = (asection *)0x0" identifier = (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) (expression_statement "local_b4 = (void *)0x0;" (assignment_expression "local_b4 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_a8 = (asection *)0x0;" (assignment_expression "local_a8 = (asection *)0x0" identifier = (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar63 = local_bc;" (assignment_expression "uVar63 = local_bc" identifier = identifier) ;) (expression_statement "paVar30 = local_b8;" (assignment_expression "paVar30 = local_b8" identifier = identifier) ;) }) (else_clause "else {\n    local_a8 = (asection *)xmalloc(sVar37 * 4);\n    contents = (bfd_byte *)local_a8;\n    bfd_map_over_sections(local_6c,get_sections,&contents);\n    qsort(local_a8,sVar37,4,compare_section_lma);\n    sVar38 = sVar37 * 8;\n    local_b4 = (void *)xmalloc(sVar38);\n    memset(local_b4,0,sVar38);\n    if ((gap_fill_set == 0) || (sVar37 == 1)) {\n      local_b8 = (asection *)0x0;\n      local_bc = 0;\n    }\n    else {\n      local_b8 = (asection *)0x0;\n      local_bc = 0;\n      local_6c = (bfd_section *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (bfd_section *)((int)local_6c + 1);\n        iVar22 = *local_64;\n        uVar63 = local_bc;\n        paVar30 = local_b8;\n        if ((*(uint *)(iVar22 + 0x14) & 0x102) == 0x102) {\n          uVar48 = *(uint *)(iVar22 + 0x2c);\n          uVar60 = *(uint *)(local_64[1] + 0x28);\n          uVar67 = *(uint *)(local_64[1] + 0x24);\n          uVar55 = uVar48 + *(uint *)(iVar22 + 0x24);\n          uVar64 = *(int *)(iVar22 + 0x30) + *(int *)(iVar22 + 0x28) +\n                   (uint)CARRY4(uVar48,*(uint *)(iVar22 + 0x24));\n          if (uVar64 < uVar60 || uVar64 - uVar60 < (uint)(uVar55 < uVar67)) {\n            paVar30 = (asection *)(uVar67 - uVar55);\n            uVar63 = (uVar60 - uVar64) - (uint)(uVar67 < uVar55);\n            iVar22 = bfd_set_section_size\n                               (obfd,iVar22,(int)&paVar30->name + uVar48,\n                                *(int *)(iVar22 + 0x30) + uVar63 +\n                                (uint)CARRY4(uVar48,(uint)paVar30));\n            if (iVar22 == 0) {\n              pcVar27 = (char *)dcgettext(0,"Can\'t fill gap after section",5,0);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_64,pcVar27);\n              status = 1;\n              break;\n            }\n            *(asection **)((int)local_b4 + (int)local_6c * 8 + -8) = paVar30;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar63;\n            if (uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63) {\n              uVar63 = local_bc;\n              paVar30 = local_b8;\n            }\n          }\n        }\n        local_b8 = paVar30;\n        local_bc = uVar63;\n        local_64 = local_64 + 1;\n      } while ((bfd_section *)(sVar37 - 1) != local_6c);\n    }\n    uVar63 = local_bc;\n    paVar30 = local_b8;\n    if (pad_to_set != 0) {\n      iVar22 = *(int *)((int)local_a8 + (sVar37 - 1) * 4);\n      uVar48 = *(uint *)(iVar22 + 0x24);\n      uVar60 = uVar48 + *(uint *)(iVar22 + 0x2c);\n      uVar67 = *(int *)(iVar22 + 0x28) + *(int *)(iVar22 + 0x30) +\n               (uint)CARRY4(uVar48,*(uint *)(iVar22 + 0x2c));\n      if (uVar67 < pad_to._4_4_ || uVar67 - pad_to._4_4_ < (uint)(uVar60 < (uint)pad_to)) {\n        iVar22 = bfd_set_section_size\n                           (obfd,iVar22,(uint)pad_to - uVar48,\n                            (pad_to._4_4_ - *(int *)(iVar22 + 0x28)) - (uint)((uint)pad_to < uVar48)\n                           );\n        if (iVar22 == 0) {\n          pcVar27 = (char *)dcgettext(0,"can\'t add padding",5,uVar60);\n          bfd_nonfatal_message\n                    ((char *)0x0,obfd,*(asection **)((int)local_a8 + (sVar37 - 1) * 4),pcVar27);\n          status = 1;\n        }\n        else {\n          paVar30 = (asection *)((uint)pad_to - uVar60);\n          uVar63 = (pad_to._4_4_ - uVar67) - (uint)((uint)pad_to < uVar60);\n          *(asection **)((int)local_b4 + (sVar38 - 8)) = paVar30;\n          *(uint *)((int)local_b4 + (sVar38 - 4)) = uVar63;\n          if (uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63) {\n            uVar63 = local_bc;\n            paVar30 = local_b8;\n          }\n        }\n      }\n    }\n  }" else (compound_statement "{\n    local_a8 = (asection *)xmalloc(sVar37 * 4);\n    contents = (bfd_byte *)local_a8;\n    bfd_map_over_sections(local_6c,get_sections,&contents);\n    qsort(local_a8,sVar37,4,compare_section_lma);\n    sVar38 = sVar37 * 8;\n    local_b4 = (void *)xmalloc(sVar38);\n    memset(local_b4,0,sVar38);\n    if ((gap_fill_set == 0) || (sVar37 == 1)) {\n      local_b8 = (asection *)0x0;\n      local_bc = 0;\n    }\n    else {\n      local_b8 = (asection *)0x0;\n      local_bc = 0;\n      local_6c = (bfd_section *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (bfd_section *)((int)local_6c + 1);\n        iVar22 = *local_64;\n        uVar63 = local_bc;\n        paVar30 = local_b8;\n        if ((*(uint *)(iVar22 + 0x14) & 0x102) == 0x102) {\n          uVar48 = *(uint *)(iVar22 + 0x2c);\n          uVar60 = *(uint *)(local_64[1] + 0x28);\n          uVar67 = *(uint *)(local_64[1] + 0x24);\n          uVar55 = uVar48 + *(uint *)(iVar22 + 0x24);\n          uVar64 = *(int *)(iVar22 + 0x30) + *(int *)(iVar22 + 0x28) +\n                   (uint)CARRY4(uVar48,*(uint *)(iVar22 + 0x24));\n          if (uVar64 < uVar60 || uVar64 - uVar60 < (uint)(uVar55 < uVar67)) {\n            paVar30 = (asection *)(uVar67 - uVar55);\n            uVar63 = (uVar60 - uVar64) - (uint)(uVar67 < uVar55);\n            iVar22 = bfd_set_section_size\n                               (obfd,iVar22,(int)&paVar30->name + uVar48,\n                                *(int *)(iVar22 + 0x30) + uVar63 +\n                                (uint)CARRY4(uVar48,(uint)paVar30));\n            if (iVar22 == 0) {\n              pcVar27 = (char *)dcgettext(0,"Can\'t fill gap after section",5,0);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_64,pcVar27);\n              status = 1;\n              break;\n            }\n            *(asection **)((int)local_b4 + (int)local_6c * 8 + -8) = paVar30;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar63;\n            if (uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63) {\n              uVar63 = local_bc;\n              paVar30 = local_b8;\n            }\n          }\n        }\n        local_b8 = paVar30;\n        local_bc = uVar63;\n        local_64 = local_64 + 1;\n      } while ((bfd_section *)(sVar37 - 1) != local_6c);\n    }\n    uVar63 = local_bc;\n    paVar30 = local_b8;\n    if (pad_to_set != 0) {\n      iVar22 = *(int *)((int)local_a8 + (sVar37 - 1) * 4);\n      uVar48 = *(uint *)(iVar22 + 0x24);\n      uVar60 = uVar48 + *(uint *)(iVar22 + 0x2c);\n      uVar67 = *(int *)(iVar22 + 0x28) + *(int *)(iVar22 + 0x30) +\n               (uint)CARRY4(uVar48,*(uint *)(iVar22 + 0x2c));\n      if (uVar67 < pad_to._4_4_ || uVar67 - pad_to._4_4_ < (uint)(uVar60 < (uint)pad_to)) {\n        iVar22 = bfd_set_section_size\n                           (obfd,iVar22,(uint)pad_to - uVar48,\n                            (pad_to._4_4_ - *(int *)(iVar22 + 0x28)) - (uint)((uint)pad_to < uVar48)\n                           );\n        if (iVar22 == 0) {\n          pcVar27 = (char *)dcgettext(0,"can\'t add padding",5,uVar60);\n          bfd_nonfatal_message\n                    ((char *)0x0,obfd,*(asection **)((int)local_a8 + (sVar37 - 1) * 4),pcVar27);\n          status = 1;\n        }\n        else {\n          paVar30 = (asection *)((uint)pad_to - uVar60);\n          uVar63 = (pad_to._4_4_ - uVar67) - (uint)((uint)pad_to < uVar60);\n          *(asection **)((int)local_b4 + (sVar38 - 8)) = paVar30;\n          *(uint *)((int)local_b4 + (sVar38 - 4)) = uVar63;\n          if (uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63) {\n            uVar63 = local_bc;\n            paVar30 = local_b8;\n          }\n        }\n      }\n    }\n  }" { (expression_statement "local_a8 = (asection *)xmalloc(sVar37 * 4);" (assignment_expression "local_a8 = (asection *)xmalloc(sVar37 * 4)" identifier = (cast_expression "(asection *)xmalloc(sVar37 * 4)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar37 * 4)" identifier (argument_list "(sVar37 * 4)" ( (binary_expression "sVar37 * 4" identifier * number_literal) ))))) ;) (expression_statement "contents = (bfd_byte *)local_a8;" (assignment_expression "contents = (bfd_byte *)local_a8" identifier = (cast_expression "(bfd_byte *)local_a8" ( (type_descriptor "bfd_byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bfd_map_over_sections(local_6c,get_sections,&contents);" (call_expression "bfd_map_over_sections(local_6c,get_sections,&contents)" identifier (argument_list "(local_6c,get_sections,&contents)" ( identifier , identifier , (pointer_expression "&contents" & identifier) ))) ;) (expression_statement "qsort(local_a8,sVar37,4,compare_section_lma);" (call_expression "qsort(local_a8,sVar37,4,compare_section_lma)" identifier (argument_list "(local_a8,sVar37,4,compare_section_lma)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "sVar38 = sVar37 * 8;" (assignment_expression "sVar38 = sVar37 * 8" identifier = (binary_expression "sVar37 * 8" identifier * number_literal)) ;) (expression_statement "local_b4 = (void *)xmalloc(sVar38);" (assignment_expression "local_b4 = (void *)xmalloc(sVar38)" identifier = (cast_expression "(void *)xmalloc(sVar38)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar38)" identifier (argument_list "(sVar38)" ( identifier ))))) ;) (expression_statement "memset(local_b4,0,sVar38);" (call_expression "memset(local_b4,0,sVar38)" identifier (argument_list "(local_b4,0,sVar38)" ( identifier , number_literal , identifier ))) ;) (if_statement "if ((gap_fill_set == 0) || (sVar37 == 1)) {\n      local_b8 = (asection *)0x0;\n      local_bc = 0;\n    }\n    else {\n      local_b8 = (asection *)0x0;\n      local_bc = 0;\n      local_6c = (bfd_section *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (bfd_section *)((int)local_6c + 1);\n        iVar22 = *local_64;\n        uVar63 = local_bc;\n        paVar30 = local_b8;\n        if ((*(uint *)(iVar22 + 0x14) & 0x102) == 0x102) {\n          uVar48 = *(uint *)(iVar22 + 0x2c);\n          uVar60 = *(uint *)(local_64[1] + 0x28);\n          uVar67 = *(uint *)(local_64[1] + 0x24);\n          uVar55 = uVar48 + *(uint *)(iVar22 + 0x24);\n          uVar64 = *(int *)(iVar22 + 0x30) + *(int *)(iVar22 + 0x28) +\n                   (uint)CARRY4(uVar48,*(uint *)(iVar22 + 0x24));\n          if (uVar64 < uVar60 || uVar64 - uVar60 < (uint)(uVar55 < uVar67)) {\n            paVar30 = (asection *)(uVar67 - uVar55);\n            uVar63 = (uVar60 - uVar64) - (uint)(uVar67 < uVar55);\n            iVar22 = bfd_set_section_size\n                               (obfd,iVar22,(int)&paVar30->name + uVar48,\n                                *(int *)(iVar22 + 0x30) + uVar63 +\n                                (uint)CARRY4(uVar48,(uint)paVar30));\n            if (iVar22 == 0) {\n              pcVar27 = (char *)dcgettext(0,"Can\'t fill gap after section",5,0);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_64,pcVar27);\n              status = 1;\n              break;\n            }\n            *(asection **)((int)local_b4 + (int)local_6c * 8 + -8) = paVar30;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar63;\n            if (uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63) {\n              uVar63 = local_bc;\n              paVar30 = local_b8;\n            }\n          }\n        }\n        local_b8 = paVar30;\n        local_bc = uVar63;\n        local_64 = local_64 + 1;\n      } while ((bfd_section *)(sVar37 - 1) != local_6c);\n    }" if (parenthesized_expression "((gap_fill_set == 0) || (sVar37 == 1))" ( (binary_expression "(gap_fill_set == 0) || (sVar37 == 1)" (parenthesized_expression "(gap_fill_set == 0)" ( (binary_expression "gap_fill_set == 0" identifier == number_literal) )) || (parenthesized_expression "(sVar37 == 1)" ( (binary_expression "sVar37 == 1" identifier == number_literal) ))) )) (compound_statement "{\n      local_b8 = (asection *)0x0;\n      local_bc = 0;\n    }" { (expression_statement "local_b8 = (asection *)0x0;" (assignment_expression "local_b8 = (asection *)0x0" identifier = (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) }) (else_clause "else {\n      local_b8 = (asection *)0x0;\n      local_bc = 0;\n      local_6c = (bfd_section *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (bfd_section *)((int)local_6c + 1);\n        iVar22 = *local_64;\n        uVar63 = local_bc;\n        paVar30 = local_b8;\n        if ((*(uint *)(iVar22 + 0x14) & 0x102) == 0x102) {\n          uVar48 = *(uint *)(iVar22 + 0x2c);\n          uVar60 = *(uint *)(local_64[1] + 0x28);\n          uVar67 = *(uint *)(local_64[1] + 0x24);\n          uVar55 = uVar48 + *(uint *)(iVar22 + 0x24);\n          uVar64 = *(int *)(iVar22 + 0x30) + *(int *)(iVar22 + 0x28) +\n                   (uint)CARRY4(uVar48,*(uint *)(iVar22 + 0x24));\n          if (uVar64 < uVar60 || uVar64 - uVar60 < (uint)(uVar55 < uVar67)) {\n            paVar30 = (asection *)(uVar67 - uVar55);\n            uVar63 = (uVar60 - uVar64) - (uint)(uVar67 < uVar55);\n            iVar22 = bfd_set_section_size\n                               (obfd,iVar22,(int)&paVar30->name + uVar48,\n                                *(int *)(iVar22 + 0x30) + uVar63 +\n                                (uint)CARRY4(uVar48,(uint)paVar30));\n            if (iVar22 == 0) {\n              pcVar27 = (char *)dcgettext(0,"Can\'t fill gap after section",5,0);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_64,pcVar27);\n              status = 1;\n              break;\n            }\n            *(asection **)((int)local_b4 + (int)local_6c * 8 + -8) = paVar30;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar63;\n            if (uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63) {\n              uVar63 = local_bc;\n              paVar30 = local_b8;\n            }\n          }\n        }\n        local_b8 = paVar30;\n        local_bc = uVar63;\n        local_64 = local_64 + 1;\n      } while ((bfd_section *)(sVar37 - 1) != local_6c);\n    }" else (compound_statement "{\n      local_b8 = (asection *)0x0;\n      local_bc = 0;\n      local_6c = (bfd_section *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (bfd_section *)((int)local_6c + 1);\n        iVar22 = *local_64;\n        uVar63 = local_bc;\n        paVar30 = local_b8;\n        if ((*(uint *)(iVar22 + 0x14) & 0x102) == 0x102) {\n          uVar48 = *(uint *)(iVar22 + 0x2c);\n          uVar60 = *(uint *)(local_64[1] + 0x28);\n          uVar67 = *(uint *)(local_64[1] + 0x24);\n          uVar55 = uVar48 + *(uint *)(iVar22 + 0x24);\n          uVar64 = *(int *)(iVar22 + 0x30) + *(int *)(iVar22 + 0x28) +\n                   (uint)CARRY4(uVar48,*(uint *)(iVar22 + 0x24));\n          if (uVar64 < uVar60 || uVar64 - uVar60 < (uint)(uVar55 < uVar67)) {\n            paVar30 = (asection *)(uVar67 - uVar55);\n            uVar63 = (uVar60 - uVar64) - (uint)(uVar67 < uVar55);\n            iVar22 = bfd_set_section_size\n                               (obfd,iVar22,(int)&paVar30->name + uVar48,\n                                *(int *)(iVar22 + 0x30) + uVar63 +\n                                (uint)CARRY4(uVar48,(uint)paVar30));\n            if (iVar22 == 0) {\n              pcVar27 = (char *)dcgettext(0,"Can\'t fill gap after section",5,0);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_64,pcVar27);\n              status = 1;\n              break;\n            }\n            *(asection **)((int)local_b4 + (int)local_6c * 8 + -8) = paVar30;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar63;\n            if (uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63) {\n              uVar63 = local_bc;\n              paVar30 = local_b8;\n            }\n          }\n        }\n        local_b8 = paVar30;\n        local_bc = uVar63;\n        local_64 = local_64 + 1;\n      } while ((bfd_section *)(sVar37 - 1) != local_6c);\n    }" { (expression_statement "local_b8 = (asection *)0x0;" (assignment_expression "local_b8 = (asection *)0x0" identifier = (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) (expression_statement "local_6c = (bfd_section *)0x0;" (assignment_expression "local_6c = (bfd_section *)0x0" identifier = (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_64 = (int *)local_a8;" (assignment_expression "local_64 = (int *)local_a8" identifier = (cast_expression "(int *)local_a8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n        local_6c = (bfd_section *)((int)local_6c + 1);\n        iVar22 = *local_64;\n        uVar63 = local_bc;\n        paVar30 = local_b8;\n        if ((*(uint *)(iVar22 + 0x14) & 0x102) == 0x102) {\n          uVar48 = *(uint *)(iVar22 + 0x2c);\n          uVar60 = *(uint *)(local_64[1] + 0x28);\n          uVar67 = *(uint *)(local_64[1] + 0x24);\n          uVar55 = uVar48 + *(uint *)(iVar22 + 0x24);\n          uVar64 = *(int *)(iVar22 + 0x30) + *(int *)(iVar22 + 0x28) +\n                   (uint)CARRY4(uVar48,*(uint *)(iVar22 + 0x24));\n          if (uVar64 < uVar60 || uVar64 - uVar60 < (uint)(uVar55 < uVar67)) {\n            paVar30 = (asection *)(uVar67 - uVar55);\n            uVar63 = (uVar60 - uVar64) - (uint)(uVar67 < uVar55);\n            iVar22 = bfd_set_section_size\n                               (obfd,iVar22,(int)&paVar30->name + uVar48,\n                                *(int *)(iVar22 + 0x30) + uVar63 +\n                                (uint)CARRY4(uVar48,(uint)paVar30));\n            if (iVar22 == 0) {\n              pcVar27 = (char *)dcgettext(0,"Can\'t fill gap after section",5,0);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_64,pcVar27);\n              status = 1;\n              break;\n            }\n            *(asection **)((int)local_b4 + (int)local_6c * 8 + -8) = paVar30;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar63;\n            if (uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63) {\n              uVar63 = local_bc;\n              paVar30 = local_b8;\n            }\n          }\n        }\n        local_b8 = paVar30;\n        local_bc = uVar63;\n        local_64 = local_64 + 1;\n      } while ((bfd_section *)(sVar37 - 1) != local_6c);" do (compound_statement "{\n        local_6c = (bfd_section *)((int)local_6c + 1);\n        iVar22 = *local_64;\n        uVar63 = local_bc;\n        paVar30 = local_b8;\n        if ((*(uint *)(iVar22 + 0x14) & 0x102) == 0x102) {\n          uVar48 = *(uint *)(iVar22 + 0x2c);\n          uVar60 = *(uint *)(local_64[1] + 0x28);\n          uVar67 = *(uint *)(local_64[1] + 0x24);\n          uVar55 = uVar48 + *(uint *)(iVar22 + 0x24);\n          uVar64 = *(int *)(iVar22 + 0x30) + *(int *)(iVar22 + 0x28) +\n                   (uint)CARRY4(uVar48,*(uint *)(iVar22 + 0x24));\n          if (uVar64 < uVar60 || uVar64 - uVar60 < (uint)(uVar55 < uVar67)) {\n            paVar30 = (asection *)(uVar67 - uVar55);\n            uVar63 = (uVar60 - uVar64) - (uint)(uVar67 < uVar55);\n            iVar22 = bfd_set_section_size\n                               (obfd,iVar22,(int)&paVar30->name + uVar48,\n                                *(int *)(iVar22 + 0x30) + uVar63 +\n                                (uint)CARRY4(uVar48,(uint)paVar30));\n            if (iVar22 == 0) {\n              pcVar27 = (char *)dcgettext(0,"Can\'t fill gap after section",5,0);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_64,pcVar27);\n              status = 1;\n              break;\n            }\n            *(asection **)((int)local_b4 + (int)local_6c * 8 + -8) = paVar30;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar63;\n            if (uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63) {\n              uVar63 = local_bc;\n              paVar30 = local_b8;\n            }\n          }\n        }\n        local_b8 = paVar30;\n        local_bc = uVar63;\n        local_64 = local_64 + 1;\n      }" { (expression_statement "local_6c = (bfd_section *)((int)local_6c + 1);" (assignment_expression "local_6c = (bfd_section *)((int)local_6c + 1)" identifier = (cast_expression "(bfd_section *)((int)local_6c + 1)" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_6c + 1)" ( (binary_expression "(int)local_6c + 1" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar22 = *local_64;" (assignment_expression "iVar22 = *local_64" identifier = (pointer_expression "*local_64" * identifier)) ;) (expression_statement "uVar63 = local_bc;" (assignment_expression "uVar63 = local_bc" identifier = identifier) ;) (expression_statement "paVar30 = local_b8;" (assignment_expression "paVar30 = local_b8" identifier = identifier) ;) (if_statement "if ((*(uint *)(iVar22 + 0x14) & 0x102) == 0x102) {\n          uVar48 = *(uint *)(iVar22 + 0x2c);\n          uVar60 = *(uint *)(local_64[1] + 0x28);\n          uVar67 = *(uint *)(local_64[1] + 0x24);\n          uVar55 = uVar48 + *(uint *)(iVar22 + 0x24);\n          uVar64 = *(int *)(iVar22 + 0x30) + *(int *)(iVar22 + 0x28) +\n                   (uint)CARRY4(uVar48,*(uint *)(iVar22 + 0x24));\n          if (uVar64 < uVar60 || uVar64 - uVar60 < (uint)(uVar55 < uVar67)) {\n            paVar30 = (asection *)(uVar67 - uVar55);\n            uVar63 = (uVar60 - uVar64) - (uint)(uVar67 < uVar55);\n            iVar22 = bfd_set_section_size\n                               (obfd,iVar22,(int)&paVar30->name + uVar48,\n                                *(int *)(iVar22 + 0x30) + uVar63 +\n                                (uint)CARRY4(uVar48,(uint)paVar30));\n            if (iVar22 == 0) {\n              pcVar27 = (char *)dcgettext(0,"Can\'t fill gap after section",5,0);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_64,pcVar27);\n              status = 1;\n              break;\n            }\n            *(asection **)((int)local_b4 + (int)local_6c * 8 + -8) = paVar30;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar63;\n            if (uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63) {\n              uVar63 = local_bc;\n              paVar30 = local_b8;\n            }\n          }\n        }" if (parenthesized_expression "((*(uint *)(iVar22 + 0x14) & 0x102) == 0x102)" ( (binary_expression "(*(uint *)(iVar22 + 0x14) & 0x102) == 0x102" (parenthesized_expression "(*(uint *)(iVar22 + 0x14) & 0x102)" ( (binary_expression "*(uint *)(iVar22 + 0x14) & 0x102" (pointer_expression "*(uint *)(iVar22 + 0x14)" * (cast_expression "(uint *)(iVar22 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x14)" ( (binary_expression "iVar22 + 0x14" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n          uVar48 = *(uint *)(iVar22 + 0x2c);\n          uVar60 = *(uint *)(local_64[1] + 0x28);\n          uVar67 = *(uint *)(local_64[1] + 0x24);\n          uVar55 = uVar48 + *(uint *)(iVar22 + 0x24);\n          uVar64 = *(int *)(iVar22 + 0x30) + *(int *)(iVar22 + 0x28) +\n                   (uint)CARRY4(uVar48,*(uint *)(iVar22 + 0x24));\n          if (uVar64 < uVar60 || uVar64 - uVar60 < (uint)(uVar55 < uVar67)) {\n            paVar30 = (asection *)(uVar67 - uVar55);\n            uVar63 = (uVar60 - uVar64) - (uint)(uVar67 < uVar55);\n            iVar22 = bfd_set_section_size\n                               (obfd,iVar22,(int)&paVar30->name + uVar48,\n                                *(int *)(iVar22 + 0x30) + uVar63 +\n                                (uint)CARRY4(uVar48,(uint)paVar30));\n            if (iVar22 == 0) {\n              pcVar27 = (char *)dcgettext(0,"Can\'t fill gap after section",5,0);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_64,pcVar27);\n              status = 1;\n              break;\n            }\n            *(asection **)((int)local_b4 + (int)local_6c * 8 + -8) = paVar30;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar63;\n            if (uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63) {\n              uVar63 = local_bc;\n              paVar30 = local_b8;\n            }\n          }\n        }" { (expression_statement "uVar48 = *(uint *)(iVar22 + 0x2c);" (assignment_expression "uVar48 = *(uint *)(iVar22 + 0x2c)" identifier = (pointer_expression "*(uint *)(iVar22 + 0x2c)" * (cast_expression "(uint *)(iVar22 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x2c)" ( (binary_expression "iVar22 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "uVar60 = *(uint *)(local_64[1] + 0x28);" (assignment_expression "uVar60 = *(uint *)(local_64[1] + 0x28)" identifier = (pointer_expression "*(uint *)(local_64[1] + 0x28)" * (cast_expression "(uint *)(local_64[1] + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_64[1] + 0x28)" ( (binary_expression "local_64[1] + 0x28" (subscript_expression "local_64[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "uVar67 = *(uint *)(local_64[1] + 0x24);" (assignment_expression "uVar67 = *(uint *)(local_64[1] + 0x24)" identifier = (pointer_expression "*(uint *)(local_64[1] + 0x24)" * (cast_expression "(uint *)(local_64[1] + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_64[1] + 0x24)" ( (binary_expression "local_64[1] + 0x24" (subscript_expression "local_64[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "uVar55 = uVar48 + *(uint *)(iVar22 + 0x24);" (assignment_expression "uVar55 = uVar48 + *(uint *)(iVar22 + 0x24)" identifier = (binary_expression "uVar48 + *(uint *)(iVar22 + 0x24)" identifier + (pointer_expression "*(uint *)(iVar22 + 0x24)" * (cast_expression "(uint *)(iVar22 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x24)" ( (binary_expression "iVar22 + 0x24" identifier + number_literal) )))))) ;) (expression_statement "uVar64 = *(int *)(iVar22 + 0x30) + *(int *)(iVar22 + 0x28) +\n                   (uint)CARRY4(uVar48,*(uint *)(iVar22 + 0x24));" (assignment_expression "uVar64 = *(int *)(iVar22 + 0x30) + *(int *)(iVar22 + 0x28) +\n                   (uint)CARRY4(uVar48,*(uint *)(iVar22 + 0x24))" identifier = (binary_expression "*(int *)(iVar22 + 0x30) + *(int *)(iVar22 + 0x28) +\n                   (uint)CARRY4(uVar48,*(uint *)(iVar22 + 0x24))" (binary_expression "*(int *)(iVar22 + 0x30) + *(int *)(iVar22 + 0x28)" (pointer_expression "*(int *)(iVar22 + 0x30)" * (cast_expression "(int *)(iVar22 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x30)" ( (binary_expression "iVar22 + 0x30" identifier + number_literal) )))) + (pointer_expression "*(int *)(iVar22 + 0x28)" * (cast_expression "(int *)(iVar22 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x28)" ( (binary_expression "iVar22 + 0x28" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar48,*(uint *)(iVar22 + 0x24))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar48,*(uint *)(iVar22 + 0x24))" identifier (argument_list "(uVar48,*(uint *)(iVar22 + 0x24))" ( identifier , (pointer_expression "*(uint *)(iVar22 + 0x24)" * (cast_expression "(uint *)(iVar22 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x24)" ( (binary_expression "iVar22 + 0x24" identifier + number_literal) )))) )))))) ;) (if_statement "if (uVar64 < uVar60 || uVar64 - uVar60 < (uint)(uVar55 < uVar67)) {\n            paVar30 = (asection *)(uVar67 - uVar55);\n            uVar63 = (uVar60 - uVar64) - (uint)(uVar67 < uVar55);\n            iVar22 = bfd_set_section_size\n                               (obfd,iVar22,(int)&paVar30->name + uVar48,\n                                *(int *)(iVar22 + 0x30) + uVar63 +\n                                (uint)CARRY4(uVar48,(uint)paVar30));\n            if (iVar22 == 0) {\n              pcVar27 = (char *)dcgettext(0,"Can\'t fill gap after section",5,0);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_64,pcVar27);\n              status = 1;\n              break;\n            }\n            *(asection **)((int)local_b4 + (int)local_6c * 8 + -8) = paVar30;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar63;\n            if (uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63) {\n              uVar63 = local_bc;\n              paVar30 = local_b8;\n            }\n          }" if (parenthesized_expression "(uVar64 < uVar60 || uVar64 - uVar60 < (uint)(uVar55 < uVar67))" ( (binary_expression "uVar64 < uVar60 || uVar64 - uVar60 < (uint)(uVar55 < uVar67)" (binary_expression "uVar64 < uVar60" identifier < identifier) || (binary_expression "uVar64 - uVar60 < (uint)(uVar55 < uVar67)" (binary_expression "uVar64 - uVar60" identifier - identifier) < (call_expression "(uint)(uVar55 < uVar67)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar55 < uVar67)" ( (binary_expression "uVar55 < uVar67" identifier < identifier) ))))) )) (compound_statement "{\n            paVar30 = (asection *)(uVar67 - uVar55);\n            uVar63 = (uVar60 - uVar64) - (uint)(uVar67 < uVar55);\n            iVar22 = bfd_set_section_size\n                               (obfd,iVar22,(int)&paVar30->name + uVar48,\n                                *(int *)(iVar22 + 0x30) + uVar63 +\n                                (uint)CARRY4(uVar48,(uint)paVar30));\n            if (iVar22 == 0) {\n              pcVar27 = (char *)dcgettext(0,"Can\'t fill gap after section",5,0);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_64,pcVar27);\n              status = 1;\n              break;\n            }\n            *(asection **)((int)local_b4 + (int)local_6c * 8 + -8) = paVar30;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar63;\n            if (uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63) {\n              uVar63 = local_bc;\n              paVar30 = local_b8;\n            }\n          }" { (expression_statement "paVar30 = (asection *)(uVar67 - uVar55);" (assignment_expression "paVar30 = (asection *)(uVar67 - uVar55)" identifier = (cast_expression "(asection *)(uVar67 - uVar55)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar67 - uVar55)" ( (binary_expression "uVar67 - uVar55" identifier - identifier) )))) ;) (expression_statement "uVar63 = (uVar60 - uVar64) - (uint)(uVar67 < uVar55);" (assignment_expression "uVar63 = (uVar60 - uVar64) - (uint)(uVar67 < uVar55)" identifier = (binary_expression "(uVar60 - uVar64) - (uint)(uVar67 < uVar55)" (parenthesized_expression "(uVar60 - uVar64)" ( (binary_expression "uVar60 - uVar64" identifier - identifier) )) - (call_expression "(uint)(uVar67 < uVar55)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar67 < uVar55)" ( (binary_expression "uVar67 < uVar55" identifier < identifier) ))))) ;) (expression_statement "iVar22 = bfd_set_section_size\n                               (obfd,iVar22,(int)&paVar30->name + uVar48,\n                                *(int *)(iVar22 + 0x30) + uVar63 +\n                                (uint)CARRY4(uVar48,(uint)paVar30));" (assignment_expression "iVar22 = bfd_set_section_size\n                               (obfd,iVar22,(int)&paVar30->name + uVar48,\n                                *(int *)(iVar22 + 0x30) + uVar63 +\n                                (uint)CARRY4(uVar48,(uint)paVar30))" identifier = (call_expression "bfd_set_section_size\n                               (obfd,iVar22,(int)&paVar30->name + uVar48,\n                                *(int *)(iVar22 + 0x30) + uVar63 +\n                                (uint)CARRY4(uVar48,(uint)paVar30))" identifier (argument_list "(obfd,iVar22,(int)&paVar30->name + uVar48,\n                                *(int *)(iVar22 + 0x30) + uVar63 +\n                                (uint)CARRY4(uVar48,(uint)paVar30))" ( identifier , identifier , (binary_expression "(int)&paVar30->name + uVar48" (cast_expression "(int)&paVar30->name" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar30->name" & (field_expression "paVar30->name" identifier -> field_identifier))) + identifier) , (binary_expression "*(int *)(iVar22 + 0x30) + uVar63 +\n                                (uint)CARRY4(uVar48,(uint)paVar30)" (binary_expression "*(int *)(iVar22 + 0x30) + uVar63" (pointer_expression "*(int *)(iVar22 + 0x30)" * (cast_expression "(int *)(iVar22 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x30)" ( (binary_expression "iVar22 + 0x30" identifier + number_literal) )))) + identifier) + (cast_expression "(uint)CARRY4(uVar48,(uint)paVar30)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar48,(uint)paVar30)" identifier (argument_list "(uVar48,(uint)paVar30)" ( identifier , (cast_expression "(uint)paVar30" ( (type_descriptor "uint" type_identifier) ) identifier) ))))) )))) ;) (if_statement "if (iVar22 == 0) {\n              pcVar27 = (char *)dcgettext(0,"Can\'t fill gap after section",5,0);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_64,pcVar27);\n              status = 1;\n              break;\n            }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\n              pcVar27 = (char *)dcgettext(0,"Can\'t fill gap after section",5,0);\n              bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_64,pcVar27);\n              status = 1;\n              break;\n            }" { (expression_statement "pcVar27 = (char *)dcgettext(0,"Can\'t fill gap after section",5,0);" (assignment_expression "pcVar27 = (char *)dcgettext(0,"Can\'t fill gap after section",5,0)" identifier = (cast_expression "(char *)dcgettext(0,"Can\'t fill gap after section",5,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Can\'t fill gap after section",5,0)" identifier (argument_list "(0,"Can\'t fill gap after section",5,0)" ( number_literal , (string_literal ""Can\'t fill gap after section"" " string_content escape_sequence string_content ") , number_literal , number_literal ))))) ;) (expression_statement "bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_64,pcVar27);" (call_expression "bfd_nonfatal_message((char *)0x0,obfd,(asection *)*local_64,pcVar27)" identifier (argument_list "((char *)0x0,obfd,(asection *)*local_64,pcVar27)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(asection *)*local_64" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_64" * identifier)) , identifier ))) ;) (expression_statement "status = 1;" (assignment_expression "status = 1" identifier = number_literal) ;) (break_statement "break;" break ;) })) (expression_statement "*(asection **)((int)local_b4 + (int)local_6c * 8 + -8) = paVar30;" (assignment_expression "*(asection **)((int)local_b4 + (int)local_6c * 8 + -8) = paVar30" (pointer_expression "*(asection **)((int)local_b4 + (int)local_6c * 8 + -8)" * (cast_expression "(asection **)((int)local_b4 + (int)local_6c * 8 + -8)" ( (type_descriptor "asection **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_b4 + (int)local_6c * 8 + -8)" ( (binary_expression "(int)local_b4 + (int)local_6c * 8 + -8" (binary_expression "(int)local_b4 + (int)local_6c * 8" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_6c * 8" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar63;" (assignment_expression "*(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar63" (pointer_expression "*(uint *)((int)local_b4 + (int)local_6c * 8 + -4)" * (cast_expression "(uint *)((int)local_b4 + (int)local_6c * 8 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + (int)local_6c * 8 + -4)" ( (binary_expression "(int)local_b4 + (int)local_6c * 8 + -4" (binary_expression "(int)local_b4 + (int)local_6c * 8" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_6c * 8" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) = identifier) ;) (if_statement "if (uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63) {\n              uVar63 = local_bc;\n              paVar30 = local_b8;\n            }" if (parenthesized_expression "(uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63)" ( (binary_expression "uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63" (binary_expression "uVar63 <= local_bc" identifier <= identifier) && (binary_expression "(uint)(local_b8 < paVar30) <= local_bc - uVar63" (call_expression "(uint)(local_b8 < paVar30)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_b8 < paVar30)" ( (binary_expression "local_b8 < paVar30" identifier < identifier) ))) <= (binary_expression "local_bc - uVar63" identifier - identifier))) )) (compound_statement "{\n              uVar63 = local_bc;\n              paVar30 = local_b8;\n            }" { (expression_statement "uVar63 = local_bc;" (assignment_expression "uVar63 = local_bc" identifier = identifier) ;) (expression_statement "paVar30 = local_b8;" (assignment_expression "paVar30 = local_b8" identifier = identifier) ;) })) })) })) (expression_statement "local_b8 = paVar30;" (assignment_expression "local_b8 = paVar30" identifier = identifier) ;) (expression_statement "local_bc = uVar63;" (assignment_expression "local_bc = uVar63" identifier = identifier) ;) (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((bfd_section *)(sVar37 - 1) != local_6c)" ( (binary_expression "(bfd_section *)(sVar37 - 1) != local_6c" (cast_expression "(bfd_section *)(sVar37 - 1)" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(sVar37 - 1)" ( (binary_expression "sVar37 - 1" identifier - number_literal) ))) != identifier) )) ;) }))) (expression_statement "uVar63 = local_bc;" (assignment_expression "uVar63 = local_bc" identifier = identifier) ;) (expression_statement "paVar30 = local_b8;" (assignment_expression "paVar30 = local_b8" identifier = identifier) ;) (if_statement "if (pad_to_set != 0) {\n      iVar22 = *(int *)((int)local_a8 + (sVar37 - 1) * 4);\n      uVar48 = *(uint *)(iVar22 + 0x24);\n      uVar60 = uVar48 + *(uint *)(iVar22 + 0x2c);\n      uVar67 = *(int *)(iVar22 + 0x28) + *(int *)(iVar22 + 0x30) +\n               (uint)CARRY4(uVar48,*(uint *)(iVar22 + 0x2c));\n      if (uVar67 < pad_to._4_4_ || uVar67 - pad_to._4_4_ < (uint)(uVar60 < (uint)pad_to)) {\n        iVar22 = bfd_set_section_size\n                           (obfd,iVar22,(uint)pad_to - uVar48,\n                            (pad_to._4_4_ - *(int *)(iVar22 + 0x28)) - (uint)((uint)pad_to < uVar48)\n                           );\n        if (iVar22 == 0) {\n          pcVar27 = (char *)dcgettext(0,"can\'t add padding",5,uVar60);\n          bfd_nonfatal_message\n                    ((char *)0x0,obfd,*(asection **)((int)local_a8 + (sVar37 - 1) * 4),pcVar27);\n          status = 1;\n        }\n        else {\n          paVar30 = (asection *)((uint)pad_to - uVar60);\n          uVar63 = (pad_to._4_4_ - uVar67) - (uint)((uint)pad_to < uVar60);\n          *(asection **)((int)local_b4 + (sVar38 - 8)) = paVar30;\n          *(uint *)((int)local_b4 + (sVar38 - 4)) = uVar63;\n          if (uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63) {\n            uVar63 = local_bc;\n            paVar30 = local_b8;\n          }\n        }\n      }\n    }" if (parenthesized_expression "(pad_to_set != 0)" ( (binary_expression "pad_to_set != 0" identifier != number_literal) )) (compound_statement "{\n      iVar22 = *(int *)((int)local_a8 + (sVar37 - 1) * 4);\n      uVar48 = *(uint *)(iVar22 + 0x24);\n      uVar60 = uVar48 + *(uint *)(iVar22 + 0x2c);\n      uVar67 = *(int *)(iVar22 + 0x28) + *(int *)(iVar22 + 0x30) +\n               (uint)CARRY4(uVar48,*(uint *)(iVar22 + 0x2c));\n      if (uVar67 < pad_to._4_4_ || uVar67 - pad_to._4_4_ < (uint)(uVar60 < (uint)pad_to)) {\n        iVar22 = bfd_set_section_size\n                           (obfd,iVar22,(uint)pad_to - uVar48,\n                            (pad_to._4_4_ - *(int *)(iVar22 + 0x28)) - (uint)((uint)pad_to < uVar48)\n                           );\n        if (iVar22 == 0) {\n          pcVar27 = (char *)dcgettext(0,"can\'t add padding",5,uVar60);\n          bfd_nonfatal_message\n                    ((char *)0x0,obfd,*(asection **)((int)local_a8 + (sVar37 - 1) * 4),pcVar27);\n          status = 1;\n        }\n        else {\n          paVar30 = (asection *)((uint)pad_to - uVar60);\n          uVar63 = (pad_to._4_4_ - uVar67) - (uint)((uint)pad_to < uVar60);\n          *(asection **)((int)local_b4 + (sVar38 - 8)) = paVar30;\n          *(uint *)((int)local_b4 + (sVar38 - 4)) = uVar63;\n          if (uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63) {\n            uVar63 = local_bc;\n            paVar30 = local_b8;\n          }\n        }\n      }\n    }" { (expression_statement "iVar22 = *(int *)((int)local_a8 + (sVar37 - 1) * 4);" (assignment_expression "iVar22 = *(int *)((int)local_a8 + (sVar37 - 1) * 4)" identifier = (pointer_expression "*(int *)((int)local_a8 + (sVar37 - 1) * 4)" * (cast_expression "(int *)((int)local_a8 + (sVar37 - 1) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + (sVar37 - 1) * 4)" ( (binary_expression "(int)local_a8 + (sVar37 - 1) * 4" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(sVar37 - 1) * 4" (parenthesized_expression "(sVar37 - 1)" ( (binary_expression "sVar37 - 1" identifier - number_literal) )) * number_literal)) ))))) ;) (expression_statement "uVar48 = *(uint *)(iVar22 + 0x24);" (assignment_expression "uVar48 = *(uint *)(iVar22 + 0x24)" identifier = (pointer_expression "*(uint *)(iVar22 + 0x24)" * (cast_expression "(uint *)(iVar22 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x24)" ( (binary_expression "iVar22 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "uVar60 = uVar48 + *(uint *)(iVar22 + 0x2c);" (assignment_expression "uVar60 = uVar48 + *(uint *)(iVar22 + 0x2c)" identifier = (binary_expression "uVar48 + *(uint *)(iVar22 + 0x2c)" identifier + (pointer_expression "*(uint *)(iVar22 + 0x2c)" * (cast_expression "(uint *)(iVar22 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x2c)" ( (binary_expression "iVar22 + 0x2c" identifier + number_literal) )))))) ;) (expression_statement "uVar67 = *(int *)(iVar22 + 0x28) + *(int *)(iVar22 + 0x30) +\n               (uint)CARRY4(uVar48,*(uint *)(iVar22 + 0x2c));" (assignment_expression "uVar67 = *(int *)(iVar22 + 0x28) + *(int *)(iVar22 + 0x30) +\n               (uint)CARRY4(uVar48,*(uint *)(iVar22 + 0x2c))" identifier = (binary_expression "*(int *)(iVar22 + 0x28) + *(int *)(iVar22 + 0x30) +\n               (uint)CARRY4(uVar48,*(uint *)(iVar22 + 0x2c))" (binary_expression "*(int *)(iVar22 + 0x28) + *(int *)(iVar22 + 0x30)" (pointer_expression "*(int *)(iVar22 + 0x28)" * (cast_expression "(int *)(iVar22 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x28)" ( (binary_expression "iVar22 + 0x28" identifier + number_literal) )))) + (pointer_expression "*(int *)(iVar22 + 0x30)" * (cast_expression "(int *)(iVar22 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x30)" ( (binary_expression "iVar22 + 0x30" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar48,*(uint *)(iVar22 + 0x2c))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar48,*(uint *)(iVar22 + 0x2c))" identifier (argument_list "(uVar48,*(uint *)(iVar22 + 0x2c))" ( identifier , (pointer_expression "*(uint *)(iVar22 + 0x2c)" * (cast_expression "(uint *)(iVar22 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x2c)" ( (binary_expression "iVar22 + 0x2c" identifier + number_literal) )))) )))))) ;) (if_statement "if (uVar67 < pad_to._4_4_ || uVar67 - pad_to._4_4_ < (uint)(uVar60 < (uint)pad_to)) {\n        iVar22 = bfd_set_section_size\n                           (obfd,iVar22,(uint)pad_to - uVar48,\n                            (pad_to._4_4_ - *(int *)(iVar22 + 0x28)) - (uint)((uint)pad_to < uVar48)\n                           );\n        if (iVar22 == 0) {\n          pcVar27 = (char *)dcgettext(0,"can\'t add padding",5,uVar60);\n          bfd_nonfatal_message\n                    ((char *)0x0,obfd,*(asection **)((int)local_a8 + (sVar37 - 1) * 4),pcVar27);\n          status = 1;\n        }\n        else {\n          paVar30 = (asection *)((uint)pad_to - uVar60);\n          uVar63 = (pad_to._4_4_ - uVar67) - (uint)((uint)pad_to < uVar60);\n          *(asection **)((int)local_b4 + (sVar38 - 8)) = paVar30;\n          *(uint *)((int)local_b4 + (sVar38 - 4)) = uVar63;\n          if (uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63) {\n            uVar63 = local_bc;\n            paVar30 = local_b8;\n          }\n        }\n      }" if (parenthesized_expression "(uVar67 < pad_to._4_4_ || uVar67 - pad_to._4_4_ < (uint)(uVar60 < (uint)pad_to))" ( (binary_expression "uVar67 < pad_to._4_4_ || uVar67 - pad_to._4_4_ < (uint)(uVar60 < (uint)pad_to)" (binary_expression "uVar67 < pad_to._4_4_" identifier < (field_expression "pad_to._4_4_" identifier . field_identifier)) || (binary_expression "uVar67 - pad_to._4_4_ < (uint)(uVar60 < (uint)pad_to)" (binary_expression "uVar67 - pad_to._4_4_" identifier - (field_expression "pad_to._4_4_" identifier . field_identifier)) < (call_expression "(uint)(uVar60 < (uint)pad_to)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar60 < (uint)pad_to)" ( (binary_expression "uVar60 < (uint)pad_to" identifier < (cast_expression "(uint)pad_to" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) )) (compound_statement "{\n        iVar22 = bfd_set_section_size\n                           (obfd,iVar22,(uint)pad_to - uVar48,\n                            (pad_to._4_4_ - *(int *)(iVar22 + 0x28)) - (uint)((uint)pad_to < uVar48)\n                           );\n        if (iVar22 == 0) {\n          pcVar27 = (char *)dcgettext(0,"can\'t add padding",5,uVar60);\n          bfd_nonfatal_message\n                    ((char *)0x0,obfd,*(asection **)((int)local_a8 + (sVar37 - 1) * 4),pcVar27);\n          status = 1;\n        }\n        else {\n          paVar30 = (asection *)((uint)pad_to - uVar60);\n          uVar63 = (pad_to._4_4_ - uVar67) - (uint)((uint)pad_to < uVar60);\n          *(asection **)((int)local_b4 + (sVar38 - 8)) = paVar30;\n          *(uint *)((int)local_b4 + (sVar38 - 4)) = uVar63;\n          if (uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63) {\n            uVar63 = local_bc;\n            paVar30 = local_b8;\n          }\n        }\n      }" { (expression_statement "iVar22 = bfd_set_section_size\n                           (obfd,iVar22,(uint)pad_to - uVar48,\n                            (pad_to._4_4_ - *(int *)(iVar22 + 0x28)) - (uint)((uint)pad_to < uVar48)\n                           );" (assignment_expression "iVar22 = bfd_set_section_size\n                           (obfd,iVar22,(uint)pad_to - uVar48,\n                            (pad_to._4_4_ - *(int *)(iVar22 + 0x28)) - (uint)((uint)pad_to < uVar48)\n                           )" identifier = (call_expression "bfd_set_section_size\n                           (obfd,iVar22,(uint)pad_to - uVar48,\n                            (pad_to._4_4_ - *(int *)(iVar22 + 0x28)) - (uint)((uint)pad_to < uVar48)\n                           )" identifier (argument_list "(obfd,iVar22,(uint)pad_to - uVar48,\n                            (pad_to._4_4_ - *(int *)(iVar22 + 0x28)) - (uint)((uint)pad_to < uVar48)\n                           )" ( identifier , identifier , (binary_expression "(uint)pad_to - uVar48" (cast_expression "(uint)pad_to" ( (type_descriptor "uint" type_identifier) ) identifier) - identifier) , (binary_expression "(pad_to._4_4_ - *(int *)(iVar22 + 0x28)) - (uint)((uint)pad_to < uVar48)" (parenthesized_expression "(pad_to._4_4_ - *(int *)(iVar22 + 0x28))" ( (binary_expression "pad_to._4_4_ - *(int *)(iVar22 + 0x28)" (field_expression "pad_to._4_4_" identifier . field_identifier) - (pointer_expression "*(int *)(iVar22 + 0x28)" * (cast_expression "(int *)(iVar22 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x28)" ( (binary_expression "iVar22 + 0x28" identifier + number_literal) ))))) )) - (call_expression "(uint)((uint)pad_to < uVar48)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)pad_to < uVar48)" ( (binary_expression "(uint)pad_to < uVar48" (cast_expression "(uint)pad_to" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) )))) )))) ;) (if_statement "if (iVar22 == 0) {\n          pcVar27 = (char *)dcgettext(0,"can\'t add padding",5,uVar60);\n          bfd_nonfatal_message\n                    ((char *)0x0,obfd,*(asection **)((int)local_a8 + (sVar37 - 1) * 4),pcVar27);\n          status = 1;\n        }\n        else {\n          paVar30 = (asection *)((uint)pad_to - uVar60);\n          uVar63 = (pad_to._4_4_ - uVar67) - (uint)((uint)pad_to < uVar60);\n          *(asection **)((int)local_b4 + (sVar38 - 8)) = paVar30;\n          *(uint *)((int)local_b4 + (sVar38 - 4)) = uVar63;\n          if (uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63) {\n            uVar63 = local_bc;\n            paVar30 = local_b8;\n          }\n        }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar27 = (char *)dcgettext(0,"can\'t add padding",5,uVar60);\n          bfd_nonfatal_message\n                    ((char *)0x0,obfd,*(asection **)((int)local_a8 + (sVar37 - 1) * 4),pcVar27);\n          status = 1;\n        }" { (expression_statement "pcVar27 = (char *)dcgettext(0,"can\'t add padding",5,uVar60);" (assignment_expression "pcVar27 = (char *)dcgettext(0,"can\'t add padding",5,uVar60)" identifier = (cast_expression "(char *)dcgettext(0,"can\'t add padding",5,uVar60)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"can\'t add padding",5,uVar60)" identifier (argument_list "(0,"can\'t add padding",5,uVar60)" ( number_literal , (string_literal ""can\'t add padding"" " string_content escape_sequence string_content ") , number_literal , identifier ))))) ;) (expression_statement "bfd_nonfatal_message\n                    ((char *)0x0,obfd,*(asection **)((int)local_a8 + (sVar37 - 1) * 4),pcVar27);" (call_expression "bfd_nonfatal_message\n                    ((char *)0x0,obfd,*(asection **)((int)local_a8 + (sVar37 - 1) * 4),pcVar27)" identifier (argument_list "((char *)0x0,obfd,*(asection **)((int)local_a8 + (sVar37 - 1) * 4),pcVar27)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (pointer_expression "*(asection **)((int)local_a8 + (sVar37 - 1) * 4)" * (cast_expression "(asection **)((int)local_a8 + (sVar37 - 1) * 4)" ( (type_descriptor "asection **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_a8 + (sVar37 - 1) * 4)" ( (binary_expression "(int)local_a8 + (sVar37 - 1) * 4" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(sVar37 - 1) * 4" (parenthesized_expression "(sVar37 - 1)" ( (binary_expression "sVar37 - 1" identifier - number_literal) )) * number_literal)) )))) , identifier ))) ;) (expression_statement "status = 1;" (assignment_expression "status = 1" identifier = number_literal) ;) }) (else_clause "else {\n          paVar30 = (asection *)((uint)pad_to - uVar60);\n          uVar63 = (pad_to._4_4_ - uVar67) - (uint)((uint)pad_to < uVar60);\n          *(asection **)((int)local_b4 + (sVar38 - 8)) = paVar30;\n          *(uint *)((int)local_b4 + (sVar38 - 4)) = uVar63;\n          if (uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63) {\n            uVar63 = local_bc;\n            paVar30 = local_b8;\n          }\n        }" else (compound_statement "{\n          paVar30 = (asection *)((uint)pad_to - uVar60);\n          uVar63 = (pad_to._4_4_ - uVar67) - (uint)((uint)pad_to < uVar60);\n          *(asection **)((int)local_b4 + (sVar38 - 8)) = paVar30;\n          *(uint *)((int)local_b4 + (sVar38 - 4)) = uVar63;\n          if (uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63) {\n            uVar63 = local_bc;\n            paVar30 = local_b8;\n          }\n        }" { (expression_statement "paVar30 = (asection *)((uint)pad_to - uVar60);" (assignment_expression "paVar30 = (asection *)((uint)pad_to - uVar60)" identifier = (cast_expression "(asection *)((uint)pad_to - uVar60)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pad_to - uVar60)" ( (binary_expression "(uint)pad_to - uVar60" (cast_expression "(uint)pad_to" ( (type_descriptor "uint" type_identifier) ) identifier) - identifier) )))) ;) (expression_statement "uVar63 = (pad_to._4_4_ - uVar67) - (uint)((uint)pad_to < uVar60);" (assignment_expression "uVar63 = (pad_to._4_4_ - uVar67) - (uint)((uint)pad_to < uVar60)" identifier = (binary_expression "(pad_to._4_4_ - uVar67) - (uint)((uint)pad_to < uVar60)" (parenthesized_expression "(pad_to._4_4_ - uVar67)" ( (binary_expression "pad_to._4_4_ - uVar67" (field_expression "pad_to._4_4_" identifier . field_identifier) - identifier) )) - (call_expression "(uint)((uint)pad_to < uVar60)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)pad_to < uVar60)" ( (binary_expression "(uint)pad_to < uVar60" (cast_expression "(uint)pad_to" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) ))))) ;) (expression_statement "*(asection **)((int)local_b4 + (sVar38 - 8)) = paVar30;" (assignment_expression "*(asection **)((int)local_b4 + (sVar38 - 8)) = paVar30" (pointer_expression "*(asection **)((int)local_b4 + (sVar38 - 8))" * (cast_expression "(asection **)((int)local_b4 + (sVar38 - 8))" ( (type_descriptor "asection **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_b4 + (sVar38 - 8))" ( (binary_expression "(int)local_b4 + (sVar38 - 8)" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(sVar38 - 8)" ( (binary_expression "sVar38 - 8" identifier - number_literal) ))) )))) = identifier) ;) (expression_statement "*(uint *)((int)local_b4 + (sVar38 - 4)) = uVar63;" (assignment_expression "*(uint *)((int)local_b4 + (sVar38 - 4)) = uVar63" (pointer_expression "*(uint *)((int)local_b4 + (sVar38 - 4))" * (cast_expression "(uint *)((int)local_b4 + (sVar38 - 4))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + (sVar38 - 4))" ( (binary_expression "(int)local_b4 + (sVar38 - 4)" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(sVar38 - 4)" ( (binary_expression "sVar38 - 4" identifier - number_literal) ))) )))) = identifier) ;) (if_statement "if (uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63) {\n            uVar63 = local_bc;\n            paVar30 = local_b8;\n          }" if (parenthesized_expression "(uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63)" ( (binary_expression "uVar63 <= local_bc && (uint)(local_b8 < paVar30) <= local_bc - uVar63" (binary_expression "uVar63 <= local_bc" identifier <= identifier) && (binary_expression "(uint)(local_b8 < paVar30) <= local_bc - uVar63" (call_expression "(uint)(local_b8 < paVar30)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_b8 < paVar30)" ( (binary_expression "local_b8 < paVar30" identifier < identifier) ))) <= (binary_expression "local_bc - uVar63" identifier - identifier))) )) (compound_statement "{\n            uVar63 = local_bc;\n            paVar30 = local_b8;\n          }" { (expression_statement "uVar63 = local_bc;" (assignment_expression "uVar63 = local_bc" identifier = identifier) ;) (expression_statement "paVar30 = local_b8;" (assignment_expression "paVar30 = local_b8" identifier = identifier) ;) })) }))) })) })) }))) (expression_statement "local_b8 = paVar30;" (assignment_expression "local_b8 = paVar30" identifier = identifier) ;) (expression_statement "local_bc = uVar63;" (assignment_expression "local_bc = uVar63" identifier = identifier) ;) (expression_statement "local_c0 = (void *)0x0;" (assignment_expression "local_c0 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (convert_debugging != 0) {\n    local_c0 = read_debugging_info(ibfd,isympp,local_8c,0);\n  }" if (parenthesized_expression "(convert_debugging != 0)" ( (binary_expression "convert_debugging != 0" identifier != number_literal) )) (compound_statement "{\n    local_c0 = read_debugging_info(ibfd,isympp,local_8c,0);\n  }" { (expression_statement "local_c0 = read_debugging_info(ibfd,isympp,local_8c,0);" (assignment_expression "local_c0 = read_debugging_info(ibfd,isympp,local_8c,0)" identifier = (call_expression "read_debugging_info(ibfd,isympp,local_8c,0)" identifier (argument_list "(ibfd,isympp,local_8c,0)" ( identifier , identifier , identifier , number_literal )))) ;) })) (if_statement "if (strip_symbols - STRIP_DEBUG < 6) {\nLAB_0001962a:\n    if (strip_symbols != STRIP_ALL) goto LAB_0001962f;\n  }\n  else {\n    if (localize_hidden == 0 && discard_locals == LOCALS_UNDEF) {\n      iVar22 = htab_elements(strip_specific_htab);\n      if ((((((iVar22 == 0) && (iVar22 = htab_elements(keep_specific_htab), iVar22 == 0)) &&\n            (iVar22 = htab_elements(localize_specific_htab), iVar22 == 0)) &&\n           ((iVar22 = htab_elements(globalize_specific_htab), iVar22 == 0 &&\n            (iVar22 = htab_elements(keepglobal_specific_htab), iVar22 == 0)))) &&\n          (iVar22 = htab_elements(weaken_specific_htab), iVar22 == 0)) &&\n         (((iVar22 = htab_elements(redefine_specific_htab), 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) && iVar22 == 0)))) goto LAB_00019e4d;\n      goto LAB_0001962a;\n    }\nLAB_0001962f:\n    bfd_set_error(0);\n    bfd_map_over_sections(ibfd,mark_symbols_used_in_relocations,isympp);\n    iVar22 = bfd_get_error();\n    if (iVar22 != 0) {\n      status = 1;\n      return 0;\n    }\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_0001962a:\n    if (strip_symbols != STRIP_ALL) goto LAB_0001962f;\n  }" { (labeled_statement "LAB_0001962a:\n    if (strip_symbols != STRIP_ALL) goto LAB_0001962f;" statement_identifier : (if_statement "if (strip_symbols != STRIP_ALL) goto LAB_0001962f;" if (parenthesized_expression "(strip_symbols != STRIP_ALL)" ( (binary_expression "strip_symbols != STRIP_ALL" identifier != identifier) )) (goto_statement "goto LAB_0001962f;" goto statement_identifier ;))) }) (else_clause "else {\n    if (localize_hidden == 0 && discard_locals == LOCALS_UNDEF) {\n      iVar22 = htab_elements(strip_specific_htab);\n      if ((((((iVar22 == 0) && (iVar22 = htab_elements(keep_specific_htab), iVar22 == 0)) &&\n            (iVar22 = htab_elements(localize_specific_htab), iVar22 == 0)) &&\n           ((iVar22 = htab_elements(globalize_specific_htab), iVar22 == 0 &&\n            (iVar22 = htab_elements(keepglobal_specific_htab), iVar22 == 0)))) &&\n          (iVar22 = htab_elements(weaken_specific_htab), iVar22 == 0)) &&\n         (((iVar22 = htab_elements(redefine_specific_htab), 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) && iVar22 == 0)))) goto LAB_00019e4d;\n      goto LAB_0001962a;\n    }\nLAB_0001962f:\n    bfd_set_error(0);\n    bfd_map_over_sections(ibfd,mark_symbols_used_in_relocations,isympp);\n    iVar22 = bfd_get_error();\n    if (iVar22 != 0) {\n      status = 1;\n      return 0;\n    }\n  }" else (compound_statement "{\n    if (localize_hidden == 0 && discard_locals == LOCALS_UNDEF) {\n      iVar22 = htab_elements(strip_specific_htab);\n      if ((((((iVar22 == 0) && (iVar22 = htab_elements(keep_specific_htab), iVar22 == 0)) &&\n            (iVar22 = htab_elements(localize_specific_htab), iVar22 == 0)) &&\n           ((iVar22 = htab_elements(globalize_specific_htab), iVar22 == 0 &&\n            (iVar22 = htab_elements(keepglobal_specific_htab), iVar22 == 0)))) &&\n          (iVar22 = htab_elements(weaken_specific_htab), iVar22 == 0)) &&\n         (((iVar22 = htab_elements(redefine_specific_htab), 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) && iVar22 == 0)))) goto LAB_00019e4d;\n      goto LAB_0001962a;\n    }\nLAB_0001962f:\n    bfd_set_error(0);\n    bfd_map_over_sections(ibfd,mark_symbols_used_in_relocations,isympp);\n    iVar22 = bfd_get_error();\n    if (iVar22 != 0) {\n      status = 1;\n      return 0;\n    }\n  }" { (if_statement "if (localize_hidden == 0 && discard_locals == LOCALS_UNDEF) {\n      iVar22 = htab_elements(strip_specific_htab);\n      if ((((((iVar22 == 0) && (iVar22 = htab_elements(keep_specific_htab), iVar22 == 0)) &&\n            (iVar22 = htab_elements(localize_specific_htab), iVar22 == 0)) &&\n           ((iVar22 = htab_elements(globalize_specific_htab), iVar22 == 0 &&\n            (iVar22 = htab_elements(keepglobal_specific_htab), iVar22 == 0)))) &&\n          (iVar22 = htab_elements(weaken_specific_htab), iVar22 == 0)) &&\n         (((iVar22 = htab_elements(redefine_specific_htab), 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) && iVar22 == 0)))) goto LAB_00019e4d;\n      goto LAB_0001962a;\n    }" 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)) )) (compound_statement "{\n      iVar22 = htab_elements(strip_specific_htab);\n      if ((((((iVar22 == 0) && (iVar22 = htab_elements(keep_specific_htab), iVar22 == 0)) &&\n            (iVar22 = htab_elements(localize_specific_htab), iVar22 == 0)) &&\n           ((iVar22 = htab_elements(globalize_specific_htab), iVar22 == 0 &&\n            (iVar22 = htab_elements(keepglobal_specific_htab), iVar22 == 0)))) &&\n          (iVar22 = htab_elements(weaken_specific_htab), iVar22 == 0)) &&\n         (((iVar22 = htab_elements(redefine_specific_htab), 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) && iVar22 == 0)))) goto LAB_00019e4d;\n      goto LAB_0001962a;\n    }" { (expression_statement "iVar22 = htab_elements(strip_specific_htab);" (assignment_expression "iVar22 = htab_elements(strip_specific_htab)" identifier = (call_expression "htab_elements(strip_specific_htab)" identifier (argument_list "(strip_specific_htab)" ( identifier )))) ;) (if_statement "if ((((((iVar22 == 0) && (iVar22 = htab_elements(keep_specific_htab), iVar22 == 0)) &&\n            (iVar22 = htab_elements(localize_specific_htab), iVar22 == 0)) &&\n           ((iVar22 = htab_elements(globalize_specific_htab), iVar22 == 0 &&\n            (iVar22 = htab_elements(keepglobal_specific_htab), iVar22 == 0)))) &&\n          (iVar22 = htab_elements(weaken_specific_htab), iVar22 == 0)) &&\n         (((iVar22 = htab_elements(redefine_specific_htab), 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) && iVar22 == 0)))) goto LAB_00019e4d;" if (parenthesized_expression "((((((iVar22 == 0) && (iVar22 = htab_elements(keep_specific_htab), iVar22 == 0)) &&\n            (iVar22 = htab_elements(localize_specific_htab), iVar22 == 0)) &&\n           ((iVar22 = htab_elements(globalize_specific_htab), iVar22 == 0 &&\n            (iVar22 = htab_elements(keepglobal_specific_htab), iVar22 == 0)))) &&\n          (iVar22 = htab_elements(weaken_specific_htab), iVar22 == 0)) &&\n         (((iVar22 = htab_elements(redefine_specific_htab), 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) && iVar22 == 0))))" ( (binary_expression "(((((iVar22 == 0) && (iVar22 = htab_elements(keep_specific_htab), iVar22 == 0)) &&\n            (iVar22 = htab_elements(localize_specific_htab), iVar22 == 0)) &&\n           ((iVar22 = htab_elements(globalize_specific_htab), iVar22 == 0 &&\n            (iVar22 = htab_elements(keepglobal_specific_htab), iVar22 == 0)))) &&\n          (iVar22 = htab_elements(weaken_specific_htab), iVar22 == 0)) &&\n         (((iVar22 = htab_elements(redefine_specific_htab), 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) && iVar22 == 0)))" (parenthesized_expression "(((((iVar22 == 0) && (iVar22 = htab_elements(keep_specific_htab), iVar22 == 0)) &&\n            (iVar22 = htab_elements(localize_specific_htab), iVar22 == 0)) &&\n           ((iVar22 = htab_elements(globalize_specific_htab), iVar22 == 0 &&\n            (iVar22 = htab_elements(keepglobal_specific_htab), iVar22 == 0)))) &&\n          (iVar22 = htab_elements(weaken_specific_htab), iVar22 == 0))" ( (binary_expression "((((iVar22 == 0) && (iVar22 = htab_elements(keep_specific_htab), iVar22 == 0)) &&\n            (iVar22 = htab_elements(localize_specific_htab), iVar22 == 0)) &&\n           ((iVar22 = htab_elements(globalize_specific_htab), iVar22 == 0 &&\n            (iVar22 = htab_elements(keepglobal_specific_htab), iVar22 == 0)))) &&\n          (iVar22 = htab_elements(weaken_specific_htab), iVar22 == 0)" (parenthesized_expression "((((iVar22 == 0) && (iVar22 = htab_elements(keep_specific_htab), iVar22 == 0)) &&\n            (iVar22 = htab_elements(localize_specific_htab), iVar22 == 0)) &&\n           ((iVar22 = htab_elements(globalize_specific_htab), iVar22 == 0 &&\n            (iVar22 = htab_elements(keepglobal_specific_htab), iVar22 == 0))))" ( (binary_expression "(((iVar22 == 0) && (iVar22 = htab_elements(keep_specific_htab), iVar22 == 0)) &&\n            (iVar22 = htab_elements(localize_specific_htab), iVar22 == 0)) &&\n           ((iVar22 = htab_elements(globalize_specific_htab), iVar22 == 0 &&\n            (iVar22 = htab_elements(keepglobal_specific_htab), iVar22 == 0)))" (parenthesized_expression "(((iVar22 == 0) && (iVar22 = htab_elements(keep_specific_htab), iVar22 == 0)) &&\n            (iVar22 = htab_elements(localize_specific_htab), iVar22 == 0))" ( (binary_expression "((iVar22 == 0) && (iVar22 = htab_elements(keep_specific_htab), iVar22 == 0)) &&\n            (iVar22 = htab_elements(localize_specific_htab), iVar22 == 0)" (parenthesized_expression "((iVar22 == 0) && (iVar22 = htab_elements(keep_specific_htab), iVar22 == 0))" ( (binary_expression "(iVar22 == 0) && (iVar22 = htab_elements(keep_specific_htab), iVar22 == 0)" (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar22 = htab_elements(keep_specific_htab), iVar22 == 0)" ( (comma_expression "iVar22 = htab_elements(keep_specific_htab), iVar22 == 0" (assignment_expression "iVar22 = htab_elements(keep_specific_htab)" identifier = (call_expression "htab_elements(keep_specific_htab)" identifier (argument_list "(keep_specific_htab)" ( identifier )))) , (binary_expression "iVar22 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(iVar22 = htab_elements(localize_specific_htab), iVar22 == 0)" ( (comma_expression "iVar22 = htab_elements(localize_specific_htab), iVar22 == 0" (assignment_expression "iVar22 = htab_elements(localize_specific_htab)" identifier = (call_expression "htab_elements(localize_specific_htab)" identifier (argument_list "(localize_specific_htab)" ( identifier )))) , (binary_expression "iVar22 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar22 = htab_elements(globalize_specific_htab), iVar22 == 0 &&\n            (iVar22 = htab_elements(keepglobal_specific_htab), iVar22 == 0)))" ( (parenthesized_expression "(iVar22 = htab_elements(globalize_specific_htab), iVar22 == 0 &&\n            (iVar22 = htab_elements(keepglobal_specific_htab), iVar22 == 0))" ( (comma_expression "iVar22 = htab_elements(globalize_specific_htab), iVar22 == 0 &&\n            (iVar22 = htab_elements(keepglobal_specific_htab), iVar22 == 0)" (assignment_expression "iVar22 = htab_elements(globalize_specific_htab)" identifier = (call_expression "htab_elements(globalize_specific_htab)" identifier (argument_list "(globalize_specific_htab)" ( identifier )))) , (binary_expression "iVar22 == 0 &&\n            (iVar22 = htab_elements(keepglobal_specific_htab), iVar22 == 0)" (binary_expression "iVar22 == 0" identifier == number_literal) && (parenthesized_expression "(iVar22 = htab_elements(keepglobal_specific_htab), iVar22 == 0)" ( (comma_expression "iVar22 = htab_elements(keepglobal_specific_htab), iVar22 == 0" (assignment_expression "iVar22 = htab_elements(keepglobal_specific_htab)" identifier = (call_expression "htab_elements(keepglobal_specific_htab)" identifier (argument_list "(keepglobal_specific_htab)" ( identifier )))) , (binary_expression "iVar22 == 0" identifier == number_literal)) )))) )) ))) )) && (parenthesized_expression "(iVar22 = htab_elements(weaken_specific_htab), iVar22 == 0)" ( (comma_expression "iVar22 = htab_elements(weaken_specific_htab), iVar22 == 0" (assignment_expression "iVar22 = htab_elements(weaken_specific_htab)" identifier = (call_expression "htab_elements(weaken_specific_htab)" identifier (argument_list "(weaken_specific_htab)" ( identifier )))) , (binary_expression "iVar22 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(((iVar22 = htab_elements(redefine_specific_htab), 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) && iVar22 == 0)))" ( (parenthesized_expression "((iVar22 = htab_elements(redefine_specific_htab), 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) && iVar22 == 0))" ( (binary_expression "(iVar22 = htab_elements(redefine_specific_htab), 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) && iVar22 == 0)" (parenthesized_expression "(iVar22 = htab_elements(redefine_specific_htab), prefix_symbols_string == (char *)0x0 &&\n           (section_rename_list == (section_rename *)0x0))" ( (comma_expression "iVar22 = htab_elements(redefine_specific_htab), prefix_symbols_string == (char *)0x0 &&\n           (section_rename_list == (section_rename *)0x0)" (assignment_expression "iVar22 = htab_elements(redefine_specific_htab)" identifier = (call_expression "htab_elements(redefine_specific_htab)" identifier (argument_list "(redefine_specific_htab)" ( identifier )))) , (binary_expression "prefix_symbols_string == (char *)0x0 &&\n           (section_rename_list == (section_rename *)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)" ( (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) && iVar22 == 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) && iVar22 == 0" (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)) )) && (binary_expression "iVar22 == 0" identifier == number_literal)) ))) )) ))) )) (goto_statement "goto LAB_00019e4d;" goto statement_identifier ;)) (goto_statement "goto LAB_0001962a;" goto statement_identifier ;) })) (labeled_statement "LAB_0001962f:\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(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 "iVar22 = bfd_get_error();" (assignment_expression "iVar22 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar22 != 0) {\n      status = 1;\n      return 0;\n    }" if (parenthesized_expression "(iVar22 != 0)" ( (binary_expression "iVar22 != 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 "ppaVar34 = (asymbol **)xmalloc((add_symbols + local_8c) * 4 + 4);" (assignment_expression "ppaVar34 = (asymbol **)xmalloc((add_symbols + local_8c) * 4 + 4)" identifier = (cast_expression "(asymbol **)xmalloc((add_symbols + local_8c) * 4 + 4)" ( (type_descriptor "asymbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "xmalloc((add_symbols + local_8c) * 4 + 4)" identifier (argument_list "((add_symbols + local_8c) * 4 + 4)" ( (binary_expression "(add_symbols + local_8c) * 4 + 4" (binary_expression "(add_symbols + local_8c) * 4" (parenthesized_expression "(add_symbols + local_8c)" ( (binary_expression "add_symbols + local_8c" identifier + identifier) )) * number_literal) + number_literal) ))))) ;) (expression_statement "local_84 = isympp;" (assignment_expression "local_84 = isympp" identifier = identifier) ;) (expression_statement "uVar63 = *(uint *)&ibfd->field_0x28;" (assignment_expression "uVar63 = *(uint *)&ibfd->field_0x28" identifier = (pointer_expression "*(uint *)&ibfd->field_0x28" * (cast_expression "(uint *)&ibfd->field_0x28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ibfd->field_0x28" & (field_expression "ibfd->field_0x28" identifier -> field_identifier))))) ;) (expression_statement "osympp = ppaVar34;" (assignment_expression "osympp = ppaVar34" identifier = identifier) ;) (if_statement "if (local_8c != 0) {\n    ppaVar2 = isympp + local_8c;\n    local_8c = 0;\n    pbVar35 = (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0);\n    do {\n      iVar22 = add_symbols;\n      paVar40 = *local_84;\n      uVar48 = paVar40->flags;\n      pbVar39 = (bfd_byte *)paVar40->name;\n      pbVar50 = paVar40->section;\n      if (((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&\n         (pcVar27 = add_sym_list->othersym, pcVar27 != (char *)0x0)) {\n        local_6c = (bfd_section *)0x0;\n        ptr = add_sym_list;\n        while (iVar52 = strcmp(pcVar27,(char *)pbVar39), iVar52 != 0) {\n          local_6c = (bfd_section *)((int)local_6c + 1);\n          ptr = ptr->next;\n          if ((local_6c == (bfd_section *)iVar22) ||\n             (pcVar27 = ptr->othersym, pcVar27 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar27);\n        ptr->othersym = "";\n        ppaVar3 = ppaVar34 + local_8c;\n        local_8c = local_8c + 1;\n        paVar36 = create_new_symbol(ptr,obfd);\n        *ppaVar3 = paVar36;\n      }\nLAB_000197a8:\n      iVar22 = htab_elements(redefine_specific_htab);\n      pbVar56 = pbVar39;\n      if ((iVar22 != 0) || (section_rename_list != (section_rename *)0x0)) {\n        local_30 = 0;\n        contents = pbVar39;\n        iVar22 = htab_find(redefine_specific_htab,&contents);\n        if (((iVar22 == 0) || (pbVar56 = *(bfd_byte **)(iVar22 + 4), pbVar39 == pbVar56)) &&\n           (psVar18 = section_rename_list, (uVar48 & 0x100) != 0)) {\n          for (; pbVar56 = pbVar39, psVar18 != (section_rename *)0x0; psVar18 = psVar18->next) {\n            iVar22 = strcmp(psVar18->old_name,(char *)pbVar39);\n            if (iVar22 == 0) {\n              pbVar56 = (bfd_byte *)psVar18->new_name;\n              break;\n            }\n          }\n        }\n        paVar40->name = (char *)pbVar56;\n      }\n      pcVar27 = prefix_symbols_string;\n      bVar5 = ibfd->xvec->symbol_leading_char;\n      if (*pbVar56 == bVar5) {\n        if (change_leading_char == 0) {\n          if ((remove_leading_char != 0) &&\n             ((((uVar48 & 0x82) != 0 || (pbVar50 == pbVar35)) ||\n              ((paVar40->section->flags & 0x1000) != 0)))) {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n          }\nLAB_0001982b:\n          if (pcVar27 != (char *)0x0) {\n            sVar37 = strlen(pcVar27);\n            sVar38 = strlen((char *)pbVar56);\n            pbVar39 = (bfd_byte *)xmalloc(sVar37 + 2 + sVar38);\n            local_6c = (bfd_section *)pbVar39;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          bVar5 = *(bfd_byte *)(((bfd_section *)obfd)->id + 0x18);\n          if (bVar5 == '\0') {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n            goto LAB_0001982b;\n          }\n          if (prefix_symbols_string != (char *)0x0) {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n            goto LAB_00019ab1;\n          }\n          *pbVar56 = bVar5;\n          paVar40->name = (char *)pbVar56;\n        }\n      }\n      else {\n        if (((change_leading_char == 0) || (*(char *)(((bfd_section *)obfd)->id + 0x18) == '\0')) ||\n           (bVar5 != '\0')) goto LAB_0001982b;\nLAB_00019ab1:\n        sVar37 = strlen(pcVar27);\n        sVar38 = strlen((char *)pbVar56);\n        pbVar39 = (bfd_byte *)xmalloc(sVar37 + 2 + sVar38);\n        local_6c = (bfd_section *)(pbVar39 + 1);\n        *pbVar39 = *(bfd_byte *)(((bfd_section *)obfd)->id + 0x18);\nLAB_00019858:\n        pcVar27 = prefix_symbols_string;\n        if (prefix_symbols_string != (char *)0x0) {\n          strcpy((char *)local_6c,prefix_symbols_string);\n          sVar37 = strlen(pcVar27);\n          local_6c = (bfd_section *)((int)local_6c + sVar37);\n        }\n        strcpy((char *)local_6c,(char *)pbVar56);\n        paVar40->name = (char *)pbVar39;\n        pbVar56 = pbVar39;\n      }\n      if (strip_symbols == STRIP_ALL) goto LAB_00019928;\n      if ((uVar48 & 0x20) == 0) {\n        if (((uVar48 & 0x100) == 0) || (((*paVar40->section->symbol_ptr_ptr)->flags & 0x20) == 0)) {\n          if ((((uVar63 >> 5 & 0x42) == 0) &&\n              (((uVar48 & 0x82) != 0 || ((paVar40->section->flags & 0x1000) != 0)))) ||\n             (iVar22 = bfd_decode_symclass(paVar40), iVar22 == 0x49)) {\nLAB_00019b80:\n            bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n            if (bVar25 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar48 & 0x82) == 0) &&\n                   (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0))) &&\n                  ((paVar40->section->flags & 0x1000) == 0)) {\n            if ((uVar48 & 4) == 0) {\n              if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                  (pvVar75 = paVar40->section->used_by_bfd, pvVar75 == (void *)0x0)) ||\n                 (*(int *)((int)pvVar75 + 0x2c) == 0)) {\n                if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                goto LAB_00019928;\n                if (discard_locals == LOCALS_START_L) {\n                  iVar22 = bfd_is_local_label(ibfd,paVar40,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar22 = convert_debugging;\n            if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0001a753:\n              if (iVar22 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (strip_symbols != STRIP_UNNEEDED) goto LAB_00019b80;\n        }\n        else {\n          bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n          if (bVar25 != 0) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "not stripping symbol `%s\' because it is named in a relocation"\n                                        ,5,bVar25);\n            non_fatal(pcVar27,pbVar56);\n            status = 1;\n          }\nLAB_00019910:\n          bVar25 = is_specified_symbol((char *)pbVar56,strip_unneeded_htab);\n          if (bVar25 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((keep_file_symbols != 0) && ((uVar48 & 0x4000) != 0)) ||\n           (bVar25 = is_specified_symbol((char *)pbVar56,keep_specific_htab), bVar25 != 0))\n        goto LAB_0001994f;\n      }\n      else {\n        bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n        if (bVar25 != 0) {\n          pcVar27 = (char *)dcgettext(0,\n                                      "not stripping symbol `%s\' because it is named in a relocation"\n                                      ,5);\n          non_fatal(pcVar27,pbVar56);\n          status = 1;\n        }\nLAB_0001994f:\n        bVar25 = is_strip_section((bfd *)in_stack_ffffff24,in_stack_ffffff28);\n        if (bVar25 == 0) {\n          if (((uVar48 & 2) != 0) &&\n             ((weaken != 0 ||\n              (bVar25 = is_specified_symbol((char *)pbVar56,weaken_specific_htab), bVar25 != 0)))) {\n            paVar40->flags = paVar40->flags & 0xfffffffd | 0x80;\n          }\n          if (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0)) {\n            if (((uVar48 & 0x82) != 0) &&\n               (((bVar25 = is_specified_symbol((char *)pbVar56,localize_specific_htab), bVar25 != 0\n                 || ((iVar22 = htab_elements(keepglobal_specific_htab), iVar22 != 0 &&\n                     (bVar25 = is_specified_symbol((char *)pbVar56,keepglobal_specific_htab),\n                     bVar25 == 0)))) ||\n                ((localize_hidden != 0 &&\n                 ((((pbVar46 = paVar40->the_bfd, pbVar46 != (bfd *)0x0 &&\n                    (pbVar46->xvec->flavour == bfd_target_elf_flavour)) &&\n                   ((pbVar46->tdata).aout_data != (aout_data_struct *)0x0)) &&\n                  ((*(byte *)((int)&paVar40[1].section + 1) & 3) - 1 < 2)))))))) {\n              paVar40->flags = paVar40->flags & 0xffffff7d | 1;\n            }\n            if (((uVar48 & 1) != 0) &&\n               (bVar25 = is_specified_symbol((char *)pbVar56,globalize_specific_htab), bVar25 != 0))\n            {\n              paVar40->flags = paVar40->flags & 0xfffffffe | 2;\n            }\n          }\n          ppaVar34[local_8c] = paVar40;\n          local_8c = local_8c + 1;\n        }\n      }\n      local_84 = local_84 + 1;\n    } while (ppaVar2 != local_84);\n  }" if (parenthesized_expression "(local_8c != 0)" ( (binary_expression "local_8c != 0" identifier != number_literal) )) (compound_statement "{\n    ppaVar2 = isympp + local_8c;\n    local_8c = 0;\n    pbVar35 = (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0);\n    do {\n      iVar22 = add_symbols;\n      paVar40 = *local_84;\n      uVar48 = paVar40->flags;\n      pbVar39 = (bfd_byte *)paVar40->name;\n      pbVar50 = paVar40->section;\n      if (((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&\n         (pcVar27 = add_sym_list->othersym, pcVar27 != (char *)0x0)) {\n        local_6c = (bfd_section *)0x0;\n        ptr = add_sym_list;\n        while (iVar52 = strcmp(pcVar27,(char *)pbVar39), iVar52 != 0) {\n          local_6c = (bfd_section *)((int)local_6c + 1);\n          ptr = ptr->next;\n          if ((local_6c == (bfd_section *)iVar22) ||\n             (pcVar27 = ptr->othersym, pcVar27 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar27);\n        ptr->othersym = "";\n        ppaVar3 = ppaVar34 + local_8c;\n        local_8c = local_8c + 1;\n        paVar36 = create_new_symbol(ptr,obfd);\n        *ppaVar3 = paVar36;\n      }\nLAB_000197a8:\n      iVar22 = htab_elements(redefine_specific_htab);\n      pbVar56 = pbVar39;\n      if ((iVar22 != 0) || (section_rename_list != (section_rename *)0x0)) {\n        local_30 = 0;\n        contents = pbVar39;\n        iVar22 = htab_find(redefine_specific_htab,&contents);\n        if (((iVar22 == 0) || (pbVar56 = *(bfd_byte **)(iVar22 + 4), pbVar39 == pbVar56)) &&\n           (psVar18 = section_rename_list, (uVar48 & 0x100) != 0)) {\n          for (; pbVar56 = pbVar39, psVar18 != (section_rename *)0x0; psVar18 = psVar18->next) {\n            iVar22 = strcmp(psVar18->old_name,(char *)pbVar39);\n            if (iVar22 == 0) {\n              pbVar56 = (bfd_byte *)psVar18->new_name;\n              break;\n            }\n          }\n        }\n        paVar40->name = (char *)pbVar56;\n      }\n      pcVar27 = prefix_symbols_string;\n      bVar5 = ibfd->xvec->symbol_leading_char;\n      if (*pbVar56 == bVar5) {\n        if (change_leading_char == 0) {\n          if ((remove_leading_char != 0) &&\n             ((((uVar48 & 0x82) != 0 || (pbVar50 == pbVar35)) ||\n              ((paVar40->section->flags & 0x1000) != 0)))) {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n          }\nLAB_0001982b:\n          if (pcVar27 != (char *)0x0) {\n            sVar37 = strlen(pcVar27);\n            sVar38 = strlen((char *)pbVar56);\n            pbVar39 = (bfd_byte *)xmalloc(sVar37 + 2 + sVar38);\n            local_6c = (bfd_section *)pbVar39;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          bVar5 = *(bfd_byte *)(((bfd_section *)obfd)->id + 0x18);\n          if (bVar5 == '\0') {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n            goto LAB_0001982b;\n          }\n          if (prefix_symbols_string != (char *)0x0) {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n            goto LAB_00019ab1;\n          }\n          *pbVar56 = bVar5;\n          paVar40->name = (char *)pbVar56;\n        }\n      }\n      else {\n        if (((change_leading_char == 0) || (*(char *)(((bfd_section *)obfd)->id + 0x18) == '\0')) ||\n           (bVar5 != '\0')) goto LAB_0001982b;\nLAB_00019ab1:\n        sVar37 = strlen(pcVar27);\n        sVar38 = strlen((char *)pbVar56);\n        pbVar39 = (bfd_byte *)xmalloc(sVar37 + 2 + sVar38);\n        local_6c = (bfd_section *)(pbVar39 + 1);\n        *pbVar39 = *(bfd_byte *)(((bfd_section *)obfd)->id + 0x18);\nLAB_00019858:\n        pcVar27 = prefix_symbols_string;\n        if (prefix_symbols_string != (char *)0x0) {\n          strcpy((char *)local_6c,prefix_symbols_string);\n          sVar37 = strlen(pcVar27);\n          local_6c = (bfd_section *)((int)local_6c + sVar37);\n        }\n        strcpy((char *)local_6c,(char *)pbVar56);\n        paVar40->name = (char *)pbVar39;\n        pbVar56 = pbVar39;\n      }\n      if (strip_symbols == STRIP_ALL) goto LAB_00019928;\n      if ((uVar48 & 0x20) == 0) {\n        if (((uVar48 & 0x100) == 0) || (((*paVar40->section->symbol_ptr_ptr)->flags & 0x20) == 0)) {\n          if ((((uVar63 >> 5 & 0x42) == 0) &&\n              (((uVar48 & 0x82) != 0 || ((paVar40->section->flags & 0x1000) != 0)))) ||\n             (iVar22 = bfd_decode_symclass(paVar40), iVar22 == 0x49)) {\nLAB_00019b80:\n            bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n            if (bVar25 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar48 & 0x82) == 0) &&\n                   (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0))) &&\n                  ((paVar40->section->flags & 0x1000) == 0)) {\n            if ((uVar48 & 4) == 0) {\n              if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                  (pvVar75 = paVar40->section->used_by_bfd, pvVar75 == (void *)0x0)) ||\n                 (*(int *)((int)pvVar75 + 0x2c) == 0)) {\n                if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                goto LAB_00019928;\n                if (discard_locals == LOCALS_START_L) {\n                  iVar22 = bfd_is_local_label(ibfd,paVar40,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar22 = convert_debugging;\n            if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0001a753:\n              if (iVar22 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (strip_symbols != STRIP_UNNEEDED) goto LAB_00019b80;\n        }\n        else {\n          bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n          if (bVar25 != 0) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "not stripping symbol `%s\' because it is named in a relocation"\n                                        ,5,bVar25);\n            non_fatal(pcVar27,pbVar56);\n            status = 1;\n          }\nLAB_00019910:\n          bVar25 = is_specified_symbol((char *)pbVar56,strip_unneeded_htab);\n          if (bVar25 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((keep_file_symbols != 0) && ((uVar48 & 0x4000) != 0)) ||\n           (bVar25 = is_specified_symbol((char *)pbVar56,keep_specific_htab), bVar25 != 0))\n        goto LAB_0001994f;\n      }\n      else {\n        bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n        if (bVar25 != 0) {\n          pcVar27 = (char *)dcgettext(0,\n                                      "not stripping symbol `%s\' because it is named in a relocation"\n                                      ,5);\n          non_fatal(pcVar27,pbVar56);\n          status = 1;\n        }\nLAB_0001994f:\n        bVar25 = is_strip_section((bfd *)in_stack_ffffff24,in_stack_ffffff28);\n        if (bVar25 == 0) {\n          if (((uVar48 & 2) != 0) &&\n             ((weaken != 0 ||\n              (bVar25 = is_specified_symbol((char *)pbVar56,weaken_specific_htab), bVar25 != 0)))) {\n            paVar40->flags = paVar40->flags & 0xfffffffd | 0x80;\n          }\n          if (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0)) {\n            if (((uVar48 & 0x82) != 0) &&\n               (((bVar25 = is_specified_symbol((char *)pbVar56,localize_specific_htab), bVar25 != 0\n                 || ((iVar22 = htab_elements(keepglobal_specific_htab), iVar22 != 0 &&\n                     (bVar25 = is_specified_symbol((char *)pbVar56,keepglobal_specific_htab),\n                     bVar25 == 0)))) ||\n                ((localize_hidden != 0 &&\n                 ((((pbVar46 = paVar40->the_bfd, pbVar46 != (bfd *)0x0 &&\n                    (pbVar46->xvec->flavour == bfd_target_elf_flavour)) &&\n                   ((pbVar46->tdata).aout_data != (aout_data_struct *)0x0)) &&\n                  ((*(byte *)((int)&paVar40[1].section + 1) & 3) - 1 < 2)))))))) {\n              paVar40->flags = paVar40->flags & 0xffffff7d | 1;\n            }\n            if (((uVar48 & 1) != 0) &&\n               (bVar25 = is_specified_symbol((char *)pbVar56,globalize_specific_htab), bVar25 != 0))\n            {\n              paVar40->flags = paVar40->flags & 0xfffffffe | 2;\n            }\n          }\n          ppaVar34[local_8c] = paVar40;\n          local_8c = local_8c + 1;\n        }\n      }\n      local_84 = local_84 + 1;\n    } while (ppaVar2 != local_84);\n  }" { (expression_statement "ppaVar2 = isympp + local_8c;" (assignment_expression "ppaVar2 = isympp + local_8c" identifier = (binary_expression "isympp + local_8c" identifier + identifier)) ;) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" identifier = number_literal) ;) (expression_statement "pbVar35 = (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0);" (assignment_expression "pbVar35 = (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0)" identifier = (cast_expression "(bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0)" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_0003ffc8 + 0xc0)" ( (binary_expression "PTR__bfd_std_section_0003ffc8 + 0xc0" identifier + number_literal) )))) ;) (do_statement "do {\n      iVar22 = add_symbols;\n      paVar40 = *local_84;\n      uVar48 = paVar40->flags;\n      pbVar39 = (bfd_byte *)paVar40->name;\n      pbVar50 = paVar40->section;\n      if (((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&\n         (pcVar27 = add_sym_list->othersym, pcVar27 != (char *)0x0)) {\n        local_6c = (bfd_section *)0x0;\n        ptr = add_sym_list;\n        while (iVar52 = strcmp(pcVar27,(char *)pbVar39), iVar52 != 0) {\n          local_6c = (bfd_section *)((int)local_6c + 1);\n          ptr = ptr->next;\n          if ((local_6c == (bfd_section *)iVar22) ||\n             (pcVar27 = ptr->othersym, pcVar27 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar27);\n        ptr->othersym = "";\n        ppaVar3 = ppaVar34 + local_8c;\n        local_8c = local_8c + 1;\n        paVar36 = create_new_symbol(ptr,obfd);\n        *ppaVar3 = paVar36;\n      }\nLAB_000197a8:\n      iVar22 = htab_elements(redefine_specific_htab);\n      pbVar56 = pbVar39;\n      if ((iVar22 != 0) || (section_rename_list != (section_rename *)0x0)) {\n        local_30 = 0;\n        contents = pbVar39;\n        iVar22 = htab_find(redefine_specific_htab,&contents);\n        if (((iVar22 == 0) || (pbVar56 = *(bfd_byte **)(iVar22 + 4), pbVar39 == pbVar56)) &&\n           (psVar18 = section_rename_list, (uVar48 & 0x100) != 0)) {\n          for (; pbVar56 = pbVar39, psVar18 != (section_rename *)0x0; psVar18 = psVar18->next) {\n            iVar22 = strcmp(psVar18->old_name,(char *)pbVar39);\n            if (iVar22 == 0) {\n              pbVar56 = (bfd_byte *)psVar18->new_name;\n              break;\n            }\n          }\n        }\n        paVar40->name = (char *)pbVar56;\n      }\n      pcVar27 = prefix_symbols_string;\n      bVar5 = ibfd->xvec->symbol_leading_char;\n      if (*pbVar56 == bVar5) {\n        if (change_leading_char == 0) {\n          if ((remove_leading_char != 0) &&\n             ((((uVar48 & 0x82) != 0 || (pbVar50 == pbVar35)) ||\n              ((paVar40->section->flags & 0x1000) != 0)))) {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n          }\nLAB_0001982b:\n          if (pcVar27 != (char *)0x0) {\n            sVar37 = strlen(pcVar27);\n            sVar38 = strlen((char *)pbVar56);\n            pbVar39 = (bfd_byte *)xmalloc(sVar37 + 2 + sVar38);\n            local_6c = (bfd_section *)pbVar39;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          bVar5 = *(bfd_byte *)(((bfd_section *)obfd)->id + 0x18);\n          if (bVar5 == '\0') {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n            goto LAB_0001982b;\n          }\n          if (prefix_symbols_string != (char *)0x0) {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n            goto LAB_00019ab1;\n          }\n          *pbVar56 = bVar5;\n          paVar40->name = (char *)pbVar56;\n        }\n      }\n      else {\n        if (((change_leading_char == 0) || (*(char *)(((bfd_section *)obfd)->id + 0x18) == '\0')) ||\n           (bVar5 != '\0')) goto LAB_0001982b;\nLAB_00019ab1:\n        sVar37 = strlen(pcVar27);\n        sVar38 = strlen((char *)pbVar56);\n        pbVar39 = (bfd_byte *)xmalloc(sVar37 + 2 + sVar38);\n        local_6c = (bfd_section *)(pbVar39 + 1);\n        *pbVar39 = *(bfd_byte *)(((bfd_section *)obfd)->id + 0x18);\nLAB_00019858:\n        pcVar27 = prefix_symbols_string;\n        if (prefix_symbols_string != (char *)0x0) {\n          strcpy((char *)local_6c,prefix_symbols_string);\n          sVar37 = strlen(pcVar27);\n          local_6c = (bfd_section *)((int)local_6c + sVar37);\n        }\n        strcpy((char *)local_6c,(char *)pbVar56);\n        paVar40->name = (char *)pbVar39;\n        pbVar56 = pbVar39;\n      }\n      if (strip_symbols == STRIP_ALL) goto LAB_00019928;\n      if ((uVar48 & 0x20) == 0) {\n        if (((uVar48 & 0x100) == 0) || (((*paVar40->section->symbol_ptr_ptr)->flags & 0x20) == 0)) {\n          if ((((uVar63 >> 5 & 0x42) == 0) &&\n              (((uVar48 & 0x82) != 0 || ((paVar40->section->flags & 0x1000) != 0)))) ||\n             (iVar22 = bfd_decode_symclass(paVar40), iVar22 == 0x49)) {\nLAB_00019b80:\n            bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n            if (bVar25 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar48 & 0x82) == 0) &&\n                   (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0))) &&\n                  ((paVar40->section->flags & 0x1000) == 0)) {\n            if ((uVar48 & 4) == 0) {\n              if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                  (pvVar75 = paVar40->section->used_by_bfd, pvVar75 == (void *)0x0)) ||\n                 (*(int *)((int)pvVar75 + 0x2c) == 0)) {\n                if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                goto LAB_00019928;\n                if (discard_locals == LOCALS_START_L) {\n                  iVar22 = bfd_is_local_label(ibfd,paVar40,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar22 = convert_debugging;\n            if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0001a753:\n              if (iVar22 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (strip_symbols != STRIP_UNNEEDED) goto LAB_00019b80;\n        }\n        else {\n          bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n          if (bVar25 != 0) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "not stripping symbol `%s\' because it is named in a relocation"\n                                        ,5,bVar25);\n            non_fatal(pcVar27,pbVar56);\n            status = 1;\n          }\nLAB_00019910:\n          bVar25 = is_specified_symbol((char *)pbVar56,strip_unneeded_htab);\n          if (bVar25 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((keep_file_symbols != 0) && ((uVar48 & 0x4000) != 0)) ||\n           (bVar25 = is_specified_symbol((char *)pbVar56,keep_specific_htab), bVar25 != 0))\n        goto LAB_0001994f;\n      }\n      else {\n        bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n        if (bVar25 != 0) {\n          pcVar27 = (char *)dcgettext(0,\n                                      "not stripping symbol `%s\' because it is named in a relocation"\n                                      ,5);\n          non_fatal(pcVar27,pbVar56);\n          status = 1;\n        }\nLAB_0001994f:\n        bVar25 = is_strip_section((bfd *)in_stack_ffffff24,in_stack_ffffff28);\n        if (bVar25 == 0) {\n          if (((uVar48 & 2) != 0) &&\n             ((weaken != 0 ||\n              (bVar25 = is_specified_symbol((char *)pbVar56,weaken_specific_htab), bVar25 != 0)))) {\n            paVar40->flags = paVar40->flags & 0xfffffffd | 0x80;\n          }\n          if (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0)) {\n            if (((uVar48 & 0x82) != 0) &&\n               (((bVar25 = is_specified_symbol((char *)pbVar56,localize_specific_htab), bVar25 != 0\n                 || ((iVar22 = htab_elements(keepglobal_specific_htab), iVar22 != 0 &&\n                     (bVar25 = is_specified_symbol((char *)pbVar56,keepglobal_specific_htab),\n                     bVar25 == 0)))) ||\n                ((localize_hidden != 0 &&\n                 ((((pbVar46 = paVar40->the_bfd, pbVar46 != (bfd *)0x0 &&\n                    (pbVar46->xvec->flavour == bfd_target_elf_flavour)) &&\n                   ((pbVar46->tdata).aout_data != (aout_data_struct *)0x0)) &&\n                  ((*(byte *)((int)&paVar40[1].section + 1) & 3) - 1 < 2)))))))) {\n              paVar40->flags = paVar40->flags & 0xffffff7d | 1;\n            }\n            if (((uVar48 & 1) != 0) &&\n               (bVar25 = is_specified_symbol((char *)pbVar56,globalize_specific_htab), bVar25 != 0))\n            {\n              paVar40->flags = paVar40->flags & 0xfffffffe | 2;\n            }\n          }\n          ppaVar34[local_8c] = paVar40;\n          local_8c = local_8c + 1;\n        }\n      }\n      local_84 = local_84 + 1;\n    } while (ppaVar2 != local_84);" do (compound_statement "{\n      iVar22 = add_symbols;\n      paVar40 = *local_84;\n      uVar48 = paVar40->flags;\n      pbVar39 = (bfd_byte *)paVar40->name;\n      pbVar50 = paVar40->section;\n      if (((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&\n         (pcVar27 = add_sym_list->othersym, pcVar27 != (char *)0x0)) {\n        local_6c = (bfd_section *)0x0;\n        ptr = add_sym_list;\n        while (iVar52 = strcmp(pcVar27,(char *)pbVar39), iVar52 != 0) {\n          local_6c = (bfd_section *)((int)local_6c + 1);\n          ptr = ptr->next;\n          if ((local_6c == (bfd_section *)iVar22) ||\n             (pcVar27 = ptr->othersym, pcVar27 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar27);\n        ptr->othersym = "";\n        ppaVar3 = ppaVar34 + local_8c;\n        local_8c = local_8c + 1;\n        paVar36 = create_new_symbol(ptr,obfd);\n        *ppaVar3 = paVar36;\n      }\nLAB_000197a8:\n      iVar22 = htab_elements(redefine_specific_htab);\n      pbVar56 = pbVar39;\n      if ((iVar22 != 0) || (section_rename_list != (section_rename *)0x0)) {\n        local_30 = 0;\n        contents = pbVar39;\n        iVar22 = htab_find(redefine_specific_htab,&contents);\n        if (((iVar22 == 0) || (pbVar56 = *(bfd_byte **)(iVar22 + 4), pbVar39 == pbVar56)) &&\n           (psVar18 = section_rename_list, (uVar48 & 0x100) != 0)) {\n          for (; pbVar56 = pbVar39, psVar18 != (section_rename *)0x0; psVar18 = psVar18->next) {\n            iVar22 = strcmp(psVar18->old_name,(char *)pbVar39);\n            if (iVar22 == 0) {\n              pbVar56 = (bfd_byte *)psVar18->new_name;\n              break;\n            }\n          }\n        }\n        paVar40->name = (char *)pbVar56;\n      }\n      pcVar27 = prefix_symbols_string;\n      bVar5 = ibfd->xvec->symbol_leading_char;\n      if (*pbVar56 == bVar5) {\n        if (change_leading_char == 0) {\n          if ((remove_leading_char != 0) &&\n             ((((uVar48 & 0x82) != 0 || (pbVar50 == pbVar35)) ||\n              ((paVar40->section->flags & 0x1000) != 0)))) {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n          }\nLAB_0001982b:\n          if (pcVar27 != (char *)0x0) {\n            sVar37 = strlen(pcVar27);\n            sVar38 = strlen((char *)pbVar56);\n            pbVar39 = (bfd_byte *)xmalloc(sVar37 + 2 + sVar38);\n            local_6c = (bfd_section *)pbVar39;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          bVar5 = *(bfd_byte *)(((bfd_section *)obfd)->id + 0x18);\n          if (bVar5 == '\0') {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n            goto LAB_0001982b;\n          }\n          if (prefix_symbols_string != (char *)0x0) {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n            goto LAB_00019ab1;\n          }\n          *pbVar56 = bVar5;\n          paVar40->name = (char *)pbVar56;\n        }\n      }\n      else {\n        if (((change_leading_char == 0) || (*(char *)(((bfd_section *)obfd)->id + 0x18) == '\0')) ||\n           (bVar5 != '\0')) goto LAB_0001982b;\nLAB_00019ab1:\n        sVar37 = strlen(pcVar27);\n        sVar38 = strlen((char *)pbVar56);\n        pbVar39 = (bfd_byte *)xmalloc(sVar37 + 2 + sVar38);\n        local_6c = (bfd_section *)(pbVar39 + 1);\n        *pbVar39 = *(bfd_byte *)(((bfd_section *)obfd)->id + 0x18);\nLAB_00019858:\n        pcVar27 = prefix_symbols_string;\n        if (prefix_symbols_string != (char *)0x0) {\n          strcpy((char *)local_6c,prefix_symbols_string);\n          sVar37 = strlen(pcVar27);\n          local_6c = (bfd_section *)((int)local_6c + sVar37);\n        }\n        strcpy((char *)local_6c,(char *)pbVar56);\n        paVar40->name = (char *)pbVar39;\n        pbVar56 = pbVar39;\n      }\n      if (strip_symbols == STRIP_ALL) goto LAB_00019928;\n      if ((uVar48 & 0x20) == 0) {\n        if (((uVar48 & 0x100) == 0) || (((*paVar40->section->symbol_ptr_ptr)->flags & 0x20) == 0)) {\n          if ((((uVar63 >> 5 & 0x42) == 0) &&\n              (((uVar48 & 0x82) != 0 || ((paVar40->section->flags & 0x1000) != 0)))) ||\n             (iVar22 = bfd_decode_symclass(paVar40), iVar22 == 0x49)) {\nLAB_00019b80:\n            bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n            if (bVar25 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar48 & 0x82) == 0) &&\n                   (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0))) &&\n                  ((paVar40->section->flags & 0x1000) == 0)) {\n            if ((uVar48 & 4) == 0) {\n              if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                  (pvVar75 = paVar40->section->used_by_bfd, pvVar75 == (void *)0x0)) ||\n                 (*(int *)((int)pvVar75 + 0x2c) == 0)) {\n                if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                goto LAB_00019928;\n                if (discard_locals == LOCALS_START_L) {\n                  iVar22 = bfd_is_local_label(ibfd,paVar40,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar22 = convert_debugging;\n            if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0001a753:\n              if (iVar22 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (strip_symbols != STRIP_UNNEEDED) goto LAB_00019b80;\n        }\n        else {\n          bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n          if (bVar25 != 0) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "not stripping symbol `%s\' because it is named in a relocation"\n                                        ,5,bVar25);\n            non_fatal(pcVar27,pbVar56);\n            status = 1;\n          }\nLAB_00019910:\n          bVar25 = is_specified_symbol((char *)pbVar56,strip_unneeded_htab);\n          if (bVar25 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((keep_file_symbols != 0) && ((uVar48 & 0x4000) != 0)) ||\n           (bVar25 = is_specified_symbol((char *)pbVar56,keep_specific_htab), bVar25 != 0))\n        goto LAB_0001994f;\n      }\n      else {\n        bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n        if (bVar25 != 0) {\n          pcVar27 = (char *)dcgettext(0,\n                                      "not stripping symbol `%s\' because it is named in a relocation"\n                                      ,5);\n          non_fatal(pcVar27,pbVar56);\n          status = 1;\n        }\nLAB_0001994f:\n        bVar25 = is_strip_section((bfd *)in_stack_ffffff24,in_stack_ffffff28);\n        if (bVar25 == 0) {\n          if (((uVar48 & 2) != 0) &&\n             ((weaken != 0 ||\n              (bVar25 = is_specified_symbol((char *)pbVar56,weaken_specific_htab), bVar25 != 0)))) {\n            paVar40->flags = paVar40->flags & 0xfffffffd | 0x80;\n          }\n          if (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0)) {\n            if (((uVar48 & 0x82) != 0) &&\n               (((bVar25 = is_specified_symbol((char *)pbVar56,localize_specific_htab), bVar25 != 0\n                 || ((iVar22 = htab_elements(keepglobal_specific_htab), iVar22 != 0 &&\n                     (bVar25 = is_specified_symbol((char *)pbVar56,keepglobal_specific_htab),\n                     bVar25 == 0)))) ||\n                ((localize_hidden != 0 &&\n                 ((((pbVar46 = paVar40->the_bfd, pbVar46 != (bfd *)0x0 &&\n                    (pbVar46->xvec->flavour == bfd_target_elf_flavour)) &&\n                   ((pbVar46->tdata).aout_data != (aout_data_struct *)0x0)) &&\n                  ((*(byte *)((int)&paVar40[1].section + 1) & 3) - 1 < 2)))))))) {\n              paVar40->flags = paVar40->flags & 0xffffff7d | 1;\n            }\n            if (((uVar48 & 1) != 0) &&\n               (bVar25 = is_specified_symbol((char *)pbVar56,globalize_specific_htab), bVar25 != 0))\n            {\n              paVar40->flags = paVar40->flags & 0xfffffffe | 2;\n            }\n          }\n          ppaVar34[local_8c] = paVar40;\n          local_8c = local_8c + 1;\n        }\n      }\n      local_84 = local_84 + 1;\n    }" { (expression_statement "iVar22 = add_symbols;" (assignment_expression "iVar22 = add_symbols" identifier = identifier) ;) (expression_statement "paVar40 = *local_84;" (assignment_expression "paVar40 = *local_84" identifier = (pointer_expression "*local_84" * identifier)) ;) (expression_statement "uVar48 = paVar40->flags;" (assignment_expression "uVar48 = paVar40->flags" identifier = (field_expression "paVar40->flags" identifier -> field_identifier)) ;) (expression_statement "pbVar39 = (bfd_byte *)paVar40->name;" (assignment_expression "pbVar39 = (bfd_byte *)paVar40->name" identifier = (cast_expression "(bfd_byte *)paVar40->name" ( (type_descriptor "bfd_byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "paVar40->name" identifier -> field_identifier))) ;) (expression_statement "pbVar50 = paVar40->section;" (assignment_expression "pbVar50 = paVar40->section" identifier = (field_expression "paVar40->section" identifier -> field_identifier)) ;) (if_statement "if (((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&\n         (pcVar27 = add_sym_list->othersym, pcVar27 != (char *)0x0)) {\n        local_6c = (bfd_section *)0x0;\n        ptr = add_sym_list;\n        while (iVar52 = strcmp(pcVar27,(char *)pbVar39), iVar52 != 0) {\n          local_6c = (bfd_section *)((int)local_6c + 1);\n          ptr = ptr->next;\n          if ((local_6c == (bfd_section *)iVar22) ||\n             (pcVar27 = ptr->othersym, pcVar27 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar27);\n        ptr->othersym = "";\n        ppaVar3 = ppaVar34 + local_8c;\n        local_8c = local_8c + 1;\n        paVar36 = create_new_symbol(ptr,obfd);\n        *ppaVar3 = paVar36;\n      }" if (parenthesized_expression "(((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&\n         (pcVar27 = add_sym_list->othersym, pcVar27 != (char *)0x0))" ( (binary_expression "((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) &&\n         (pcVar27 = add_sym_list->othersym, pcVar27 != (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 "(pcVar27 = add_sym_list->othersym, pcVar27 != (char *)0x0)" ( (comma_expression "pcVar27 = add_sym_list->othersym, pcVar27 != (char *)0x0" (assignment_expression "pcVar27 = add_sym_list->othersym" identifier = (field_expression "add_sym_list->othersym" identifier -> field_identifier)) , (binary_expression "pcVar27 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        local_6c = (bfd_section *)0x0;\n        ptr = add_sym_list;\n        while (iVar52 = strcmp(pcVar27,(char *)pbVar39), iVar52 != 0) {\n          local_6c = (bfd_section *)((int)local_6c + 1);\n          ptr = ptr->next;\n          if ((local_6c == (bfd_section *)iVar22) ||\n             (pcVar27 = ptr->othersym, pcVar27 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar27);\n        ptr->othersym = "";\n        ppaVar3 = ppaVar34 + local_8c;\n        local_8c = local_8c + 1;\n        paVar36 = create_new_symbol(ptr,obfd);\n        *ppaVar3 = paVar36;\n      }" { (expression_statement "local_6c = (bfd_section *)0x0;" (assignment_expression "local_6c = (bfd_section *)0x0" identifier = (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ptr = add_sym_list;" (assignment_expression "ptr = add_sym_list" identifier = identifier) ;) (while_statement "while (iVar52 = strcmp(pcVar27,(char *)pbVar39), iVar52 != 0) {\n          local_6c = (bfd_section *)((int)local_6c + 1);\n          ptr = ptr->next;\n          if ((local_6c == (bfd_section *)iVar22) ||\n             (pcVar27 = ptr->othersym, pcVar27 == (char *)0x0)) goto LAB_000197a8;\n        }" while (parenthesized_expression "(iVar52 = strcmp(pcVar27,(char *)pbVar39), iVar52 != 0)" ( (comma_expression "iVar52 = strcmp(pcVar27,(char *)pbVar39), iVar52 != 0" (assignment_expression "iVar52 = strcmp(pcVar27,(char *)pbVar39)" identifier = (call_expression "strcmp(pcVar27,(char *)pbVar39)" identifier (argument_list "(pcVar27,(char *)pbVar39)" ( identifier , (cast_expression "(char *)pbVar39" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "iVar52 != 0" identifier != number_literal)) )) (compound_statement "{\n          local_6c = (bfd_section *)((int)local_6c + 1);\n          ptr = ptr->next;\n          if ((local_6c == (bfd_section *)iVar22) ||\n             (pcVar27 = ptr->othersym, pcVar27 == (char *)0x0)) goto LAB_000197a8;\n        }" { (expression_statement "local_6c = (bfd_section *)((int)local_6c + 1);" (assignment_expression "local_6c = (bfd_section *)((int)local_6c + 1)" identifier = (cast_expression "(bfd_section *)((int)local_6c + 1)" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_6c + 1)" ( (binary_expression "(int)local_6c + 1" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "ptr = ptr->next;" (assignment_expression "ptr = ptr->next" identifier = (field_expression "ptr->next" identifier -> field_identifier)) ;) (if_statement "if ((local_6c == (bfd_section *)iVar22) ||\n             (pcVar27 = ptr->othersym, pcVar27 == (char *)0x0)) goto LAB_000197a8;" if (parenthesized_expression "((local_6c == (bfd_section *)iVar22) ||\n             (pcVar27 = ptr->othersym, pcVar27 == (char *)0x0))" ( (binary_expression "(local_6c == (bfd_section *)iVar22) ||\n             (pcVar27 = ptr->othersym, pcVar27 == (char *)0x0)" (parenthesized_expression "(local_6c == (bfd_section *)iVar22)" ( (binary_expression "local_6c == (bfd_section *)iVar22" identifier == (cast_expression "(bfd_section *)iVar22" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) || (parenthesized_expression "(pcVar27 = ptr->othersym, pcVar27 == (char *)0x0)" ( (comma_expression "pcVar27 = ptr->othersym, pcVar27 == (char *)0x0" (assignment_expression "pcVar27 = ptr->othersym" identifier = (field_expression "ptr->othersym" identifier -> field_identifier)) , (binary_expression "pcVar27 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_000197a8;" goto statement_identifier ;)) })) (expression_statement "free(pcVar27);" (call_expression "free(pcVar27)" identifier (argument_list "(pcVar27)" ( identifier ))) ;) (expression_statement "ptr->othersym = "";" (assignment_expression "ptr->othersym = """ (field_expression "ptr->othersym" identifier -> field_identifier) = (string_literal """" " ")) ;) (expression_statement "ppaVar3 = ppaVar34 + local_8c;" (assignment_expression "ppaVar3 = ppaVar34 + local_8c" identifier = (binary_expression "ppaVar34 + local_8c" identifier + identifier)) ;) (expression_statement "local_8c = local_8c + 1;" (assignment_expression "local_8c = local_8c + 1" identifier = (binary_expression "local_8c + 1" identifier + number_literal)) ;) (expression_statement "paVar36 = create_new_symbol(ptr,obfd);" (assignment_expression "paVar36 = create_new_symbol(ptr,obfd)" identifier = (call_expression "create_new_symbol(ptr,obfd)" identifier (argument_list "(ptr,obfd)" ( identifier , identifier )))) ;) (expression_statement "*ppaVar3 = paVar36;" (assignment_expression "*ppaVar3 = paVar36" (pointer_expression "*ppaVar3" * identifier) = identifier) ;) })) (labeled_statement "LAB_000197a8:\n      iVar22 = htab_elements(redefine_specific_htab);" statement_identifier : (expression_statement "iVar22 = htab_elements(redefine_specific_htab);" (assignment_expression "iVar22 = htab_elements(redefine_specific_htab)" identifier = (call_expression "htab_elements(redefine_specific_htab)" identifier (argument_list "(redefine_specific_htab)" ( identifier )))) ;)) (expression_statement "pbVar56 = pbVar39;" (assignment_expression "pbVar56 = pbVar39" identifier = identifier) ;) (if_statement "if ((iVar22 != 0) || (section_rename_list != (section_rename *)0x0)) {\n        local_30 = 0;\n        contents = pbVar39;\n        iVar22 = htab_find(redefine_specific_htab,&contents);\n        if (((iVar22 == 0) || (pbVar56 = *(bfd_byte **)(iVar22 + 4), pbVar39 == pbVar56)) &&\n           (psVar18 = section_rename_list, (uVar48 & 0x100) != 0)) {\n          for (; pbVar56 = pbVar39, psVar18 != (section_rename *)0x0; psVar18 = psVar18->next) {\n            iVar22 = strcmp(psVar18->old_name,(char *)pbVar39);\n            if (iVar22 == 0) {\n              pbVar56 = (bfd_byte *)psVar18->new_name;\n              break;\n            }\n          }\n        }\n        paVar40->name = (char *)pbVar56;\n      }" if (parenthesized_expression "((iVar22 != 0) || (section_rename_list != (section_rename *)0x0))" ( (binary_expression "(iVar22 != 0) || (section_rename_list != (section_rename *)0x0)" (parenthesized_expression "(iVar22 != 0)" ( (binary_expression "iVar22 != 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_30 = 0;\n        contents = pbVar39;\n        iVar22 = htab_find(redefine_specific_htab,&contents);\n        if (((iVar22 == 0) || (pbVar56 = *(bfd_byte **)(iVar22 + 4), pbVar39 == pbVar56)) &&\n           (psVar18 = section_rename_list, (uVar48 & 0x100) != 0)) {\n          for (; pbVar56 = pbVar39, psVar18 != (section_rename *)0x0; psVar18 = psVar18->next) {\n            iVar22 = strcmp(psVar18->old_name,(char *)pbVar39);\n            if (iVar22 == 0) {\n              pbVar56 = (bfd_byte *)psVar18->new_name;\n              break;\n            }\n          }\n        }\n        paVar40->name = (char *)pbVar56;\n      }" { (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "contents = pbVar39;" (assignment_expression "contents = pbVar39" identifier = identifier) ;) (expression_statement "iVar22 = htab_find(redefine_specific_htab,&contents);" (assignment_expression "iVar22 = htab_find(redefine_specific_htab,&contents)" identifier = (call_expression "htab_find(redefine_specific_htab,&contents)" identifier (argument_list "(redefine_specific_htab,&contents)" ( identifier , (pointer_expression "&contents" & identifier) )))) ;) (if_statement "if (((iVar22 == 0) || (pbVar56 = *(bfd_byte **)(iVar22 + 4), pbVar39 == pbVar56)) &&\n           (psVar18 = section_rename_list, (uVar48 & 0x100) != 0)) {\n          for (; pbVar56 = pbVar39, psVar18 != (section_rename *)0x0; psVar18 = psVar18->next) {\n            iVar22 = strcmp(psVar18->old_name,(char *)pbVar39);\n            if (iVar22 == 0) {\n              pbVar56 = (bfd_byte *)psVar18->new_name;\n              break;\n            }\n          }\n        }" if (parenthesized_expression "(((iVar22 == 0) || (pbVar56 = *(bfd_byte **)(iVar22 + 4), pbVar39 == pbVar56)) &&\n           (psVar18 = section_rename_list, (uVar48 & 0x100) != 0))" ( (binary_expression "((iVar22 == 0) || (pbVar56 = *(bfd_byte **)(iVar22 + 4), pbVar39 == pbVar56)) &&\n           (psVar18 = section_rename_list, (uVar48 & 0x100) != 0)" (parenthesized_expression "((iVar22 == 0) || (pbVar56 = *(bfd_byte **)(iVar22 + 4), pbVar39 == pbVar56))" ( (binary_expression "(iVar22 == 0) || (pbVar56 = *(bfd_byte **)(iVar22 + 4), pbVar39 == pbVar56)" (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) || (parenthesized_expression "(pbVar56 = *(bfd_byte **)(iVar22 + 4), pbVar39 == pbVar56)" ( (comma_expression "pbVar56 = *(bfd_byte **)(iVar22 + 4), pbVar39 == pbVar56" (assignment_expression "pbVar56 = *(bfd_byte **)(iVar22 + 4)" identifier = (pointer_expression "*(bfd_byte **)(iVar22 + 4)" * (cast_expression "(bfd_byte **)(iVar22 + 4)" ( (type_descriptor "bfd_byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + 4)" ( (binary_expression "iVar22 + 4" identifier + number_literal) ))))) , (binary_expression "pbVar39 == pbVar56" identifier == identifier)) ))) )) && (parenthesized_expression "(psVar18 = section_rename_list, (uVar48 & 0x100) != 0)" ( (comma_expression "psVar18 = section_rename_list, (uVar48 & 0x100) != 0" (assignment_expression "psVar18 = section_rename_list" identifier = identifier) , (binary_expression "(uVar48 & 0x100) != 0" (parenthesized_expression "(uVar48 & 0x100)" ( (binary_expression "uVar48 & 0x100" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n          for (; pbVar56 = pbVar39, psVar18 != (section_rename *)0x0; psVar18 = psVar18->next) {\n            iVar22 = strcmp(psVar18->old_name,(char *)pbVar39);\n            if (iVar22 == 0) {\n              pbVar56 = (bfd_byte *)psVar18->new_name;\n              break;\n            }\n          }\n        }" { (for_statement "for (; pbVar56 = pbVar39, psVar18 != (section_rename *)0x0; psVar18 = psVar18->next) {\n            iVar22 = strcmp(psVar18->old_name,(char *)pbVar39);\n            if (iVar22 == 0) {\n              pbVar56 = (bfd_byte *)psVar18->new_name;\n              break;\n            }\n          }" for ( ; (comma_expression "pbVar56 = pbVar39, psVar18 != (section_rename *)0x0" (assignment_expression "pbVar56 = pbVar39" identifier = identifier) , (binary_expression "psVar18 != (section_rename *)0x0" identifier != (cast_expression "(section_rename *)0x0" ( (type_descriptor "section_rename *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "psVar18 = psVar18->next" identifier = (field_expression "psVar18->next" identifier -> field_identifier)) ) (compound_statement "{\n            iVar22 = strcmp(psVar18->old_name,(char *)pbVar39);\n            if (iVar22 == 0) {\n              pbVar56 = (bfd_byte *)psVar18->new_name;\n              break;\n            }\n          }" { (expression_statement "iVar22 = strcmp(psVar18->old_name,(char *)pbVar39);" (assignment_expression "iVar22 = strcmp(psVar18->old_name,(char *)pbVar39)" identifier = (call_expression "strcmp(psVar18->old_name,(char *)pbVar39)" identifier (argument_list "(psVar18->old_name,(char *)pbVar39)" ( (field_expression "psVar18->old_name" identifier -> field_identifier) , (cast_expression "(char *)pbVar39" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (iVar22 == 0) {\n              pbVar56 = (bfd_byte *)psVar18->new_name;\n              break;\n            }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\n              pbVar56 = (bfd_byte *)psVar18->new_name;\n              break;\n            }" { (expression_statement "pbVar56 = (bfd_byte *)psVar18->new_name;" (assignment_expression "pbVar56 = (bfd_byte *)psVar18->new_name" identifier = (cast_expression "(bfd_byte *)psVar18->new_name" ( (type_descriptor "bfd_byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "psVar18->new_name" identifier -> field_identifier))) ;) (break_statement "break;" break ;) })) })) })) (expression_statement "paVar40->name = (char *)pbVar56;" (assignment_expression "paVar40->name = (char *)pbVar56" (field_expression "paVar40->name" identifier -> field_identifier) = (cast_expression "(char *)pbVar56" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "pcVar27 = prefix_symbols_string;" (assignment_expression "pcVar27 = prefix_symbols_string" identifier = identifier) ;) (expression_statement "bVar5 = ibfd->xvec->symbol_leading_char;" (assignment_expression "bVar5 = 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 (*pbVar56 == bVar5) {\n        if (change_leading_char == 0) {\n          if ((remove_leading_char != 0) &&\n             ((((uVar48 & 0x82) != 0 || (pbVar50 == pbVar35)) ||\n              ((paVar40->section->flags & 0x1000) != 0)))) {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n          }\nLAB_0001982b:\n          if (pcVar27 != (char *)0x0) {\n            sVar37 = strlen(pcVar27);\n            sVar38 = strlen((char *)pbVar56);\n            pbVar39 = (bfd_byte *)xmalloc(sVar37 + 2 + sVar38);\n            local_6c = (bfd_section *)pbVar39;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          bVar5 = *(bfd_byte *)(((bfd_section *)obfd)->id + 0x18);\n          if (bVar5 == '\0') {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n            goto LAB_0001982b;\n          }\n          if (prefix_symbols_string != (char *)0x0) {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n            goto LAB_00019ab1;\n          }\n          *pbVar56 = bVar5;\n          paVar40->name = (char *)pbVar56;\n        }\n      }\n      else {\n        if (((change_leading_char == 0) || (*(char *)(((bfd_section *)obfd)->id + 0x18) == '\0')) ||\n           (bVar5 != '\0')) goto LAB_0001982b;\nLAB_00019ab1:\n        sVar37 = strlen(pcVar27);\n        sVar38 = strlen((char *)pbVar56);\n        pbVar39 = (bfd_byte *)xmalloc(sVar37 + 2 + sVar38);\n        local_6c = (bfd_section *)(pbVar39 + 1);\n        *pbVar39 = *(bfd_byte *)(((bfd_section *)obfd)->id + 0x18);\nLAB_00019858:\n        pcVar27 = prefix_symbols_string;\n        if (prefix_symbols_string != (char *)0x0) {\n          strcpy((char *)local_6c,prefix_symbols_string);\n          sVar37 = strlen(pcVar27);\n          local_6c = (bfd_section *)((int)local_6c + sVar37);\n        }\n        strcpy((char *)local_6c,(char *)pbVar56);\n        paVar40->name = (char *)pbVar39;\n        pbVar56 = pbVar39;\n      }" if (parenthesized_expression "(*pbVar56 == bVar5)" ( (binary_expression "*pbVar56 == bVar5" (pointer_expression "*pbVar56" * identifier) == identifier) )) (compound_statement "{\n        if (change_leading_char == 0) {\n          if ((remove_leading_char != 0) &&\n             ((((uVar48 & 0x82) != 0 || (pbVar50 == pbVar35)) ||\n              ((paVar40->section->flags & 0x1000) != 0)))) {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n          }\nLAB_0001982b:\n          if (pcVar27 != (char *)0x0) {\n            sVar37 = strlen(pcVar27);\n            sVar38 = strlen((char *)pbVar56);\n            pbVar39 = (bfd_byte *)xmalloc(sVar37 + 2 + sVar38);\n            local_6c = (bfd_section *)pbVar39;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          bVar5 = *(bfd_byte *)(((bfd_section *)obfd)->id + 0x18);\n          if (bVar5 == '\0') {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n            goto LAB_0001982b;\n          }\n          if (prefix_symbols_string != (char *)0x0) {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n            goto LAB_00019ab1;\n          }\n          *pbVar56 = bVar5;\n          paVar40->name = (char *)pbVar56;\n        }\n      }" { (if_statement "if (change_leading_char == 0) {\n          if ((remove_leading_char != 0) &&\n             ((((uVar48 & 0x82) != 0 || (pbVar50 == pbVar35)) ||\n              ((paVar40->section->flags & 0x1000) != 0)))) {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n          }\nLAB_0001982b:\n          if (pcVar27 != (char *)0x0) {\n            sVar37 = strlen(pcVar27);\n            sVar38 = strlen((char *)pbVar56);\n            pbVar39 = (bfd_byte *)xmalloc(sVar37 + 2 + sVar38);\n            local_6c = (bfd_section *)pbVar39;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          bVar5 = *(bfd_byte *)(((bfd_section *)obfd)->id + 0x18);\n          if (bVar5 == '\0') {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n            goto LAB_0001982b;\n          }\n          if (prefix_symbols_string != (char *)0x0) {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n            goto LAB_00019ab1;\n          }\n          *pbVar56 = bVar5;\n          paVar40->name = (char *)pbVar56;\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             ((((uVar48 & 0x82) != 0 || (pbVar50 == pbVar35)) ||\n              ((paVar40->section->flags & 0x1000) != 0)))) {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n          }\nLAB_0001982b:\n          if (pcVar27 != (char *)0x0) {\n            sVar37 = strlen(pcVar27);\n            sVar38 = strlen((char *)pbVar56);\n            pbVar39 = (bfd_byte *)xmalloc(sVar37 + 2 + sVar38);\n            local_6c = (bfd_section *)pbVar39;\n            goto LAB_00019858;\n          }\n        }" { (if_statement "if ((remove_leading_char != 0) &&\n             ((((uVar48 & 0x82) != 0 || (pbVar50 == pbVar35)) ||\n              ((paVar40->section->flags & 0x1000) != 0)))) {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n          }" if (parenthesized_expression "((remove_leading_char != 0) &&\n             ((((uVar48 & 0x82) != 0 || (pbVar50 == pbVar35)) ||\n              ((paVar40->section->flags & 0x1000) != 0))))" ( (binary_expression "(remove_leading_char != 0) &&\n             ((((uVar48 & 0x82) != 0 || (pbVar50 == pbVar35)) ||\n              ((paVar40->section->flags & 0x1000) != 0)))" (parenthesized_expression "(remove_leading_char != 0)" ( (binary_expression "remove_leading_char != 0" identifier != number_literal) )) && (parenthesized_expression "((((uVar48 & 0x82) != 0 || (pbVar50 == pbVar35)) ||\n              ((paVar40->section->flags & 0x1000) != 0)))" ( (parenthesized_expression "(((uVar48 & 0x82) != 0 || (pbVar50 == pbVar35)) ||\n              ((paVar40->section->flags & 0x1000) != 0))" ( (binary_expression "((uVar48 & 0x82) != 0 || (pbVar50 == pbVar35)) ||\n              ((paVar40->section->flags & 0x1000) != 0)" (parenthesized_expression "((uVar48 & 0x82) != 0 || (pbVar50 == pbVar35))" ( (binary_expression "(uVar48 & 0x82) != 0 || (pbVar50 == pbVar35)" (binary_expression "(uVar48 & 0x82) != 0" (parenthesized_expression "(uVar48 & 0x82)" ( (binary_expression "uVar48 & 0x82" identifier & number_literal) )) != number_literal) || (parenthesized_expression "(pbVar50 == pbVar35)" ( (binary_expression "pbVar50 == pbVar35" identifier == identifier) ))) )) || (parenthesized_expression "((paVar40->section->flags & 0x1000) != 0)" ( (binary_expression "(paVar40->section->flags & 0x1000) != 0" (parenthesized_expression "(paVar40->section->flags & 0x1000)" ( (binary_expression "paVar40->section->flags & 0x1000" (field_expression "paVar40->section->flags" (field_expression "paVar40->section" identifier -> field_identifier) -> field_identifier) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n          }" { (expression_statement "pbVar56 = pbVar56 + 1;" (assignment_expression "pbVar56 = pbVar56 + 1" identifier = (binary_expression "pbVar56 + 1" identifier + number_literal)) ;) (expression_statement "paVar40->name = (char *)pbVar56;" (assignment_expression "paVar40->name = (char *)pbVar56" (field_expression "paVar40->name" identifier -> field_identifier) = (cast_expression "(char *)pbVar56" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (labeled_statement "LAB_0001982b:\n          if (pcVar27 != (char *)0x0) {\n            sVar37 = strlen(pcVar27);\n            sVar38 = strlen((char *)pbVar56);\n            pbVar39 = (bfd_byte *)xmalloc(sVar37 + 2 + sVar38);\n            local_6c = (bfd_section *)pbVar39;\n            goto LAB_00019858;\n          }" statement_identifier : (if_statement "if (pcVar27 != (char *)0x0) {\n            sVar37 = strlen(pcVar27);\n            sVar38 = strlen((char *)pbVar56);\n            pbVar39 = (bfd_byte *)xmalloc(sVar37 + 2 + sVar38);\n            local_6c = (bfd_section *)pbVar39;\n            goto LAB_00019858;\n          }" if (parenthesized_expression "(pcVar27 != (char *)0x0)" ( (binary_expression "pcVar27 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            sVar37 = strlen(pcVar27);\n            sVar38 = strlen((char *)pbVar56);\n            pbVar39 = (bfd_byte *)xmalloc(sVar37 + 2 + sVar38);\n            local_6c = (bfd_section *)pbVar39;\n            goto LAB_00019858;\n          }" { (expression_statement "sVar37 = strlen(pcVar27);" (assignment_expression "sVar37 = strlen(pcVar27)" identifier = (call_expression "strlen(pcVar27)" identifier (argument_list "(pcVar27)" ( identifier )))) ;) (expression_statement "sVar38 = strlen((char *)pbVar56);" (assignment_expression "sVar38 = strlen((char *)pbVar56)" identifier = (call_expression "strlen((char *)pbVar56)" identifier (argument_list "((char *)pbVar56)" ( (cast_expression "(char *)pbVar56" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pbVar39 = (bfd_byte *)xmalloc(sVar37 + 2 + sVar38);" (assignment_expression "pbVar39 = (bfd_byte *)xmalloc(sVar37 + 2 + sVar38)" identifier = (cast_expression "(bfd_byte *)xmalloc(sVar37 + 2 + sVar38)" ( (type_descriptor "bfd_byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar37 + 2 + sVar38)" identifier (argument_list "(sVar37 + 2 + sVar38)" ( (binary_expression "sVar37 + 2 + sVar38" (binary_expression "sVar37 + 2" identifier + number_literal) + identifier) ))))) ;) (expression_statement "local_6c = (bfd_section *)pbVar39;" (assignment_expression "local_6c = (bfd_section *)pbVar39" identifier = (cast_expression "(bfd_section *)pbVar39" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_00019858;" goto statement_identifier ;) }))) }) (else_clause "else {\n          bVar5 = *(bfd_byte *)(((bfd_section *)obfd)->id + 0x18);\n          if (bVar5 == '\0') {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n            goto LAB_0001982b;\n          }\n          if (prefix_symbols_string != (char *)0x0) {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n            goto LAB_00019ab1;\n          }\n          *pbVar56 = bVar5;\n          paVar40->name = (char *)pbVar56;\n        }" else (compound_statement "{\n          bVar5 = *(bfd_byte *)(((bfd_section *)obfd)->id + 0x18);\n          if (bVar5 == '\0') {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n            goto LAB_0001982b;\n          }\n          if (prefix_symbols_string != (char *)0x0) {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n            goto LAB_00019ab1;\n          }\n          *pbVar56 = bVar5;\n          paVar40->name = (char *)pbVar56;\n        }" { (expression_statement "bVar5 = *(bfd_byte *)(((bfd_section *)obfd)->id + 0x18);" (assignment_expression "bVar5 = *(bfd_byte *)(((bfd_section *)obfd)->id + 0x18)" identifier = (pointer_expression "*(bfd_byte *)(((bfd_section *)obfd)->id + 0x18)" * (cast_expression "(bfd_byte *)(((bfd_section *)obfd)->id + 0x18)" ( (type_descriptor "bfd_byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((bfd_section *)obfd)->id + 0x18)" ( (binary_expression "((bfd_section *)obfd)->id + 0x18" (field_expression "((bfd_section *)obfd)->id" (parenthesized_expression "((bfd_section *)obfd)" ( (cast_expression "(bfd_section *)obfd" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) + number_literal) ))))) ;) (if_statement "if (bVar5 == '\0') {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n            goto LAB_0001982b;\n          }" if (parenthesized_expression "(bVar5 == '\0')" ( (binary_expression "bVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n            goto LAB_0001982b;\n          }" { (expression_statement "pbVar56 = pbVar56 + 1;" (assignment_expression "pbVar56 = pbVar56 + 1" identifier = (binary_expression "pbVar56 + 1" identifier + number_literal)) ;) (expression_statement "paVar40->name = (char *)pbVar56;" (assignment_expression "paVar40->name = (char *)pbVar56" (field_expression "paVar40->name" identifier -> field_identifier) = (cast_expression "(char *)pbVar56" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_0001982b;" goto statement_identifier ;) })) (if_statement "if (prefix_symbols_string != (char *)0x0) {\n            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n            goto LAB_00019ab1;\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            pbVar56 = pbVar56 + 1;\n            paVar40->name = (char *)pbVar56;\n            goto LAB_00019ab1;\n          }" { (expression_statement "pbVar56 = pbVar56 + 1;" (assignment_expression "pbVar56 = pbVar56 + 1" identifier = (binary_expression "pbVar56 + 1" identifier + number_literal)) ;) (expression_statement "paVar40->name = (char *)pbVar56;" (assignment_expression "paVar40->name = (char *)pbVar56" (field_expression "paVar40->name" identifier -> field_identifier) = (cast_expression "(char *)pbVar56" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_00019ab1;" goto statement_identifier ;) })) (expression_statement "*pbVar56 = bVar5;" (assignment_expression "*pbVar56 = bVar5" (pointer_expression "*pbVar56" * identifier) = identifier) ;) (expression_statement "paVar40->name = (char *)pbVar56;" (assignment_expression "paVar40->name = (char *)pbVar56" (field_expression "paVar40->name" identifier -> field_identifier) = (cast_expression "(char *)pbVar56" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) }))) }) (else_clause "else {\n        if (((change_leading_char == 0) || (*(char *)(((bfd_section *)obfd)->id + 0x18) == '\0')) ||\n           (bVar5 != '\0')) goto LAB_0001982b;\nLAB_00019ab1:\n        sVar37 = strlen(pcVar27);\n        sVar38 = strlen((char *)pbVar56);\n        pbVar39 = (bfd_byte *)xmalloc(sVar37 + 2 + sVar38);\n        local_6c = (bfd_section *)(pbVar39 + 1);\n        *pbVar39 = *(bfd_byte *)(((bfd_section *)obfd)->id + 0x18);\nLAB_00019858:\n        pcVar27 = prefix_symbols_string;\n        if (prefix_symbols_string != (char *)0x0) {\n          strcpy((char *)local_6c,prefix_symbols_string);\n          sVar37 = strlen(pcVar27);\n          local_6c = (bfd_section *)((int)local_6c + sVar37);\n        }\n        strcpy((char *)local_6c,(char *)pbVar56);\n        paVar40->name = (char *)pbVar39;\n        pbVar56 = pbVar39;\n      }" else (compound_statement "{\n        if (((change_leading_char == 0) || (*(char *)(((bfd_section *)obfd)->id + 0x18) == '\0')) ||\n           (bVar5 != '\0')) goto LAB_0001982b;\nLAB_00019ab1:\n        sVar37 = strlen(pcVar27);\n        sVar38 = strlen((char *)pbVar56);\n        pbVar39 = (bfd_byte *)xmalloc(sVar37 + 2 + sVar38);\n        local_6c = (bfd_section *)(pbVar39 + 1);\n        *pbVar39 = *(bfd_byte *)(((bfd_section *)obfd)->id + 0x18);\nLAB_00019858:\n        pcVar27 = prefix_symbols_string;\n        if (prefix_symbols_string != (char *)0x0) {\n          strcpy((char *)local_6c,prefix_symbols_string);\n          sVar37 = strlen(pcVar27);\n          local_6c = (bfd_section *)((int)local_6c + sVar37);\n        }\n        strcpy((char *)local_6c,(char *)pbVar56);\n        paVar40->name = (char *)pbVar39;\n        pbVar56 = pbVar39;\n      }" { (if_statement "if (((change_leading_char == 0) || (*(char *)(((bfd_section *)obfd)->id + 0x18) == '\0')) ||\n           (bVar5 != '\0')) goto LAB_0001982b;" if (parenthesized_expression "(((change_leading_char == 0) || (*(char *)(((bfd_section *)obfd)->id + 0x18) == '\0')) ||\n           (bVar5 != '\0'))" ( (binary_expression "((change_leading_char == 0) || (*(char *)(((bfd_section *)obfd)->id + 0x18) == '\0')) ||\n           (bVar5 != '\0')" (parenthesized_expression "((change_leading_char == 0) || (*(char *)(((bfd_section *)obfd)->id + 0x18) == '\0'))" ( (binary_expression "(change_leading_char == 0) || (*(char *)(((bfd_section *)obfd)->id + 0x18) == '\0')" (parenthesized_expression "(change_leading_char == 0)" ( (binary_expression "change_leading_char == 0" identifier == number_literal) )) || (parenthesized_expression "(*(char *)(((bfd_section *)obfd)->id + 0x18) == '\0')" ( (binary_expression "*(char *)(((bfd_section *)obfd)->id + 0x18) == '\0'" (pointer_expression "*(char *)(((bfd_section *)obfd)->id + 0x18)" * (cast_expression "(char *)(((bfd_section *)obfd)->id + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((bfd_section *)obfd)->id + 0x18)" ( (binary_expression "((bfd_section *)obfd)->id + 0x18" (field_expression "((bfd_section *)obfd)->id" (parenthesized_expression "((bfd_section *)obfd)" ( (cast_expression "(bfd_section *)obfd" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(bVar5 != '\0')" ( (binary_expression "bVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_0001982b;" goto statement_identifier ;)) (labeled_statement "LAB_00019ab1:\n        sVar37 = strlen(pcVar27);" statement_identifier : (expression_statement "sVar37 = strlen(pcVar27);" (assignment_expression "sVar37 = strlen(pcVar27)" identifier = (call_expression "strlen(pcVar27)" identifier (argument_list "(pcVar27)" ( identifier )))) ;)) (expression_statement "sVar38 = strlen((char *)pbVar56);" (assignment_expression "sVar38 = strlen((char *)pbVar56)" identifier = (call_expression "strlen((char *)pbVar56)" identifier (argument_list "((char *)pbVar56)" ( (cast_expression "(char *)pbVar56" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pbVar39 = (bfd_byte *)xmalloc(sVar37 + 2 + sVar38);" (assignment_expression "pbVar39 = (bfd_byte *)xmalloc(sVar37 + 2 + sVar38)" identifier = (cast_expression "(bfd_byte *)xmalloc(sVar37 + 2 + sVar38)" ( (type_descriptor "bfd_byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar37 + 2 + sVar38)" identifier (argument_list "(sVar37 + 2 + sVar38)" ( (binary_expression "sVar37 + 2 + sVar38" (binary_expression "sVar37 + 2" identifier + number_literal) + identifier) ))))) ;) (expression_statement "local_6c = (bfd_section *)(pbVar39 + 1);" (assignment_expression "local_6c = (bfd_section *)(pbVar39 + 1)" identifier = (cast_expression "(bfd_section *)(pbVar39 + 1)" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar39 + 1)" ( (binary_expression "pbVar39 + 1" identifier + number_literal) )))) ;) (expression_statement "*pbVar39 = *(bfd_byte *)(((bfd_section *)obfd)->id + 0x18);" (assignment_expression "*pbVar39 = *(bfd_byte *)(((bfd_section *)obfd)->id + 0x18)" (pointer_expression "*pbVar39" * identifier) = (pointer_expression "*(bfd_byte *)(((bfd_section *)obfd)->id + 0x18)" * (cast_expression "(bfd_byte *)(((bfd_section *)obfd)->id + 0x18)" ( (type_descriptor "bfd_byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((bfd_section *)obfd)->id + 0x18)" ( (binary_expression "((bfd_section *)obfd)->id + 0x18" (field_expression "((bfd_section *)obfd)->id" (parenthesized_expression "((bfd_section *)obfd)" ( (cast_expression "(bfd_section *)obfd" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) + number_literal) ))))) ;) (labeled_statement "LAB_00019858:\n        pcVar27 = prefix_symbols_string;" statement_identifier : (expression_statement "pcVar27 = prefix_symbols_string;" (assignment_expression "pcVar27 = prefix_symbols_string" identifier = identifier) ;)) (if_statement "if (prefix_symbols_string != (char *)0x0) {\n          strcpy((char *)local_6c,prefix_symbols_string);\n          sVar37 = strlen(pcVar27);\n          local_6c = (bfd_section *)((int)local_6c + sVar37);\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 *)local_6c,prefix_symbols_string);\n          sVar37 = strlen(pcVar27);\n          local_6c = (bfd_section *)((int)local_6c + sVar37);\n        }" { (expression_statement "strcpy((char *)local_6c,prefix_symbols_string);" (call_expression "strcpy((char *)local_6c,prefix_symbols_string)" identifier (argument_list "((char *)local_6c,prefix_symbols_string)" ( (cast_expression "(char *)local_6c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "sVar37 = strlen(pcVar27);" (assignment_expression "sVar37 = strlen(pcVar27)" identifier = (call_expression "strlen(pcVar27)" identifier (argument_list "(pcVar27)" ( identifier )))) ;) (expression_statement "local_6c = (bfd_section *)((int)local_6c + sVar37);" (assignment_expression "local_6c = (bfd_section *)((int)local_6c + sVar37)" identifier = (cast_expression "(bfd_section *)((int)local_6c + sVar37)" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_6c + sVar37)" ( (binary_expression "(int)local_6c + sVar37" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) })) (expression_statement "strcpy((char *)local_6c,(char *)pbVar56);" (call_expression "strcpy((char *)local_6c,(char *)pbVar56)" identifier (argument_list "((char *)local_6c,(char *)pbVar56)" ( (cast_expression "(char *)local_6c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)pbVar56" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "paVar40->name = (char *)pbVar39;" (assignment_expression "paVar40->name = (char *)pbVar39" (field_expression "paVar40->name" identifier -> field_identifier) = (cast_expression "(char *)pbVar39" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar56 = pbVar39;" (assignment_expression "pbVar56 = pbVar39" identifier = identifier) ;) }))) (if_statement "if (strip_symbols == STRIP_ALL) goto LAB_00019928;" if (parenthesized_expression "(strip_symbols == STRIP_ALL)" ( (binary_expression "strip_symbols == STRIP_ALL" identifier == identifier) )) (goto_statement "goto LAB_00019928;" goto statement_identifier ;)) (if_statement "if ((uVar48 & 0x20) == 0) {\n        if (((uVar48 & 0x100) == 0) || (((*paVar40->section->symbol_ptr_ptr)->flags & 0x20) == 0)) {\n          if ((((uVar63 >> 5 & 0x42) == 0) &&\n              (((uVar48 & 0x82) != 0 || ((paVar40->section->flags & 0x1000) != 0)))) ||\n             (iVar22 = bfd_decode_symclass(paVar40), iVar22 == 0x49)) {\nLAB_00019b80:\n            bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n            if (bVar25 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar48 & 0x82) == 0) &&\n                   (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0))) &&\n                  ((paVar40->section->flags & 0x1000) == 0)) {\n            if ((uVar48 & 4) == 0) {\n              if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                  (pvVar75 = paVar40->section->used_by_bfd, pvVar75 == (void *)0x0)) ||\n                 (*(int *)((int)pvVar75 + 0x2c) == 0)) {\n                if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                goto LAB_00019928;\n                if (discard_locals == LOCALS_START_L) {\n                  iVar22 = bfd_is_local_label(ibfd,paVar40,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar22 = convert_debugging;\n            if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0001a753:\n              if (iVar22 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (strip_symbols != STRIP_UNNEEDED) goto LAB_00019b80;\n        }\n        else {\n          bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n          if (bVar25 != 0) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "not stripping symbol `%s\' because it is named in a relocation"\n                                        ,5,bVar25);\n            non_fatal(pcVar27,pbVar56);\n            status = 1;\n          }\nLAB_00019910:\n          bVar25 = is_specified_symbol((char *)pbVar56,strip_unneeded_htab);\n          if (bVar25 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((keep_file_symbols != 0) && ((uVar48 & 0x4000) != 0)) ||\n           (bVar25 = is_specified_symbol((char *)pbVar56,keep_specific_htab), bVar25 != 0))\n        goto LAB_0001994f;\n      }\n      else {\n        bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n        if (bVar25 != 0) {\n          pcVar27 = (char *)dcgettext(0,\n                                      "not stripping symbol `%s\' because it is named in a relocation"\n                                      ,5);\n          non_fatal(pcVar27,pbVar56);\n          status = 1;\n        }\nLAB_0001994f:\n        bVar25 = is_strip_section((bfd *)in_stack_ffffff24,in_stack_ffffff28);\n        if (bVar25 == 0) {\n          if (((uVar48 & 2) != 0) &&\n             ((weaken != 0 ||\n              (bVar25 = is_specified_symbol((char *)pbVar56,weaken_specific_htab), bVar25 != 0)))) {\n            paVar40->flags = paVar40->flags & 0xfffffffd | 0x80;\n          }\n          if (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0)) {\n            if (((uVar48 & 0x82) != 0) &&\n               (((bVar25 = is_specified_symbol((char *)pbVar56,localize_specific_htab), bVar25 != 0\n                 || ((iVar22 = htab_elements(keepglobal_specific_htab), iVar22 != 0 &&\n                     (bVar25 = is_specified_symbol((char *)pbVar56,keepglobal_specific_htab),\n                     bVar25 == 0)))) ||\n                ((localize_hidden != 0 &&\n                 ((((pbVar46 = paVar40->the_bfd, pbVar46 != (bfd *)0x0 &&\n                    (pbVar46->xvec->flavour == bfd_target_elf_flavour)) &&\n                   ((pbVar46->tdata).aout_data != (aout_data_struct *)0x0)) &&\n                  ((*(byte *)((int)&paVar40[1].section + 1) & 3) - 1 < 2)))))))) {\n              paVar40->flags = paVar40->flags & 0xffffff7d | 1;\n            }\n            if (((uVar48 & 1) != 0) &&\n               (bVar25 = is_specified_symbol((char *)pbVar56,globalize_specific_htab), bVar25 != 0))\n            {\n              paVar40->flags = paVar40->flags & 0xfffffffe | 2;\n            }\n          }\n          ppaVar34[local_8c] = paVar40;\n          local_8c = local_8c + 1;\n        }\n      }" if (parenthesized_expression "((uVar48 & 0x20) == 0)" ( (binary_expression "(uVar48 & 0x20) == 0" (parenthesized_expression "(uVar48 & 0x20)" ( (binary_expression "uVar48 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if (((uVar48 & 0x100) == 0) || (((*paVar40->section->symbol_ptr_ptr)->flags & 0x20) == 0)) {\n          if ((((uVar63 >> 5 & 0x42) == 0) &&\n              (((uVar48 & 0x82) != 0 || ((paVar40->section->flags & 0x1000) != 0)))) ||\n             (iVar22 = bfd_decode_symclass(paVar40), iVar22 == 0x49)) {\nLAB_00019b80:\n            bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n            if (bVar25 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar48 & 0x82) == 0) &&\n                   (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0))) &&\n                  ((paVar40->section->flags & 0x1000) == 0)) {\n            if ((uVar48 & 4) == 0) {\n              if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                  (pvVar75 = paVar40->section->used_by_bfd, pvVar75 == (void *)0x0)) ||\n                 (*(int *)((int)pvVar75 + 0x2c) == 0)) {\n                if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                goto LAB_00019928;\n                if (discard_locals == LOCALS_START_L) {\n                  iVar22 = bfd_is_local_label(ibfd,paVar40,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar22 = convert_debugging;\n            if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0001a753:\n              if (iVar22 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (strip_symbols != STRIP_UNNEEDED) goto LAB_00019b80;\n        }\n        else {\n          bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n          if (bVar25 != 0) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "not stripping symbol `%s\' because it is named in a relocation"\n                                        ,5,bVar25);\n            non_fatal(pcVar27,pbVar56);\n            status = 1;\n          }\nLAB_00019910:\n          bVar25 = is_specified_symbol((char *)pbVar56,strip_unneeded_htab);\n          if (bVar25 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((keep_file_symbols != 0) && ((uVar48 & 0x4000) != 0)) ||\n           (bVar25 = is_specified_symbol((char *)pbVar56,keep_specific_htab), bVar25 != 0))\n        goto LAB_0001994f;\n      }" { (if_statement "if (((uVar48 & 0x100) == 0) || (((*paVar40->section->symbol_ptr_ptr)->flags & 0x20) == 0)) {\n          if ((((uVar63 >> 5 & 0x42) == 0) &&\n              (((uVar48 & 0x82) != 0 || ((paVar40->section->flags & 0x1000) != 0)))) ||\n             (iVar22 = bfd_decode_symclass(paVar40), iVar22 == 0x49)) {\nLAB_00019b80:\n            bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n            if (bVar25 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar48 & 0x82) == 0) &&\n                   (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0))) &&\n                  ((paVar40->section->flags & 0x1000) == 0)) {\n            if ((uVar48 & 4) == 0) {\n              if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                  (pvVar75 = paVar40->section->used_by_bfd, pvVar75 == (void *)0x0)) ||\n                 (*(int *)((int)pvVar75 + 0x2c) == 0)) {\n                if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                goto LAB_00019928;\n                if (discard_locals == LOCALS_START_L) {\n                  iVar22 = bfd_is_local_label(ibfd,paVar40,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar22 = convert_debugging;\n            if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0001a753:\n              if (iVar22 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (strip_symbols != STRIP_UNNEEDED) goto LAB_00019b80;\n        }\n        else {\n          bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n          if (bVar25 != 0) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "not stripping symbol `%s\' because it is named in a relocation"\n                                        ,5,bVar25);\n            non_fatal(pcVar27,pbVar56);\n            status = 1;\n          }\nLAB_00019910:\n          bVar25 = is_specified_symbol((char *)pbVar56,strip_unneeded_htab);\n          if (bVar25 == 0) goto LAB_0001994f;\n        }" if (parenthesized_expression "(((uVar48 & 0x100) == 0) || (((*paVar40->section->symbol_ptr_ptr)->flags & 0x20) == 0))" ( (binary_expression "((uVar48 & 0x100) == 0) || (((*paVar40->section->symbol_ptr_ptr)->flags & 0x20) == 0)" (parenthesized_expression "((uVar48 & 0x100) == 0)" ( (binary_expression "(uVar48 & 0x100) == 0" (parenthesized_expression "(uVar48 & 0x100)" ( (binary_expression "uVar48 & 0x100" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(((*paVar40->section->symbol_ptr_ptr)->flags & 0x20) == 0)" ( (binary_expression "((*paVar40->section->symbol_ptr_ptr)->flags & 0x20) == 0" (parenthesized_expression "((*paVar40->section->symbol_ptr_ptr)->flags & 0x20)" ( (binary_expression "(*paVar40->section->symbol_ptr_ptr)->flags & 0x20" (field_expression "(*paVar40->section->symbol_ptr_ptr)->flags" (parenthesized_expression "(*paVar40->section->symbol_ptr_ptr)" ( (pointer_expression "*paVar40->section->symbol_ptr_ptr" * (field_expression "paVar40->section->symbol_ptr_ptr" (field_expression "paVar40->section" identifier -> field_identifier) -> field_identifier)) )) -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          if ((((uVar63 >> 5 & 0x42) == 0) &&\n              (((uVar48 & 0x82) != 0 || ((paVar40->section->flags & 0x1000) != 0)))) ||\n             (iVar22 = bfd_decode_symclass(paVar40), iVar22 == 0x49)) {\nLAB_00019b80:\n            bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n            if (bVar25 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar48 & 0x82) == 0) &&\n                   (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0))) &&\n                  ((paVar40->section->flags & 0x1000) == 0)) {\n            if ((uVar48 & 4) == 0) {\n              if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                  (pvVar75 = paVar40->section->used_by_bfd, pvVar75 == (void *)0x0)) ||\n                 (*(int *)((int)pvVar75 + 0x2c) == 0)) {\n                if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                goto LAB_00019928;\n                if (discard_locals == LOCALS_START_L) {\n                  iVar22 = bfd_is_local_label(ibfd,paVar40,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar22 = convert_debugging;\n            if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0001a753:\n              if (iVar22 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (strip_symbols != STRIP_UNNEEDED) goto LAB_00019b80;\n        }" { (if_statement "if ((((uVar63 >> 5 & 0x42) == 0) &&\n              (((uVar48 & 0x82) != 0 || ((paVar40->section->flags & 0x1000) != 0)))) ||\n             (iVar22 = bfd_decode_symclass(paVar40), iVar22 == 0x49)) {\nLAB_00019b80:\n            bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n            if (bVar25 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar48 & 0x82) == 0) &&\n                   (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0))) &&\n                  ((paVar40->section->flags & 0x1000) == 0)) {\n            if ((uVar48 & 4) == 0) {\n              if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                  (pvVar75 = paVar40->section->used_by_bfd, pvVar75 == (void *)0x0)) ||\n                 (*(int *)((int)pvVar75 + 0x2c) == 0)) {\n                if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                goto LAB_00019928;\n                if (discard_locals == LOCALS_START_L) {\n                  iVar22 = bfd_is_local_label(ibfd,paVar40,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar22 = convert_debugging;\n            if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0001a753:\n              if (iVar22 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (strip_symbols != STRIP_UNNEEDED) goto LAB_00019b80;" if (parenthesized_expression "((((uVar63 >> 5 & 0x42) == 0) &&\n              (((uVar48 & 0x82) != 0 || ((paVar40->section->flags & 0x1000) != 0)))) ||\n             (iVar22 = bfd_decode_symclass(paVar40), iVar22 == 0x49))" ( (binary_expression "(((uVar63 >> 5 & 0x42) == 0) &&\n              (((uVar48 & 0x82) != 0 || ((paVar40->section->flags & 0x1000) != 0)))) ||\n             (iVar22 = bfd_decode_symclass(paVar40), iVar22 == 0x49)" (parenthesized_expression "(((uVar63 >> 5 & 0x42) == 0) &&\n              (((uVar48 & 0x82) != 0 || ((paVar40->section->flags & 0x1000) != 0))))" ( (binary_expression "((uVar63 >> 5 & 0x42) == 0) &&\n              (((uVar48 & 0x82) != 0 || ((paVar40->section->flags & 0x1000) != 0)))" (parenthesized_expression "((uVar63 >> 5 & 0x42) == 0)" ( (binary_expression "(uVar63 >> 5 & 0x42) == 0" (parenthesized_expression "(uVar63 >> 5 & 0x42)" ( (binary_expression "uVar63 >> 5 & 0x42" (binary_expression "uVar63 >> 5" identifier >> number_literal) & number_literal) )) == number_literal) )) && (parenthesized_expression "(((uVar48 & 0x82) != 0 || ((paVar40->section->flags & 0x1000) != 0)))" ( (parenthesized_expression "((uVar48 & 0x82) != 0 || ((paVar40->section->flags & 0x1000) != 0))" ( (binary_expression "(uVar48 & 0x82) != 0 || ((paVar40->section->flags & 0x1000) != 0)" (binary_expression "(uVar48 & 0x82) != 0" (parenthesized_expression "(uVar48 & 0x82)" ( (binary_expression "uVar48 & 0x82" identifier & number_literal) )) != number_literal) || (parenthesized_expression "((paVar40->section->flags & 0x1000) != 0)" ( (binary_expression "(paVar40->section->flags & 0x1000) != 0" (parenthesized_expression "(paVar40->section->flags & 0x1000)" ( (binary_expression "paVar40->section->flags & 0x1000" (field_expression "paVar40->section->flags" (field_expression "paVar40->section" identifier -> field_identifier) -> field_identifier) & number_literal) )) != number_literal) ))) )) ))) )) || (parenthesized_expression "(iVar22 = bfd_decode_symclass(paVar40), iVar22 == 0x49)" ( (comma_expression "iVar22 = bfd_decode_symclass(paVar40), iVar22 == 0x49" (assignment_expression "iVar22 = bfd_decode_symclass(paVar40)" identifier = (call_expression "bfd_decode_symclass(paVar40)" identifier (argument_list "(paVar40)" ( identifier )))) , (binary_expression "iVar22 == 0x49" identifier == number_literal)) ))) )) (compound_statement "{\nLAB_00019b80:\n            bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n            if (bVar25 == 0) goto LAB_00019910;\n          }" { (labeled_statement "LAB_00019b80:\n            bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);" statement_identifier : (expression_statement "bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);" (assignment_expression "bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab)" identifier = (call_expression "is_specified_symbol((char *)pbVar56,strip_specific_htab)" identifier (argument_list "((char *)pbVar56,strip_specific_htab)" ( (cast_expression "(char *)pbVar56" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;)) (if_statement "if (bVar25 == 0) goto LAB_00019910;" if (parenthesized_expression "(bVar25 == 0)" ( (binary_expression "bVar25 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019910;" goto statement_identifier ;)) }) (else_clause "else if ((((uVar48 & 0x82) == 0) &&\n                   (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0))) &&\n                  ((paVar40->section->flags & 0x1000) == 0)) {\n            if ((uVar48 & 4) == 0) {\n              if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                  (pvVar75 = paVar40->section->used_by_bfd, pvVar75 == (void *)0x0)) ||\n                 (*(int *)((int)pvVar75 + 0x2c) == 0)) {\n                if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                goto LAB_00019928;\n                if (discard_locals == LOCALS_START_L) {\n                  iVar22 = bfd_is_local_label(ibfd,paVar40,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar22 = convert_debugging;\n            if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0001a753:\n              if (iVar22 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (strip_symbols != STRIP_UNNEEDED) goto LAB_00019b80;" else (if_statement "if ((((uVar48 & 0x82) == 0) &&\n                   (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0))) &&\n                  ((paVar40->section->flags & 0x1000) == 0)) {\n            if ((uVar48 & 4) == 0) {\n              if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                  (pvVar75 = paVar40->section->used_by_bfd, pvVar75 == (void *)0x0)) ||\n                 (*(int *)((int)pvVar75 + 0x2c) == 0)) {\n                if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                goto LAB_00019928;\n                if (discard_locals == LOCALS_START_L) {\n                  iVar22 = bfd_is_local_label(ibfd,paVar40,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar22 = convert_debugging;\n            if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0001a753:\n              if (iVar22 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (strip_symbols != STRIP_UNNEEDED) goto LAB_00019b80;" if (parenthesized_expression "((((uVar48 & 0x82) == 0) &&\n                   (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0))) &&\n                  ((paVar40->section->flags & 0x1000) == 0))" ( (binary_expression "(((uVar48 & 0x82) == 0) &&\n                   (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0))) &&\n                  ((paVar40->section->flags & 0x1000) == 0)" (parenthesized_expression "(((uVar48 & 0x82) == 0) &&\n                   (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0)))" ( (binary_expression "((uVar48 & 0x82) == 0) &&\n                   (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0))" (parenthesized_expression "((uVar48 & 0x82) == 0)" ( (binary_expression "(uVar48 & 0x82) == 0" (parenthesized_expression "(uVar48 & 0x82)" ( (binary_expression "uVar48 & 0x82" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0))" ( (binary_expression "pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0)" identifier != (cast_expression "(bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0)" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_0003ffc8 + 0xc0)" ( (binary_expression "PTR__bfd_std_section_0003ffc8 + 0xc0" identifier + number_literal) )))) ))) )) && (parenthesized_expression "((paVar40->section->flags & 0x1000) == 0)" ( (binary_expression "(paVar40->section->flags & 0x1000) == 0" (parenthesized_expression "(paVar40->section->flags & 0x1000)" ( (binary_expression "paVar40->section->flags & 0x1000" (field_expression "paVar40->section->flags" (field_expression "paVar40->section" identifier -> field_identifier) -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n            if ((uVar48 & 4) == 0) {\n              if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                  (pvVar75 = paVar40->section->used_by_bfd, pvVar75 == (void *)0x0)) ||\n                 (*(int *)((int)pvVar75 + 0x2c) == 0)) {\n                if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                goto LAB_00019928;\n                if (discard_locals == LOCALS_START_L) {\n                  iVar22 = bfd_is_local_label(ibfd,paVar40,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar22 = convert_debugging;\n            if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0001a753:\n              if (iVar22 == 0) goto LAB_00019b80;\n            }\n          }" { (if_statement "if ((uVar48 & 4) == 0) {\n              if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                  (pvVar75 = paVar40->section->used_by_bfd, pvVar75 == (void *)0x0)) ||\n                 (*(int *)((int)pvVar75 + 0x2c) == 0)) {\n                if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                goto LAB_00019928;\n                if (discard_locals == LOCALS_START_L) {\n                  iVar22 = bfd_is_local_label(ibfd,paVar40,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }" if (parenthesized_expression "((uVar48 & 4) == 0)" ( (binary_expression "(uVar48 & 4) == 0" (parenthesized_expression "(uVar48 & 4)" ( (binary_expression "uVar48 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                  (pvVar75 = paVar40->section->used_by_bfd, pvVar75 == (void *)0x0)) ||\n                 (*(int *)((int)pvVar75 + 0x2c) == 0)) {\n                if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                goto LAB_00019928;\n                if (discard_locals == LOCALS_START_L) {\n                  iVar22 = bfd_is_local_label(ibfd,paVar40,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }" { (if_statement "if (((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                  (pvVar75 = paVar40->section->used_by_bfd, pvVar75 == (void *)0x0)) ||\n                 (*(int *)((int)pvVar75 + 0x2c) == 0)) {\n                if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                goto LAB_00019928;\n                if (discard_locals == LOCALS_START_L) {\n                  iVar22 = bfd_is_local_label(ibfd,paVar40,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }" if (parenthesized_expression "(((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                  (pvVar75 = paVar40->section->used_by_bfd, pvVar75 == (void *)0x0)) ||\n                 (*(int *)((int)pvVar75 + 0x2c) == 0))" ( (binary_expression "((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                  (pvVar75 = paVar40->section->used_by_bfd, pvVar75 == (void *)0x0)) ||\n                 (*(int *)((int)pvVar75 + 0x2c) == 0)" (parenthesized_expression "((ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                  (pvVar75 = paVar40->section->used_by_bfd, pvVar75 == (void *)0x0))" ( (binary_expression "(ibfd->xvec->flavour != bfd_target_coff_flavour) ||\n                  (pvVar75 = paVar40->section->used_by_bfd, pvVar75 == (void *)0x0)" (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 "(pvVar75 = paVar40->section->used_by_bfd, pvVar75 == (void *)0x0)" ( (comma_expression "pvVar75 = paVar40->section->used_by_bfd, pvVar75 == (void *)0x0" (assignment_expression "pvVar75 = paVar40->section->used_by_bfd" identifier = (field_expression "paVar40->section->used_by_bfd" (field_expression "paVar40->section" identifier -> field_identifier) -> field_identifier)) , (binary_expression "pvVar75 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) || (parenthesized_expression "(*(int *)((int)pvVar75 + 0x2c) == 0)" ( (binary_expression "*(int *)((int)pvVar75 + 0x2c) == 0" (pointer_expression "*(int *)((int)pvVar75 + 0x2c)" * (cast_expression "(int *)((int)pvVar75 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar75 + 0x2c)" ( (binary_expression "(int)pvVar75 + 0x2c" (cast_expression "(int)pvVar75" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n                if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                goto LAB_00019928;\n                if (discard_locals == LOCALS_START_L) {\n                  iVar22 = bfd_is_local_label(ibfd,paVar40,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }" { (if_statement "if ((strip_symbols == STRIP_UNNEEDED) || (discard_locals == LOCALS_ALL))\n                goto LAB_00019928;" 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_00019928;" goto statement_identifier ;)) (if_statement "if (discard_locals == LOCALS_START_L) {\n                  iVar22 = bfd_is_local_label(ibfd,paVar40,0,0);\n                  goto joined_r0x0001a753;\n                }" if (parenthesized_expression "(discard_locals == LOCALS_START_L)" ( (binary_expression "discard_locals == LOCALS_START_L" identifier == identifier) )) (compound_statement "{\n                  iVar22 = bfd_is_local_label(ibfd,paVar40,0,0);\n                  goto joined_r0x0001a753;\n                }" { (expression_statement "iVar22 = bfd_is_local_label(ibfd,paVar40,0,0);" (assignment_expression "iVar22 = bfd_is_local_label(ibfd,paVar40,0,0)" identifier = (call_expression "bfd_is_local_label(ibfd,paVar40,0,0)" identifier (argument_list "(ibfd,paVar40,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (goto_statement "goto joined_r0x0001a753;" goto statement_identifier ;) })) })) (goto_statement "goto LAB_00019b80;" goto statement_identifier ;) })) (expression_statement "iVar22 = convert_debugging;" (assignment_expression "iVar22 = convert_debugging" identifier = identifier) ;) (if_statement "if (1 < strip_symbols - STRIP_DEBUG) {\njoined_r0x0001a753:\n              if (iVar22 == 0) goto LAB_00019b80;\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_r0x0001a753:\n              if (iVar22 == 0) goto LAB_00019b80;\n            }" { (labeled_statement "joined_r0x0001a753:\n              if (iVar22 == 0) goto LAB_00019b80;" statement_identifier : (if_statement "if (iVar22 == 0) goto LAB_00019b80;" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019b80;" goto statement_identifier ;))) })) }) (else_clause "else if (strip_symbols != STRIP_UNNEEDED) goto LAB_00019b80;" else (if_statement "if (strip_symbols != STRIP_UNNEEDED) goto LAB_00019b80;" if (parenthesized_expression "(strip_symbols != STRIP_UNNEEDED)" ( (binary_expression "strip_symbols != STRIP_UNNEEDED" identifier != identifier) )) (goto_statement "goto LAB_00019b80;" goto statement_identifier ;)))))) }) (else_clause "else {\n          bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n          if (bVar25 != 0) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "not stripping symbol `%s\' because it is named in a relocation"\n                                        ,5,bVar25);\n            non_fatal(pcVar27,pbVar56);\n            status = 1;\n          }\nLAB_00019910:\n          bVar25 = is_specified_symbol((char *)pbVar56,strip_unneeded_htab);\n          if (bVar25 == 0) goto LAB_0001994f;\n        }" else (compound_statement "{\n          bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n          if (bVar25 != 0) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "not stripping symbol `%s\' because it is named in a relocation"\n                                        ,5,bVar25);\n            non_fatal(pcVar27,pbVar56);\n            status = 1;\n          }\nLAB_00019910:\n          bVar25 = is_specified_symbol((char *)pbVar56,strip_unneeded_htab);\n          if (bVar25 == 0) goto LAB_0001994f;\n        }" { (expression_statement "bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);" (assignment_expression "bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab)" identifier = (call_expression "is_specified_symbol((char *)pbVar56,strip_specific_htab)" identifier (argument_list "((char *)pbVar56,strip_specific_htab)" ( (cast_expression "(char *)pbVar56" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (bVar25 != 0) {\n            pcVar27 = (char *)dcgettext(0,\n                                        "not stripping symbol `%s\' because it is named in a relocation"\n                                        ,5,bVar25);\n            non_fatal(pcVar27,pbVar56);\n            status = 1;\n          }" if (parenthesized_expression "(bVar25 != 0)" ( (binary_expression "bVar25 != 0" identifier != number_literal) )) (compound_statement "{\n            pcVar27 = (char *)dcgettext(0,\n                                        "not stripping symbol `%s\' because it is named in a relocation"\n                                        ,5,bVar25);\n            non_fatal(pcVar27,pbVar56);\n            status = 1;\n          }" { (expression_statement "pcVar27 = (char *)dcgettext(0,\n                                        "not stripping symbol `%s\' because it is named in a relocation"\n                                        ,5,bVar25);" (assignment_expression "pcVar27 = (char *)dcgettext(0,\n                                        "not stripping symbol `%s\' because it is named in a relocation"\n                                        ,5,bVar25)" identifier = (cast_expression "(char *)dcgettext(0,\n                                        "not stripping symbol `%s\' because it is named in a relocation"\n                                        ,5,bVar25)" ( (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,bVar25)" identifier (argument_list "(0,\n                                        "not stripping symbol `%s\' because it is named in a relocation"\n                                        ,5,bVar25)" ( number_literal , (string_literal ""not stripping symbol `%s\' because it is named in a relocation"" " string_content escape_sequence string_content ") , number_literal , identifier ))))) ;) (expression_statement "non_fatal(pcVar27,pbVar56);" (call_expression "non_fatal(pcVar27,pbVar56)" identifier (argument_list "(pcVar27,pbVar56)" ( identifier , identifier ))) ;) (expression_statement "status = 1;" (assignment_expression "status = 1" identifier = number_literal) ;) })) (labeled_statement "LAB_00019910:\n          bVar25 = is_specified_symbol((char *)pbVar56,strip_unneeded_htab);" statement_identifier : (expression_statement "bVar25 = is_specified_symbol((char *)pbVar56,strip_unneeded_htab);" (assignment_expression "bVar25 = is_specified_symbol((char *)pbVar56,strip_unneeded_htab)" identifier = (call_expression "is_specified_symbol((char *)pbVar56,strip_unneeded_htab)" identifier (argument_list "((char *)pbVar56,strip_unneeded_htab)" ( (cast_expression "(char *)pbVar56" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;)) (if_statement "if (bVar25 == 0) goto LAB_0001994f;" if (parenthesized_expression "(bVar25 == 0)" ( (binary_expression "bVar25 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001994f;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00019928:\n        if (((keep_file_symbols != 0) && ((uVar48 & 0x4000) != 0)) ||\n           (bVar25 = is_specified_symbol((char *)pbVar56,keep_specific_htab), bVar25 != 0))\n        goto LAB_0001994f;" statement_identifier : (if_statement "if (((keep_file_symbols != 0) && ((uVar48 & 0x4000) != 0)) ||\n           (bVar25 = is_specified_symbol((char *)pbVar56,keep_specific_htab), bVar25 != 0))\n        goto LAB_0001994f;" if (parenthesized_expression "(((keep_file_symbols != 0) && ((uVar48 & 0x4000) != 0)) ||\n           (bVar25 = is_specified_symbol((char *)pbVar56,keep_specific_htab), bVar25 != 0))" ( (binary_expression "((keep_file_symbols != 0) && ((uVar48 & 0x4000) != 0)) ||\n           (bVar25 = is_specified_symbol((char *)pbVar56,keep_specific_htab), bVar25 != 0)" (parenthesized_expression "((keep_file_symbols != 0) && ((uVar48 & 0x4000) != 0))" ( (binary_expression "(keep_file_symbols != 0) && ((uVar48 & 0x4000) != 0)" (parenthesized_expression "(keep_file_symbols != 0)" ( (binary_expression "keep_file_symbols != 0" identifier != number_literal) )) && (parenthesized_expression "((uVar48 & 0x4000) != 0)" ( (binary_expression "(uVar48 & 0x4000) != 0" (parenthesized_expression "(uVar48 & 0x4000)" ( (binary_expression "uVar48 & 0x4000" identifier & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "(bVar25 = is_specified_symbol((char *)pbVar56,keep_specific_htab), bVar25 != 0)" ( (comma_expression "bVar25 = is_specified_symbol((char *)pbVar56,keep_specific_htab), bVar25 != 0" (assignment_expression "bVar25 = is_specified_symbol((char *)pbVar56,keep_specific_htab)" identifier = (call_expression "is_specified_symbol((char *)pbVar56,keep_specific_htab)" identifier (argument_list "((char *)pbVar56,keep_specific_htab)" ( (cast_expression "(char *)pbVar56" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) , (binary_expression "bVar25 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0001994f;" goto statement_identifier ;))) }) (else_clause "else {\n        bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n        if (bVar25 != 0) {\n          pcVar27 = (char *)dcgettext(0,\n                                      "not stripping symbol `%s\' because it is named in a relocation"\n                                      ,5);\n          non_fatal(pcVar27,pbVar56);\n          status = 1;\n        }\nLAB_0001994f:\n        bVar25 = is_strip_section((bfd *)in_stack_ffffff24,in_stack_ffffff28);\n        if (bVar25 == 0) {\n          if (((uVar48 & 2) != 0) &&\n             ((weaken != 0 ||\n              (bVar25 = is_specified_symbol((char *)pbVar56,weaken_specific_htab), bVar25 != 0)))) {\n            paVar40->flags = paVar40->flags & 0xfffffffd | 0x80;\n          }\n          if (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0)) {\n            if (((uVar48 & 0x82) != 0) &&\n               (((bVar25 = is_specified_symbol((char *)pbVar56,localize_specific_htab), bVar25 != 0\n                 || ((iVar22 = htab_elements(keepglobal_specific_htab), iVar22 != 0 &&\n                     (bVar25 = is_specified_symbol((char *)pbVar56,keepglobal_specific_htab),\n                     bVar25 == 0)))) ||\n                ((localize_hidden != 0 &&\n                 ((((pbVar46 = paVar40->the_bfd, pbVar46 != (bfd *)0x0 &&\n                    (pbVar46->xvec->flavour == bfd_target_elf_flavour)) &&\n                   ((pbVar46->tdata).aout_data != (aout_data_struct *)0x0)) &&\n                  ((*(byte *)((int)&paVar40[1].section + 1) & 3) - 1 < 2)))))))) {\n              paVar40->flags = paVar40->flags & 0xffffff7d | 1;\n            }\n            if (((uVar48 & 1) != 0) &&\n               (bVar25 = is_specified_symbol((char *)pbVar56,globalize_specific_htab), bVar25 != 0))\n            {\n              paVar40->flags = paVar40->flags & 0xfffffffe | 2;\n            }\n          }\n          ppaVar34[local_8c] = paVar40;\n          local_8c = local_8c + 1;\n        }\n      }" else (compound_statement "{\n        bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);\n        if (bVar25 != 0) {\n          pcVar27 = (char *)dcgettext(0,\n                                      "not stripping symbol `%s\' because it is named in a relocation"\n                                      ,5);\n          non_fatal(pcVar27,pbVar56);\n          status = 1;\n        }\nLAB_0001994f:\n        bVar25 = is_strip_section((bfd *)in_stack_ffffff24,in_stack_ffffff28);\n        if (bVar25 == 0) {\n          if (((uVar48 & 2) != 0) &&\n             ((weaken != 0 ||\n              (bVar25 = is_specified_symbol((char *)pbVar56,weaken_specific_htab), bVar25 != 0)))) {\n            paVar40->flags = paVar40->flags & 0xfffffffd | 0x80;\n          }\n          if (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0)) {\n            if (((uVar48 & 0x82) != 0) &&\n               (((bVar25 = is_specified_symbol((char *)pbVar56,localize_specific_htab), bVar25 != 0\n                 || ((iVar22 = htab_elements(keepglobal_specific_htab), iVar22 != 0 &&\n                     (bVar25 = is_specified_symbol((char *)pbVar56,keepglobal_specific_htab),\n                     bVar25 == 0)))) ||\n                ((localize_hidden != 0 &&\n                 ((((pbVar46 = paVar40->the_bfd, pbVar46 != (bfd *)0x0 &&\n                    (pbVar46->xvec->flavour == bfd_target_elf_flavour)) &&\n                   ((pbVar46->tdata).aout_data != (aout_data_struct *)0x0)) &&\n                  ((*(byte *)((int)&paVar40[1].section + 1) & 3) - 1 < 2)))))))) {\n              paVar40->flags = paVar40->flags & 0xffffff7d | 1;\n            }\n            if (((uVar48 & 1) != 0) &&\n               (bVar25 = is_specified_symbol((char *)pbVar56,globalize_specific_htab), bVar25 != 0))\n            {\n              paVar40->flags = paVar40->flags & 0xfffffffe | 2;\n            }\n          }\n          ppaVar34[local_8c] = paVar40;\n          local_8c = local_8c + 1;\n        }\n      }" { (expression_statement "bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab);" (assignment_expression "bVar25 = is_specified_symbol((char *)pbVar56,strip_specific_htab)" identifier = (call_expression "is_specified_symbol((char *)pbVar56,strip_specific_htab)" identifier (argument_list "((char *)pbVar56,strip_specific_htab)" ( (cast_expression "(char *)pbVar56" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (bVar25 != 0) {\n          pcVar27 = (char *)dcgettext(0,\n                                      "not stripping symbol `%s\' because it is named in a relocation"\n                                      ,5);\n          non_fatal(pcVar27,pbVar56);\n          status = 1;\n        }" if (parenthesized_expression "(bVar25 != 0)" ( (binary_expression "bVar25 != 0" identifier != number_literal) )) (compound_statement "{\n          pcVar27 = (char *)dcgettext(0,\n                                      "not stripping symbol `%s\' because it is named in a relocation"\n                                      ,5);\n          non_fatal(pcVar27,pbVar56);\n          status = 1;\n        }" { (expression_statement "pcVar27 = (char *)dcgettext(0,\n                                      "not stripping symbol `%s\' because it is named in a relocation"\n                                      ,5);" (assignment_expression "pcVar27 = (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(pcVar27,pbVar56);" (call_expression "non_fatal(pcVar27,pbVar56)" identifier (argument_list "(pcVar27,pbVar56)" ( identifier , identifier ))) ;) (expression_statement "status = 1;" (assignment_expression "status = 1" identifier = number_literal) ;) })) (labeled_statement "LAB_0001994f:\n        bVar25 = is_strip_section((bfd *)in_stack_ffffff24,in_stack_ffffff28);" statement_identifier : (expression_statement "bVar25 = is_strip_section((bfd *)in_stack_ffffff24,in_stack_ffffff28);" (assignment_expression "bVar25 = is_strip_section((bfd *)in_stack_ffffff24,in_stack_ffffff28)" identifier = (call_expression "is_strip_section((bfd *)in_stack_ffffff24,in_stack_ffffff28)" identifier (argument_list "((bfd *)in_stack_ffffff24,in_stack_ffffff28)" ( (cast_expression "(bfd *)in_stack_ffffff24" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;)) (if_statement "if (bVar25 == 0) {\n          if (((uVar48 & 2) != 0) &&\n             ((weaken != 0 ||\n              (bVar25 = is_specified_symbol((char *)pbVar56,weaken_specific_htab), bVar25 != 0)))) {\n            paVar40->flags = paVar40->flags & 0xfffffffd | 0x80;\n          }\n          if (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0)) {\n            if (((uVar48 & 0x82) != 0) &&\n               (((bVar25 = is_specified_symbol((char *)pbVar56,localize_specific_htab), bVar25 != 0\n                 || ((iVar22 = htab_elements(keepglobal_specific_htab), iVar22 != 0 &&\n                     (bVar25 = is_specified_symbol((char *)pbVar56,keepglobal_specific_htab),\n                     bVar25 == 0)))) ||\n                ((localize_hidden != 0 &&\n                 ((((pbVar46 = paVar40->the_bfd, pbVar46 != (bfd *)0x0 &&\n                    (pbVar46->xvec->flavour == bfd_target_elf_flavour)) &&\n                   ((pbVar46->tdata).aout_data != (aout_data_struct *)0x0)) &&\n                  ((*(byte *)((int)&paVar40[1].section + 1) & 3) - 1 < 2)))))))) {\n              paVar40->flags = paVar40->flags & 0xffffff7d | 1;\n            }\n            if (((uVar48 & 1) != 0) &&\n               (bVar25 = is_specified_symbol((char *)pbVar56,globalize_specific_htab), bVar25 != 0))\n            {\n              paVar40->flags = paVar40->flags & 0xfffffffe | 2;\n            }\n          }\n          ppaVar34[local_8c] = paVar40;\n          local_8c = local_8c + 1;\n        }" if (parenthesized_expression "(bVar25 == 0)" ( (binary_expression "bVar25 == 0" identifier == number_literal) )) (compound_statement "{\n          if (((uVar48 & 2) != 0) &&\n             ((weaken != 0 ||\n              (bVar25 = is_specified_symbol((char *)pbVar56,weaken_specific_htab), bVar25 != 0)))) {\n            paVar40->flags = paVar40->flags & 0xfffffffd | 0x80;\n          }\n          if (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0)) {\n            if (((uVar48 & 0x82) != 0) &&\n               (((bVar25 = is_specified_symbol((char *)pbVar56,localize_specific_htab), bVar25 != 0\n                 || ((iVar22 = htab_elements(keepglobal_specific_htab), iVar22 != 0 &&\n                     (bVar25 = is_specified_symbol((char *)pbVar56,keepglobal_specific_htab),\n                     bVar25 == 0)))) ||\n                ((localize_hidden != 0 &&\n                 ((((pbVar46 = paVar40->the_bfd, pbVar46 != (bfd *)0x0 &&\n                    (pbVar46->xvec->flavour == bfd_target_elf_flavour)) &&\n                   ((pbVar46->tdata).aout_data != (aout_data_struct *)0x0)) &&\n                  ((*(byte *)((int)&paVar40[1].section + 1) & 3) - 1 < 2)))))))) {\n              paVar40->flags = paVar40->flags & 0xffffff7d | 1;\n            }\n            if (((uVar48 & 1) != 0) &&\n               (bVar25 = is_specified_symbol((char *)pbVar56,globalize_specific_htab), bVar25 != 0))\n            {\n              paVar40->flags = paVar40->flags & 0xfffffffe | 2;\n            }\n          }\n          ppaVar34[local_8c] = paVar40;\n          local_8c = local_8c + 1;\n        }" { (if_statement "if (((uVar48 & 2) != 0) &&\n             ((weaken != 0 ||\n              (bVar25 = is_specified_symbol((char *)pbVar56,weaken_specific_htab), bVar25 != 0)))) {\n            paVar40->flags = paVar40->flags & 0xfffffffd | 0x80;\n          }" if (parenthesized_expression "(((uVar48 & 2) != 0) &&\n             ((weaken != 0 ||\n              (bVar25 = is_specified_symbol((char *)pbVar56,weaken_specific_htab), bVar25 != 0))))" ( (binary_expression "((uVar48 & 2) != 0) &&\n             ((weaken != 0 ||\n              (bVar25 = is_specified_symbol((char *)pbVar56,weaken_specific_htab), bVar25 != 0)))" (parenthesized_expression "((uVar48 & 2) != 0)" ( (binary_expression "(uVar48 & 2) != 0" (parenthesized_expression "(uVar48 & 2)" ( (binary_expression "uVar48 & 2" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((weaken != 0 ||\n              (bVar25 = is_specified_symbol((char *)pbVar56,weaken_specific_htab), bVar25 != 0)))" ( (parenthesized_expression "(weaken != 0 ||\n              (bVar25 = is_specified_symbol((char *)pbVar56,weaken_specific_htab), bVar25 != 0))" ( (binary_expression "weaken != 0 ||\n              (bVar25 = is_specified_symbol((char *)pbVar56,weaken_specific_htab), bVar25 != 0)" (binary_expression "weaken != 0" identifier != number_literal) || (parenthesized_expression "(bVar25 = is_specified_symbol((char *)pbVar56,weaken_specific_htab), bVar25 != 0)" ( (comma_expression "bVar25 = is_specified_symbol((char *)pbVar56,weaken_specific_htab), bVar25 != 0" (assignment_expression "bVar25 = is_specified_symbol((char *)pbVar56,weaken_specific_htab)" identifier = (call_expression "is_specified_symbol((char *)pbVar56,weaken_specific_htab)" identifier (argument_list "((char *)pbVar56,weaken_specific_htab)" ( (cast_expression "(char *)pbVar56" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) , (binary_expression "bVar25 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n            paVar40->flags = paVar40->flags & 0xfffffffd | 0x80;\n          }" { (expression_statement "paVar40->flags = paVar40->flags & 0xfffffffd | 0x80;" (assignment_expression "paVar40->flags = paVar40->flags & 0xfffffffd | 0x80" (field_expression "paVar40->flags" identifier -> field_identifier) = (binary_expression "paVar40->flags & 0xfffffffd | 0x80" (binary_expression "paVar40->flags & 0xfffffffd" (field_expression "paVar40->flags" identifier -> field_identifier) & number_literal) | number_literal)) ;) })) (if_statement "if (pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0)) {\n            if (((uVar48 & 0x82) != 0) &&\n               (((bVar25 = is_specified_symbol((char *)pbVar56,localize_specific_htab), bVar25 != 0\n                 || ((iVar22 = htab_elements(keepglobal_specific_htab), iVar22 != 0 &&\n                     (bVar25 = is_specified_symbol((char *)pbVar56,keepglobal_specific_htab),\n                     bVar25 == 0)))) ||\n                ((localize_hidden != 0 &&\n                 ((((pbVar46 = paVar40->the_bfd, pbVar46 != (bfd *)0x0 &&\n                    (pbVar46->xvec->flavour == bfd_target_elf_flavour)) &&\n                   ((pbVar46->tdata).aout_data != (aout_data_struct *)0x0)) &&\n                  ((*(byte *)((int)&paVar40[1].section + 1) & 3) - 1 < 2)))))))) {\n              paVar40->flags = paVar40->flags & 0xffffff7d | 1;\n            }\n            if (((uVar48 & 1) != 0) &&\n               (bVar25 = is_specified_symbol((char *)pbVar56,globalize_specific_htab), bVar25 != 0))\n            {\n              paVar40->flags = paVar40->flags & 0xfffffffe | 2;\n            }\n          }" if (parenthesized_expression "(pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0))" ( (binary_expression "pbVar50 != (bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0)" identifier != (cast_expression "(bfd_section *)(PTR__bfd_std_section_0003ffc8 + 0xc0)" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_0003ffc8 + 0xc0)" ( (binary_expression "PTR__bfd_std_section_0003ffc8 + 0xc0" identifier + number_literal) )))) )) (compound_statement "{\n            if (((uVar48 & 0x82) != 0) &&\n               (((bVar25 = is_specified_symbol((char *)pbVar56,localize_specific_htab), bVar25 != 0\n                 || ((iVar22 = htab_elements(keepglobal_specific_htab), iVar22 != 0 &&\n                     (bVar25 = is_specified_symbol((char *)pbVar56,keepglobal_specific_htab),\n                     bVar25 == 0)))) ||\n                ((localize_hidden != 0 &&\n                 ((((pbVar46 = paVar40->the_bfd, pbVar46 != (bfd *)0x0 &&\n                    (pbVar46->xvec->flavour == bfd_target_elf_flavour)) &&\n                   ((pbVar46->tdata).aout_data != (aout_data_struct *)0x0)) &&\n                  ((*(byte *)((int)&paVar40[1].section + 1) & 3) - 1 < 2)))))))) {\n              paVar40->flags = paVar40->flags & 0xffffff7d | 1;\n            }\n            if (((uVar48 & 1) != 0) &&\n               (bVar25 = is_specified_symbol((char *)pbVar56,globalize_specific_htab), bVar25 != 0))\n            {\n              paVar40->flags = paVar40->flags & 0xfffffffe | 2;\n            }\n          }" { (if_statement "if (((uVar48 & 0x82) != 0) &&\n               (((bVar25 = is_specified_symbol((char *)pbVar56,localize_specific_htab), bVar25 != 0\n                 || ((iVar22 = htab_elements(keepglobal_specific_htab), iVar22 != 0 &&\n                     (bVar25 = is_specified_symbol((char *)pbVar56,keepglobal_specific_htab),\n                     bVar25 == 0)))) ||\n                ((localize_hidden != 0 &&\n                 ((((pbVar46 = paVar40->the_bfd, pbVar46 != (bfd *)0x0 &&\n                    (pbVar46->xvec->flavour == bfd_target_elf_flavour)) &&\n                   ((pbVar46->tdata).aout_data != (aout_data_struct *)0x0)) &&\n                  ((*(byte *)((int)&paVar40[1].section + 1) & 3) - 1 < 2)))))))) {\n              paVar40->flags = paVar40->flags & 0xffffff7d | 1;\n            }" if (parenthesized_expression "(((uVar48 & 0x82) != 0) &&\n               (((bVar25 = is_specified_symbol((char *)pbVar56,localize_specific_htab), bVar25 != 0\n                 || ((iVar22 = htab_elements(keepglobal_specific_htab), iVar22 != 0 &&\n                     (bVar25 = is_specified_symbol((char *)pbVar56,keepglobal_specific_htab),\n                     bVar25 == 0)))) ||\n                ((localize_hidden != 0 &&\n                 ((((pbVar46 = paVar40->the_bfd, pbVar46 != (bfd *)0x0 &&\n                    (pbVar46->xvec->flavour == bfd_target_elf_flavour)) &&\n                   ((pbVar46->tdata).aout_data != (aout_data_struct *)0x0)) &&\n                  ((*(byte *)((int)&paVar40[1].section + 1) & 3) - 1 < 2))))))))" ( (binary_expression "((uVar48 & 0x82) != 0) &&\n               (((bVar25 = is_specified_symbol((char *)pbVar56,localize_specific_htab), bVar25 != 0\n                 || ((iVar22 = htab_elements(keepglobal_specific_htab), iVar22 != 0 &&\n                     (bVar25 = is_specified_symbol((char *)pbVar56,keepglobal_specific_htab),\n                     bVar25 == 0)))) ||\n                ((localize_hidden != 0 &&\n                 ((((pbVar46 = paVar40->the_bfd, pbVar46 != (bfd *)0x0 &&\n                    (pbVar46->xvec->flavour == bfd_target_elf_flavour)) &&\n                   ((pbVar46->tdata).aout_data != (aout_data_struct *)0x0)) &&\n                  ((*(byte *)((int)&paVar40[1].section + 1) & 3) - 1 < 2)))))))" (parenthesized_expression "((uVar48 & 0x82) != 0)" ( (binary_expression "(uVar48 & 0x82) != 0" (parenthesized_expression "(uVar48 & 0x82)" ( (binary_expression "uVar48 & 0x82" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(((bVar25 = is_specified_symbol((char *)pbVar56,localize_specific_htab), bVar25 != 0\n                 || ((iVar22 = htab_elements(keepglobal_specific_htab), iVar22 != 0 &&\n                     (bVar25 = is_specified_symbol((char *)pbVar56,keepglobal_specific_htab),\n                     bVar25 == 0)))) ||\n                ((localize_hidden != 0 &&\n                 ((((pbVar46 = paVar40->the_bfd, pbVar46 != (bfd *)0x0 &&\n                    (pbVar46->xvec->flavour == bfd_target_elf_flavour)) &&\n                   ((pbVar46->tdata).aout_data != (aout_data_struct *)0x0)) &&\n                  ((*(byte *)((int)&paVar40[1].section + 1) & 3) - 1 < 2)))))))" ( (parenthesized_expression "((bVar25 = is_specified_symbol((char *)pbVar56,localize_specific_htab), bVar25 != 0\n                 || ((iVar22 = htab_elements(keepglobal_specific_htab), iVar22 != 0 &&\n                     (bVar25 = is_specified_symbol((char *)pbVar56,keepglobal_specific_htab),\n                     bVar25 == 0)))) ||\n                ((localize_hidden != 0 &&\n                 ((((pbVar46 = paVar40->the_bfd, pbVar46 != (bfd *)0x0 &&\n                    (pbVar46->xvec->flavour == bfd_target_elf_flavour)) &&\n                   ((pbVar46->tdata).aout_data != (aout_data_struct *)0x0)) &&\n                  ((*(byte *)((int)&paVar40[1].section + 1) & 3) - 1 < 2))))))" ( (binary_expression "(bVar25 = is_specified_symbol((char *)pbVar56,localize_specific_htab), bVar25 != 0\n                 || ((iVar22 = htab_elements(keepglobal_specific_htab), iVar22 != 0 &&\n                     (bVar25 = is_specified_symbol((char *)pbVar56,keepglobal_specific_htab),\n                     bVar25 == 0)))) ||\n                ((localize_hidden != 0 &&\n                 ((((pbVar46 = paVar40->the_bfd, pbVar46 != (bfd *)0x0 &&\n                    (pbVar46->xvec->flavour == bfd_target_elf_flavour)) &&\n                   ((pbVar46->tdata).aout_data != (aout_data_struct *)0x0)) &&\n                  ((*(byte *)((int)&paVar40[1].section + 1) & 3) - 1 < 2)))))" (parenthesized_expression "(bVar25 = is_specified_symbol((char *)pbVar56,localize_specific_htab), bVar25 != 0\n                 || ((iVar22 = htab_elements(keepglobal_specific_htab), iVar22 != 0 &&\n                     (bVar25 = is_specified_symbol((char *)pbVar56,keepglobal_specific_htab),\n                     bVar25 == 0))))" ( (comma_expression "bVar25 = is_specified_symbol((char *)pbVar56,localize_specific_htab), bVar25 != 0\n                 || ((iVar22 = htab_elements(keepglobal_specific_htab), iVar22 != 0 &&\n                     (bVar25 = is_specified_symbol((char *)pbVar56,keepglobal_specific_htab),\n                     bVar25 == 0)))" (assignment_expression "bVar25 = is_specified_symbol((char *)pbVar56,localize_specific_htab)" identifier = (call_expression "is_specified_symbol((char *)pbVar56,localize_specific_htab)" identifier (argument_list "((char *)pbVar56,localize_specific_htab)" ( (cast_expression "(char *)pbVar56" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) , (binary_expression "bVar25 != 0\n                 || ((iVar22 = htab_elements(keepglobal_specific_htab), iVar22 != 0 &&\n                     (bVar25 = is_specified_symbol((char *)pbVar56,keepglobal_specific_htab),\n                     bVar25 == 0)))" (binary_expression "bVar25 != 0" identifier != number_literal) || (parenthesized_expression "((iVar22 = htab_elements(keepglobal_specific_htab), iVar22 != 0 &&\n                     (bVar25 = is_specified_symbol((char *)pbVar56,keepglobal_specific_htab),\n                     bVar25 == 0)))" ( (parenthesized_expression "(iVar22 = htab_elements(keepglobal_specific_htab), iVar22 != 0 &&\n                     (bVar25 = is_specified_symbol((char *)pbVar56,keepglobal_specific_htab),\n                     bVar25 == 0))" ( (comma_expression "iVar22 = htab_elements(keepglobal_specific_htab), iVar22 != 0 &&\n                     (bVar25 = is_specified_symbol((char *)pbVar56,keepglobal_specific_htab),\n                     bVar25 == 0)" (assignment_expression "iVar22 = htab_elements(keepglobal_specific_htab)" identifier = (call_expression "htab_elements(keepglobal_specific_htab)" identifier (argument_list "(keepglobal_specific_htab)" ( identifier )))) , (binary_expression "iVar22 != 0 &&\n                     (bVar25 = is_specified_symbol((char *)pbVar56,keepglobal_specific_htab),\n                     bVar25 == 0)" (binary_expression "iVar22 != 0" identifier != number_literal) && (parenthesized_expression "(bVar25 = is_specified_symbol((char *)pbVar56,keepglobal_specific_htab),\n                     bVar25 == 0)" ( (comma_expression "bVar25 = is_specified_symbol((char *)pbVar56,keepglobal_specific_htab),\n                     bVar25 == 0" (assignment_expression "bVar25 = is_specified_symbol((char *)pbVar56,keepglobal_specific_htab)" identifier = (call_expression "is_specified_symbol((char *)pbVar56,keepglobal_specific_htab)" identifier (argument_list "((char *)pbVar56,keepglobal_specific_htab)" ( (cast_expression "(char *)pbVar56" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) , (binary_expression "bVar25 == 0" identifier == number_literal)) )))) )) )))) )) || (parenthesized_expression "((localize_hidden != 0 &&\n                 ((((pbVar46 = paVar40->the_bfd, pbVar46 != (bfd *)0x0 &&\n                    (pbVar46->xvec->flavour == bfd_target_elf_flavour)) &&\n                   ((pbVar46->tdata).aout_data != (aout_data_struct *)0x0)) &&\n                  ((*(byte *)((int)&paVar40[1].section + 1) & 3) - 1 < 2)))))" ( (parenthesized_expression "(localize_hidden != 0 &&\n                 ((((pbVar46 = paVar40->the_bfd, pbVar46 != (bfd *)0x0 &&\n                    (pbVar46->xvec->flavour == bfd_target_elf_flavour)) &&\n                   ((pbVar46->tdata).aout_data != (aout_data_struct *)0x0)) &&\n                  ((*(byte *)((int)&paVar40[1].section + 1) & 3) - 1 < 2))))" ( (binary_expression "localize_hidden != 0 &&\n                 ((((pbVar46 = paVar40->the_bfd, pbVar46 != (bfd *)0x0 &&\n                    (pbVar46->xvec->flavour == bfd_target_elf_flavour)) &&\n                   ((pbVar46->tdata).aout_data != (aout_data_struct *)0x0)) &&\n                  ((*(byte *)((int)&paVar40[1].section + 1) & 3) - 1 < 2)))" (binary_expression "localize_hidden != 0" identifier != number_literal) && (parenthesized_expression "((((pbVar46 = paVar40->the_bfd, pbVar46 != (bfd *)0x0 &&\n                    (pbVar46->xvec->flavour == bfd_target_elf_flavour)) &&\n                   ((pbVar46->tdata).aout_data != (aout_data_struct *)0x0)) &&\n                  ((*(byte *)((int)&paVar40[1].section + 1) & 3) - 1 < 2)))" ( (parenthesized_expression "(((pbVar46 = paVar40->the_bfd, pbVar46 != (bfd *)0x0 &&\n                    (pbVar46->xvec->flavour == bfd_target_elf_flavour)) &&\n                   ((pbVar46->tdata).aout_data != (aout_data_struct *)0x0)) &&\n                  ((*(byte *)((int)&paVar40[1].section + 1) & 3) - 1 < 2))" ( (binary_expression "((pbVar46 = paVar40->the_bfd, pbVar46 != (bfd *)0x0 &&\n                    (pbVar46->xvec->flavour == bfd_target_elf_flavour)) &&\n                   ((pbVar46->tdata).aout_data != (aout_data_struct *)0x0)) &&\n                  ((*(byte *)((int)&paVar40[1].section + 1) & 3) - 1 < 2)" (parenthesized_expression "((pbVar46 = paVar40->the_bfd, pbVar46 != (bfd *)0x0 &&\n                    (pbVar46->xvec->flavour == bfd_target_elf_flavour)) &&\n                   ((pbVar46->tdata).aout_data != (aout_data_struct *)0x0))" ( (binary_expression "(pbVar46 = paVar40->the_bfd, pbVar46 != (bfd *)0x0 &&\n                    (pbVar46->xvec->flavour == bfd_target_elf_flavour)) &&\n                   ((pbVar46->tdata).aout_data != (aout_data_struct *)0x0)" (parenthesized_expression "(pbVar46 = paVar40->the_bfd, pbVar46 != (bfd *)0x0 &&\n                    (pbVar46->xvec->flavour == bfd_target_elf_flavour))" ( (comma_expression "pbVar46 = paVar40->the_bfd, pbVar46 != (bfd *)0x0 &&\n                    (pbVar46->xvec->flavour == bfd_target_elf_flavour)" (assignment_expression "pbVar46 = paVar40->the_bfd" identifier = (field_expression "paVar40->the_bfd" identifier -> field_identifier)) , (binary_expression "pbVar46 != (bfd *)0x0 &&\n                    (pbVar46->xvec->flavour == bfd_target_elf_flavour)" (binary_expression "pbVar46 != (bfd *)0x0" identifier != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(pbVar46->xvec->flavour == bfd_target_elf_flavour)" ( (binary_expression "pbVar46->xvec->flavour == bfd_target_elf_flavour" (field_expression "pbVar46->xvec->flavour" (field_expression "pbVar46->xvec" identifier -> field_identifier) -> field_identifier) == identifier) )))) )) && (parenthesized_expression "((pbVar46->tdata).aout_data != (aout_data_struct *)0x0)" ( (binary_expression "(pbVar46->tdata).aout_data != (aout_data_struct *)0x0" (field_expression "(pbVar46->tdata).aout_data" (parenthesized_expression "(pbVar46->tdata)" ( (field_expression "pbVar46->tdata" identifier -> field_identifier) )) . field_identifier) != (cast_expression "(aout_data_struct *)0x0" ( (type_descriptor "aout_data_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "((*(byte *)((int)&paVar40[1].section + 1) & 3) - 1 < 2)" ( (binary_expression "(*(byte *)((int)&paVar40[1].section + 1) & 3) - 1 < 2" (binary_expression "(*(byte *)((int)&paVar40[1].section + 1) & 3) - 1" (parenthesized_expression "(*(byte *)((int)&paVar40[1].section + 1) & 3)" ( (binary_expression "*(byte *)((int)&paVar40[1].section + 1) & 3" (pointer_expression "*(byte *)((int)&paVar40[1].section + 1)" * (cast_expression "(byte *)((int)&paVar40[1].section + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar40[1].section + 1)" ( (binary_expression "(int)&paVar40[1].section + 1" (cast_expression "(int)&paVar40[1].section" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar40[1].section" & (field_expression "paVar40[1].section" (subscript_expression "paVar40[1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) & number_literal) )) - number_literal) < number_literal) ))) )) ))) )) ))) )) ))) )) (compound_statement "{\n              paVar40->flags = paVar40->flags & 0xffffff7d | 1;\n            }" { (expression_statement "paVar40->flags = paVar40->flags & 0xffffff7d | 1;" (assignment_expression "paVar40->flags = paVar40->flags & 0xffffff7d | 1" (field_expression "paVar40->flags" identifier -> field_identifier) = (binary_expression "paVar40->flags & 0xffffff7d | 1" (binary_expression "paVar40->flags & 0xffffff7d" (field_expression "paVar40->flags" identifier -> field_identifier) & number_literal) | number_literal)) ;) })) (if_statement "if (((uVar48 & 1) != 0) &&\n               (bVar25 = is_specified_symbol((char *)pbVar56,globalize_specific_htab), bVar25 != 0))\n            {\n              paVar40->flags = paVar40->flags & 0xfffffffe | 2;\n            }" if (parenthesized_expression "(((uVar48 & 1) != 0) &&\n               (bVar25 = is_specified_symbol((char *)pbVar56,globalize_specific_htab), bVar25 != 0))" ( (binary_expression "((uVar48 & 1) != 0) &&\n               (bVar25 = is_specified_symbol((char *)pbVar56,globalize_specific_htab), bVar25 != 0)" (parenthesized_expression "((uVar48 & 1) != 0)" ( (binary_expression "(uVar48 & 1) != 0" (parenthesized_expression "(uVar48 & 1)" ( (binary_expression "uVar48 & 1" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(bVar25 = is_specified_symbol((char *)pbVar56,globalize_specific_htab), bVar25 != 0)" ( (comma_expression "bVar25 = is_specified_symbol((char *)pbVar56,globalize_specific_htab), bVar25 != 0" (assignment_expression "bVar25 = is_specified_symbol((char *)pbVar56,globalize_specific_htab)" identifier = (call_expression "is_specified_symbol((char *)pbVar56,globalize_specific_htab)" identifier (argument_list "((char *)pbVar56,globalize_specific_htab)" ( (cast_expression "(char *)pbVar56" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) , (binary_expression "bVar25 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n              paVar40->flags = paVar40->flags & 0xfffffffe | 2;\n            }" { (expression_statement "paVar40->flags = paVar40->flags & 0xfffffffe | 2;" (assignment_expression "paVar40->flags = paVar40->flags & 0xfffffffe | 2" (field_expression "paVar40->flags" identifier -> field_identifier) = (binary_expression "paVar40->flags & 0xfffffffe | 2" (binary_expression "paVar40->flags & 0xfffffffe" (field_expression "paVar40->flags" identifier -> field_identifier) & number_literal) | number_literal)) ;) })) })) (expression_statement "ppaVar34[local_8c] = paVar40;" (assignment_expression "ppaVar34[local_8c] = paVar40" (subscript_expression "ppaVar34[local_8c]" identifier [ identifier ]) = identifier) ;) (expression_statement "local_8c = local_8c + 1;" (assignment_expression "local_8c = local_8c + 1" identifier = (binary_expression "local_8c + 1" identifier + number_literal)) ;) })) }))) (expression_statement "local_84 = local_84 + 1;" (assignment_expression "local_84 = local_84 + 1" identifier = (binary_expression "local_84 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppaVar2 != local_84)" ( (binary_expression "ppaVar2 != local_84" identifier != identifier) )) ;) })) (expression_statement "local_6c = (bfd_section *)add_sym_list;" (assignment_expression "local_6c = (bfd_section *)add_sym_list" identifier = (cast_expression "(bfd_section *)add_sym_list" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((add_sym_list != (addsym_node *)0x0) && (0 < add_symbols)) {\n    iVar22 = 0;\n    do {\n      pcVar27 = (char *)local_6c->flags;\n      if (pcVar27 == (char *)0x0) {\n        paVar40 = create_new_symbol((addsym_node *)local_6c,obfd);\n        ppaVar34[local_8c] = paVar40;\n        local_8c = local_8c + 1;\n      }\n      else if (*pcVar27 != '\0') {\n        pcVar26 = (char *)dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    /* WARNING: Subroutine does not return */\n        fatal(pcVar26,pcVar27);\n      }\n      iVar22 = iVar22 + 1;\n      local_6c = (bfd_section *)local_6c->name;\n    } while (iVar22 < 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    iVar22 = 0;\n    do {\n      pcVar27 = (char *)local_6c->flags;\n      if (pcVar27 == (char *)0x0) {\n        paVar40 = create_new_symbol((addsym_node *)local_6c,obfd);\n        ppaVar34[local_8c] = paVar40;\n        local_8c = local_8c + 1;\n      }\n      else if (*pcVar27 != '\0') {\n        pcVar26 = (char *)dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    /* WARNING: Subroutine does not return */\n        fatal(pcVar26,pcVar27);\n      }\n      iVar22 = iVar22 + 1;\n      local_6c = (bfd_section *)local_6c->name;\n    } while (iVar22 < add_symbols);\n  }" { (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (do_statement "do {\n      pcVar27 = (char *)local_6c->flags;\n      if (pcVar27 == (char *)0x0) {\n        paVar40 = create_new_symbol((addsym_node *)local_6c,obfd);\n        ppaVar34[local_8c] = paVar40;\n        local_8c = local_8c + 1;\n      }\n      else if (*pcVar27 != '\0') {\n        pcVar26 = (char *)dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    /* WARNING: Subroutine does not return */\n        fatal(pcVar26,pcVar27);\n      }\n      iVar22 = iVar22 + 1;\n      local_6c = (bfd_section *)local_6c->name;\n    } while (iVar22 < add_symbols);" do (compound_statement "{\n      pcVar27 = (char *)local_6c->flags;\n      if (pcVar27 == (char *)0x0) {\n        paVar40 = create_new_symbol((addsym_node *)local_6c,obfd);\n        ppaVar34[local_8c] = paVar40;\n        local_8c = local_8c + 1;\n      }\n      else if (*pcVar27 != '\0') {\n        pcVar26 = (char *)dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    /* WARNING: Subroutine does not return */\n        fatal(pcVar26,pcVar27);\n      }\n      iVar22 = iVar22 + 1;\n      local_6c = (bfd_section *)local_6c->name;\n    }" { (expression_statement "pcVar27 = (char *)local_6c->flags;" (assignment_expression "pcVar27 = (char *)local_6c->flags" identifier = (cast_expression "(char *)local_6c->flags" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "local_6c->flags" identifier -> field_identifier))) ;) (if_statement "if (pcVar27 == (char *)0x0) {\n        paVar40 = create_new_symbol((addsym_node *)local_6c,obfd);\n        ppaVar34[local_8c] = paVar40;\n        local_8c = local_8c + 1;\n      }\n      else if (*pcVar27 != '\0') {\n        pcVar26 = (char *)dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    /* WARNING: Subroutine does not return */\n        fatal(pcVar26,pcVar27);\n      }" if (parenthesized_expression "(pcVar27 == (char *)0x0)" ( (binary_expression "pcVar27 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        paVar40 = create_new_symbol((addsym_node *)local_6c,obfd);\n        ppaVar34[local_8c] = paVar40;\n        local_8c = local_8c + 1;\n      }" { (expression_statement "paVar40 = create_new_symbol((addsym_node *)local_6c,obfd);" (assignment_expression "paVar40 = create_new_symbol((addsym_node *)local_6c,obfd)" identifier = (call_expression "create_new_symbol((addsym_node *)local_6c,obfd)" identifier (argument_list "((addsym_node *)local_6c,obfd)" ( (cast_expression "(addsym_node *)local_6c" ( (type_descriptor "addsym_node *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (expression_statement "ppaVar34[local_8c] = paVar40;" (assignment_expression "ppaVar34[local_8c] = paVar40" (subscript_expression "ppaVar34[local_8c]" identifier [ identifier ]) = identifier) ;) (expression_statement "local_8c = local_8c + 1;" (assignment_expression "local_8c = local_8c + 1" identifier = (binary_expression "local_8c + 1" identifier + number_literal)) ;) }) (else_clause "else if (*pcVar27 != '\0') {\n        pcVar26 = (char *)dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    /* WARNING: Subroutine does not return */\n        fatal(pcVar26,pcVar27);\n      }" else (if_statement "if (*pcVar27 != '\0') {\n        pcVar26 = (char *)dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    /* WARNING: Subroutine does not return */\n        fatal(pcVar26,pcVar27);\n      }" if (parenthesized_expression "(*pcVar27 != '\0')" ( (binary_expression "*pcVar27 != '\0'" (pointer_expression "*pcVar27" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pcVar26 = (char *)dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    /* WARNING: Subroutine does not return */\n        fatal(pcVar26,pcVar27);\n      }" { (expression_statement "pcVar26 = (char *)dcgettext(0,"\'before=%s\' not found",5,local_8c);" (assignment_expression "pcVar26 = (char *)dcgettext(0,"\'before=%s\' not found",5,local_8c)" identifier = (cast_expression "(char *)dcgettext(0,"\'before=%s\' not found",5,local_8c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\'before=%s\' not found",5,local_8c)" identifier (argument_list "(0,"\'before=%s\' not found",5,local_8c)" ( number_literal , (string_literal ""\'before=%s\' not found"" " escape_sequence string_content escape_sequence string_content ") , number_literal , identifier ))))) ;) comment (expression_statement "fatal(pcVar26,pcVar27);" (call_expression "fatal(pcVar26,pcVar27)" identifier (argument_list "(pcVar26,pcVar27)" ( identifier , identifier ))) ;) })))) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) (expression_statement "local_6c = (bfd_section *)local_6c->name;" (assignment_expression "local_6c = (bfd_section *)local_6c->name" identifier = (cast_expression "(bfd_section *)local_6c->name" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_6c->name" identifier -> field_identifier))) ;) }) while (parenthesized_expression "(iVar22 < add_symbols)" ( (binary_expression "iVar22 < add_symbols" identifier < identifier) )) ;) })) (expression_statement "ppaVar34[local_8c] = (asymbol *)0x0;" (assignment_expression "ppaVar34[local_8c] = (asymbol *)0x0" (subscript_expression "ppaVar34[local_8c]" identifier [ identifier ]) = (cast_expression "(asymbol *)0x0" ( (type_descriptor "asymbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((convert_debugging != 0) && (local_c0 != (void *)0x0)) {\n    iVar22 = ((undefined4 *)((bfd_section *)obfd)->id)[1];\n    if ((iVar22 == 2) || (iVar22 == 5)) {\n      bVar25 = write_stabs_in_sections_debugging_info\n                         (obfd,local_c0,&syms,(bfd_size_type *)file_alignment,&strings,\n                          (bfd_size_type *)&contents);\n      if (bVar25 != 0) {\n        iVar22 = bfd_make_section_with_flags(obfd,".stab",0x2108);\n        iVar52 = bfd_make_section_with_flags(obfd,".stabstr",0x2108);\n        if ((((iVar22 == 0) || (iVar52 == 0)) ||\n            (iVar43 = bfd_set_section_size(obfd,iVar22,file_alignment._0_4_,file_alignment._4_4_),\n            iVar43 == 0)) ||\n           (iVar43 = bfd_set_section_size(obfd,iVar52,contents,local_30), iVar43 == 0)) {\n          pcVar27 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar22 + 0x58) = 2;\n          *(undefined4 *)(iVar52 + 0x58) = 0;\n          iVar22 = bfd_set_section_contents\n                             (obfd,iVar22,syms,0,0,file_alignment._0_4_,file_alignment._4_4_,iVar43)\n          ;\n          if ((iVar22 != 0) &&\n             (iVar22 = bfd_set_section_contents\n                                 (obfd,iVar52,strings,0,0,contents,local_30,extraout_ECX),\n             iVar22 != 0)) goto LAB_00019e4d;\n          pcVar27 = "can\'t set debugging section contents";\n          iVar22 = iVar52;\n        }\n        pcVar27 = (char *)dcgettext(0,pcVar27,5,iVar22);\n        bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27);\n      }\n    }\n    else {\n      uVar32 = *(undefined4 *)((bfd_section *)obfd)->id;\n      pcVar27 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",5);\n      bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27,uVar32);\n    }\n    status = 1;\n    return 0;\n  }" if (parenthesized_expression "((convert_debugging != 0) && (local_c0 != (void *)0x0))" ( (binary_expression "(convert_debugging != 0) && (local_c0 != (void *)0x0)" (parenthesized_expression "(convert_debugging != 0)" ( (binary_expression "convert_debugging != 0" identifier != number_literal) )) && (parenthesized_expression "(local_c0 != (void *)0x0)" ( (binary_expression "local_c0 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    iVar22 = ((undefined4 *)((bfd_section *)obfd)->id)[1];\n    if ((iVar22 == 2) || (iVar22 == 5)) {\n      bVar25 = write_stabs_in_sections_debugging_info\n                         (obfd,local_c0,&syms,(bfd_size_type *)file_alignment,&strings,\n                          (bfd_size_type *)&contents);\n      if (bVar25 != 0) {\n        iVar22 = bfd_make_section_with_flags(obfd,".stab",0x2108);\n        iVar52 = bfd_make_section_with_flags(obfd,".stabstr",0x2108);\n        if ((((iVar22 == 0) || (iVar52 == 0)) ||\n            (iVar43 = bfd_set_section_size(obfd,iVar22,file_alignment._0_4_,file_alignment._4_4_),\n            iVar43 == 0)) ||\n           (iVar43 = bfd_set_section_size(obfd,iVar52,contents,local_30), iVar43 == 0)) {\n          pcVar27 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar22 + 0x58) = 2;\n          *(undefined4 *)(iVar52 + 0x58) = 0;\n          iVar22 = bfd_set_section_contents\n                             (obfd,iVar22,syms,0,0,file_alignment._0_4_,file_alignment._4_4_,iVar43)\n          ;\n          if ((iVar22 != 0) &&\n             (iVar22 = bfd_set_section_contents\n                                 (obfd,iVar52,strings,0,0,contents,local_30,extraout_ECX),\n             iVar22 != 0)) goto LAB_00019e4d;\n          pcVar27 = "can\'t set debugging section contents";\n          iVar22 = iVar52;\n        }\n        pcVar27 = (char *)dcgettext(0,pcVar27,5,iVar22);\n        bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27);\n      }\n    }\n    else {\n      uVar32 = *(undefined4 *)((bfd_section *)obfd)->id;\n      pcVar27 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",5);\n      bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27,uVar32);\n    }\n    status = 1;\n    return 0;\n  }" { (expression_statement "iVar22 = ((undefined4 *)((bfd_section *)obfd)->id)[1];" (assignment_expression "iVar22 = ((undefined4 *)((bfd_section *)obfd)->id)[1]" identifier = (subscript_expression "((undefined4 *)((bfd_section *)obfd)->id)[1]" (parenthesized_expression "((undefined4 *)((bfd_section *)obfd)->id)" ( (cast_expression "(undefined4 *)((bfd_section *)obfd)->id" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((bfd_section *)obfd)->id" (parenthesized_expression "((bfd_section *)obfd)" ( (cast_expression "(bfd_section *)obfd" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)) )) [ number_literal ])) ;) (if_statement "if ((iVar22 == 2) || (iVar22 == 5)) {\n      bVar25 = write_stabs_in_sections_debugging_info\n                         (obfd,local_c0,&syms,(bfd_size_type *)file_alignment,&strings,\n                          (bfd_size_type *)&contents);\n      if (bVar25 != 0) {\n        iVar22 = bfd_make_section_with_flags(obfd,".stab",0x2108);\n        iVar52 = bfd_make_section_with_flags(obfd,".stabstr",0x2108);\n        if ((((iVar22 == 0) || (iVar52 == 0)) ||\n            (iVar43 = bfd_set_section_size(obfd,iVar22,file_alignment._0_4_,file_alignment._4_4_),\n            iVar43 == 0)) ||\n           (iVar43 = bfd_set_section_size(obfd,iVar52,contents,local_30), iVar43 == 0)) {\n          pcVar27 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar22 + 0x58) = 2;\n          *(undefined4 *)(iVar52 + 0x58) = 0;\n          iVar22 = bfd_set_section_contents\n                             (obfd,iVar22,syms,0,0,file_alignment._0_4_,file_alignment._4_4_,iVar43)\n          ;\n          if ((iVar22 != 0) &&\n             (iVar22 = bfd_set_section_contents\n                                 (obfd,iVar52,strings,0,0,contents,local_30,extraout_ECX),\n             iVar22 != 0)) goto LAB_00019e4d;\n          pcVar27 = "can\'t set debugging section contents";\n          iVar22 = iVar52;\n        }\n        pcVar27 = (char *)dcgettext(0,pcVar27,5,iVar22);\n        bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27);\n      }\n    }\n    else {\n      uVar32 = *(undefined4 *)((bfd_section *)obfd)->id;\n      pcVar27 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",5);\n      bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27,uVar32);\n    }" if (parenthesized_expression "((iVar22 == 2) || (iVar22 == 5))" ( (binary_expression "(iVar22 == 2) || (iVar22 == 5)" (parenthesized_expression "(iVar22 == 2)" ( (binary_expression "iVar22 == 2" identifier == number_literal) )) || (parenthesized_expression "(iVar22 == 5)" ( (binary_expression "iVar22 == 5" identifier == number_literal) ))) )) (compound_statement "{\n      bVar25 = write_stabs_in_sections_debugging_info\n                         (obfd,local_c0,&syms,(bfd_size_type *)file_alignment,&strings,\n                          (bfd_size_type *)&contents);\n      if (bVar25 != 0) {\n        iVar22 = bfd_make_section_with_flags(obfd,".stab",0x2108);\n        iVar52 = bfd_make_section_with_flags(obfd,".stabstr",0x2108);\n        if ((((iVar22 == 0) || (iVar52 == 0)) ||\n            (iVar43 = bfd_set_section_size(obfd,iVar22,file_alignment._0_4_,file_alignment._4_4_),\n            iVar43 == 0)) ||\n           (iVar43 = bfd_set_section_size(obfd,iVar52,contents,local_30), iVar43 == 0)) {\n          pcVar27 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar22 + 0x58) = 2;\n          *(undefined4 *)(iVar52 + 0x58) = 0;\n          iVar22 = bfd_set_section_contents\n                             (obfd,iVar22,syms,0,0,file_alignment._0_4_,file_alignment._4_4_,iVar43)\n          ;\n          if ((iVar22 != 0) &&\n             (iVar22 = bfd_set_section_contents\n                                 (obfd,iVar52,strings,0,0,contents,local_30,extraout_ECX),\n             iVar22 != 0)) goto LAB_00019e4d;\n          pcVar27 = "can\'t set debugging section contents";\n          iVar22 = iVar52;\n        }\n        pcVar27 = (char *)dcgettext(0,pcVar27,5,iVar22);\n        bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27);\n      }\n    }" { (expression_statement "bVar25 = write_stabs_in_sections_debugging_info\n                         (obfd,local_c0,&syms,(bfd_size_type *)file_alignment,&strings,\n                          (bfd_size_type *)&contents);" (assignment_expression "bVar25 = write_stabs_in_sections_debugging_info\n                         (obfd,local_c0,&syms,(bfd_size_type *)file_alignment,&strings,\n                          (bfd_size_type *)&contents)" identifier = (call_expression "write_stabs_in_sections_debugging_info\n                         (obfd,local_c0,&syms,(bfd_size_type *)file_alignment,&strings,\n                          (bfd_size_type *)&contents)" identifier (argument_list "(obfd,local_c0,&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 (bVar25 != 0) {\n        iVar22 = bfd_make_section_with_flags(obfd,".stab",0x2108);\n        iVar52 = bfd_make_section_with_flags(obfd,".stabstr",0x2108);\n        if ((((iVar22 == 0) || (iVar52 == 0)) ||\n            (iVar43 = bfd_set_section_size(obfd,iVar22,file_alignment._0_4_,file_alignment._4_4_),\n            iVar43 == 0)) ||\n           (iVar43 = bfd_set_section_size(obfd,iVar52,contents,local_30), iVar43 == 0)) {\n          pcVar27 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar22 + 0x58) = 2;\n          *(undefined4 *)(iVar52 + 0x58) = 0;\n          iVar22 = bfd_set_section_contents\n                             (obfd,iVar22,syms,0,0,file_alignment._0_4_,file_alignment._4_4_,iVar43)\n          ;\n          if ((iVar22 != 0) &&\n             (iVar22 = bfd_set_section_contents\n                                 (obfd,iVar52,strings,0,0,contents,local_30,extraout_ECX),\n             iVar22 != 0)) goto LAB_00019e4d;\n          pcVar27 = "can\'t set debugging section contents";\n          iVar22 = iVar52;\n        }\n        pcVar27 = (char *)dcgettext(0,pcVar27,5,iVar22);\n        bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27);\n      }" if (parenthesized_expression "(bVar25 != 0)" ( (binary_expression "bVar25 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar22 = bfd_make_section_with_flags(obfd,".stab",0x2108);\n        iVar52 = bfd_make_section_with_flags(obfd,".stabstr",0x2108);\n        if ((((iVar22 == 0) || (iVar52 == 0)) ||\n            (iVar43 = bfd_set_section_size(obfd,iVar22,file_alignment._0_4_,file_alignment._4_4_),\n            iVar43 == 0)) ||\n           (iVar43 = bfd_set_section_size(obfd,iVar52,contents,local_30), iVar43 == 0)) {\n          pcVar27 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar22 + 0x58) = 2;\n          *(undefined4 *)(iVar52 + 0x58) = 0;\n          iVar22 = bfd_set_section_contents\n                             (obfd,iVar22,syms,0,0,file_alignment._0_4_,file_alignment._4_4_,iVar43)\n          ;\n          if ((iVar22 != 0) &&\n             (iVar22 = bfd_set_section_contents\n                                 (obfd,iVar52,strings,0,0,contents,local_30,extraout_ECX),\n             iVar22 != 0)) goto LAB_00019e4d;\n          pcVar27 = "can\'t set debugging section contents";\n          iVar22 = iVar52;\n        }\n        pcVar27 = (char *)dcgettext(0,pcVar27,5,iVar22);\n        bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27);\n      }" { (expression_statement "iVar22 = bfd_make_section_with_flags(obfd,".stab",0x2108);" (assignment_expression "iVar22 = 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 "iVar52 = bfd_make_section_with_flags(obfd,".stabstr",0x2108);" (assignment_expression "iVar52 = 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 ((((iVar22 == 0) || (iVar52 == 0)) ||\n            (iVar43 = bfd_set_section_size(obfd,iVar22,file_alignment._0_4_,file_alignment._4_4_),\n            iVar43 == 0)) ||\n           (iVar43 = bfd_set_section_size(obfd,iVar52,contents,local_30), iVar43 == 0)) {\n          pcVar27 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar22 + 0x58) = 2;\n          *(undefined4 *)(iVar52 + 0x58) = 0;\n          iVar22 = bfd_set_section_contents\n                             (obfd,iVar22,syms,0,0,file_alignment._0_4_,file_alignment._4_4_,iVar43)\n          ;\n          if ((iVar22 != 0) &&\n             (iVar22 = bfd_set_section_contents\n                                 (obfd,iVar52,strings,0,0,contents,local_30,extraout_ECX),\n             iVar22 != 0)) goto LAB_00019e4d;\n          pcVar27 = "can\'t set debugging section contents";\n          iVar22 = iVar52;\n        }" if (parenthesized_expression "((((iVar22 == 0) || (iVar52 == 0)) ||\n            (iVar43 = bfd_set_section_size(obfd,iVar22,file_alignment._0_4_,file_alignment._4_4_),\n            iVar43 == 0)) ||\n           (iVar43 = bfd_set_section_size(obfd,iVar52,contents,local_30), iVar43 == 0))" ( (binary_expression "(((iVar22 == 0) || (iVar52 == 0)) ||\n            (iVar43 = bfd_set_section_size(obfd,iVar22,file_alignment._0_4_,file_alignment._4_4_),\n            iVar43 == 0)) ||\n           (iVar43 = bfd_set_section_size(obfd,iVar52,contents,local_30), iVar43 == 0)" (parenthesized_expression "(((iVar22 == 0) || (iVar52 == 0)) ||\n            (iVar43 = bfd_set_section_size(obfd,iVar22,file_alignment._0_4_,file_alignment._4_4_),\n            iVar43 == 0))" ( (binary_expression "((iVar22 == 0) || (iVar52 == 0)) ||\n            (iVar43 = bfd_set_section_size(obfd,iVar22,file_alignment._0_4_,file_alignment._4_4_),\n            iVar43 == 0)" (parenthesized_expression "((iVar22 == 0) || (iVar52 == 0))" ( (binary_expression "(iVar22 == 0) || (iVar52 == 0)" (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar52 == 0)" ( (binary_expression "iVar52 == 0" identifier == number_literal) ))) )) || (parenthesized_expression "(iVar43 = bfd_set_section_size(obfd,iVar22,file_alignment._0_4_,file_alignment._4_4_),\n            iVar43 == 0)" ( (comma_expression "iVar43 = bfd_set_section_size(obfd,iVar22,file_alignment._0_4_,file_alignment._4_4_),\n            iVar43 == 0" (assignment_expression "iVar43 = bfd_set_section_size(obfd,iVar22,file_alignment._0_4_,file_alignment._4_4_)" identifier = (call_expression "bfd_set_section_size(obfd,iVar22,file_alignment._0_4_,file_alignment._4_4_)" identifier (argument_list "(obfd,iVar22,file_alignment._0_4_,file_alignment._4_4_)" ( identifier , identifier , (field_expression "file_alignment._0_4_" identifier . field_identifier) , (field_expression "file_alignment._4_4_" identifier . field_identifier) )))) , (binary_expression "iVar43 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(iVar43 = bfd_set_section_size(obfd,iVar52,contents,local_30), iVar43 == 0)" ( (comma_expression "iVar43 = bfd_set_section_size(obfd,iVar52,contents,local_30), iVar43 == 0" (assignment_expression "iVar43 = bfd_set_section_size(obfd,iVar52,contents,local_30)" identifier = (call_expression "bfd_set_section_size(obfd,iVar52,contents,local_30)" identifier (argument_list "(obfd,iVar52,contents,local_30)" ( identifier , identifier , identifier , identifier )))) , (binary_expression "iVar43 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          pcVar27 = "can\'t create debugging section";\n        }" { (expression_statement "pcVar27 = "can\'t create debugging section";" (assignment_expression "pcVar27 = "can\'t create debugging section"" identifier = (string_literal ""can\'t create debugging section"" " string_content escape_sequence string_content ")) ;) }) (else_clause "else {\n          *(undefined4 *)(iVar22 + 0x58) = 2;\n          *(undefined4 *)(iVar52 + 0x58) = 0;\n          iVar22 = bfd_set_section_contents\n                             (obfd,iVar22,syms,0,0,file_alignment._0_4_,file_alignment._4_4_,iVar43)\n          ;\n          if ((iVar22 != 0) &&\n             (iVar22 = bfd_set_section_contents\n                                 (obfd,iVar52,strings,0,0,contents,local_30,extraout_ECX),\n             iVar22 != 0)) goto LAB_00019e4d;\n          pcVar27 = "can\'t set debugging section contents";\n          iVar22 = iVar52;\n        }" else (compound_statement "{\n          *(undefined4 *)(iVar22 + 0x58) = 2;\n          *(undefined4 *)(iVar52 + 0x58) = 0;\n          iVar22 = bfd_set_section_contents\n                             (obfd,iVar22,syms,0,0,file_alignment._0_4_,file_alignment._4_4_,iVar43)\n          ;\n          if ((iVar22 != 0) &&\n             (iVar22 = bfd_set_section_contents\n                                 (obfd,iVar52,strings,0,0,contents,local_30,extraout_ECX),\n             iVar22 != 0)) goto LAB_00019e4d;\n          pcVar27 = "can\'t set debugging section contents";\n          iVar22 = iVar52;\n        }" { (expression_statement "*(undefined4 *)(iVar22 + 0x58) = 2;" (assignment_expression "*(undefined4 *)(iVar22 + 0x58) = 2" (pointer_expression "*(undefined4 *)(iVar22 + 0x58)" * (cast_expression "(undefined4 *)(iVar22 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x58)" ( (binary_expression "iVar22 + 0x58" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar52 + 0x58) = 0;" (assignment_expression "*(undefined4 *)(iVar52 + 0x58) = 0" (pointer_expression "*(undefined4 *)(iVar52 + 0x58)" * (cast_expression "(undefined4 *)(iVar52 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar52 + 0x58)" ( (binary_expression "iVar52 + 0x58" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar22 = bfd_set_section_contents\n                             (obfd,iVar22,syms,0,0,file_alignment._0_4_,file_alignment._4_4_,iVar43)\n          ;" (assignment_expression "iVar22 = bfd_set_section_contents\n                             (obfd,iVar22,syms,0,0,file_alignment._0_4_,file_alignment._4_4_,iVar43)" identifier = (call_expression "bfd_set_section_contents\n                             (obfd,iVar22,syms,0,0,file_alignment._0_4_,file_alignment._4_4_,iVar43)" identifier (argument_list "(obfd,iVar22,syms,0,0,file_alignment._0_4_,file_alignment._4_4_,iVar43)" ( identifier , identifier , identifier , number_literal , number_literal , (field_expression "file_alignment._0_4_" identifier . field_identifier) , (field_expression "file_alignment._4_4_" identifier . field_identifier) , identifier )))) ;) (if_statement "if ((iVar22 != 0) &&\n             (iVar22 = bfd_set_section_contents\n                                 (obfd,iVar52,strings,0,0,contents,local_30,extraout_ECX),\n             iVar22 != 0)) goto LAB_00019e4d;" if (parenthesized_expression "((iVar22 != 0) &&\n             (iVar22 = bfd_set_section_contents\n                                 (obfd,iVar52,strings,0,0,contents,local_30,extraout_ECX),\n             iVar22 != 0))" ( (binary_expression "(iVar22 != 0) &&\n             (iVar22 = bfd_set_section_contents\n                                 (obfd,iVar52,strings,0,0,contents,local_30,extraout_ECX),\n             iVar22 != 0)" (parenthesized_expression "(iVar22 != 0)" ( (binary_expression "iVar22 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar22 = bfd_set_section_contents\n                                 (obfd,iVar52,strings,0,0,contents,local_30,extraout_ECX),\n             iVar22 != 0)" ( (comma_expression "iVar22 = bfd_set_section_contents\n                                 (obfd,iVar52,strings,0,0,contents,local_30,extraout_ECX),\n             iVar22 != 0" (assignment_expression "iVar22 = bfd_set_section_contents\n                                 (obfd,iVar52,strings,0,0,contents,local_30,extraout_ECX)" identifier = (call_expression "bfd_set_section_contents\n                                 (obfd,iVar52,strings,0,0,contents,local_30,extraout_ECX)" identifier (argument_list "(obfd,iVar52,strings,0,0,contents,local_30,extraout_ECX)" ( identifier , identifier , identifier , number_literal , number_literal , identifier , identifier , identifier )))) , (binary_expression "iVar22 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00019e4d;" goto statement_identifier ;)) (expression_statement "pcVar27 = "can\'t set debugging section contents";" (assignment_expression "pcVar27 = "can\'t set debugging section contents"" identifier = (string_literal ""can\'t set debugging section contents"" " string_content escape_sequence string_content ")) ;) (expression_statement "iVar22 = iVar52;" (assignment_expression "iVar22 = iVar52" identifier = identifier) ;) }))) (expression_statement "pcVar27 = (char *)dcgettext(0,pcVar27,5,iVar22);" (assignment_expression "pcVar27 = (char *)dcgettext(0,pcVar27,5,iVar22)" identifier = (cast_expression "(char *)dcgettext(0,pcVar27,5,iVar22)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar27,5,iVar22)" identifier (argument_list "(0,pcVar27,5,iVar22)" ( number_literal , identifier , number_literal , identifier ))))) ;) (expression_statement "bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27);" (call_expression "bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27)" identifier (argument_list "((char *)0x0,obfd,(asection *)0x0,pcVar27)" ( (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      uVar32 = *(undefined4 *)((bfd_section *)obfd)->id;\n      pcVar27 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",5);\n      bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27,uVar32);\n    }" else (compound_statement "{\n      uVar32 = *(undefined4 *)((bfd_section *)obfd)->id;\n      pcVar27 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",5);\n      bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27,uVar32);\n    }" { (expression_statement "uVar32 = *(undefined4 *)((bfd_section *)obfd)->id;" (assignment_expression "uVar32 = *(undefined4 *)((bfd_section *)obfd)->id" identifier = (pointer_expression "*(undefined4 *)((bfd_section *)obfd)->id" * (cast_expression "(undefined4 *)((bfd_section *)obfd)->id" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((bfd_section *)obfd)->id" (parenthesized_expression "((bfd_section *)obfd)" ( (cast_expression "(bfd_section *)obfd" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)))) ;) (expression_statement "pcVar27 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",5);" (assignment_expression "pcVar27 = (char *)dcgettext(0,"don\'t know how to write debugging information for %s",5)" identifier = (cast_expression "(char *)dcgettext(0,"don\'t know how to write debugging information for %s",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (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 "bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27,uVar32);" (call_expression "bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27,uVar32)" identifier (argument_list "((char *)0x0,obfd,(asection *)0x0,pcVar27,uVar32)" ( (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 ;) })) (labeled_statement "LAB_00019e4d:\n  bfd_set_symtab(obfd,osympp,local_8c);" statement_identifier : (expression_statement "bfd_set_symtab(obfd,osympp,local_8c);" (call_expression "bfd_set_symtab(obfd,osympp,local_8c)" identifier (argument_list "(obfd,osympp,local_8c)" ( identifier , identifier , identifier ))) ;)) (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 (psVar57 = add_sections; pbVar35 = (bfd_section *)obfd, psVar17 = update_sections,\n      psVar57 != (section_add *)0x0; psVar57 = psVar57->next) {\n    iVar22 = bfd_set_section_contents(obfd,psVar57->section,psVar57->contents,0,0,psVar57->size,0);\n    if (iVar22 == 0) {\nLAB_00019d5e:\n      bfd_nonfatal_message((char *)0x0,obfd,psVar57->section,(char *)0x0);\n      return 0;\n    }\n  }" for ( (assignment_expression "psVar57 = add_sections" identifier = identifier) ; (comma_expression "pbVar35 = (bfd_section *)obfd, psVar17 = update_sections,\n      psVar57 != (section_add *)0x0" (assignment_expression "pbVar35 = (bfd_section *)obfd" identifier = (cast_expression "(bfd_section *)obfd" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (comma_expression "psVar17 = update_sections,\n      psVar57 != (section_add *)0x0" (assignment_expression "psVar17 = update_sections" identifier = identifier) , (binary_expression "psVar57 != (section_add *)0x0" identifier != (cast_expression "(section_add *)0x0" ( (type_descriptor "section_add *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))) ; (assignment_expression "psVar57 = psVar57->next" identifier = (field_expression "psVar57->next" identifier -> field_identifier)) ) (compound_statement "{\n    iVar22 = bfd_set_section_contents(obfd,psVar57->section,psVar57->contents,0,0,psVar57->size,0);\n    if (iVar22 == 0) {\nLAB_00019d5e:\n      bfd_nonfatal_message((char *)0x0,obfd,psVar57->section,(char *)0x0);\n      return 0;\n    }\n  }" { (expression_statement "iVar22 = bfd_set_section_contents(obfd,psVar57->section,psVar57->contents,0,0,psVar57->size,0);" (assignment_expression "iVar22 = bfd_set_section_contents(obfd,psVar57->section,psVar57->contents,0,0,psVar57->size,0)" identifier = (call_expression "bfd_set_section_contents(obfd,psVar57->section,psVar57->contents,0,0,psVar57->size,0)" identifier (argument_list "(obfd,psVar57->section,psVar57->contents,0,0,psVar57->size,0)" ( identifier , (field_expression "psVar57->section" identifier -> field_identifier) , (field_expression "psVar57->contents" identifier -> field_identifier) , number_literal , number_literal , (field_expression "psVar57->size" identifier -> field_identifier) , number_literal )))) ;) (if_statement "if (iVar22 == 0) {\nLAB_00019d5e:\n      bfd_nonfatal_message((char *)0x0,obfd,psVar57->section,(char *)0x0);\n      return 0;\n    }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00019d5e:\n      bfd_nonfatal_message((char *)0x0,obfd,psVar57->section,(char *)0x0);\n      return 0;\n    }" { (labeled_statement "LAB_00019d5e:\n      bfd_nonfatal_message((char *)0x0,obfd,psVar57->section,(char *)0x0);" statement_identifier : (expression_statement "bfd_nonfatal_message((char *)0x0,obfd,psVar57->section,(char *)0x0);" (call_expression "bfd_nonfatal_message((char *)0x0,obfd,psVar57->section,(char *)0x0)" identifier (argument_list "((char *)0x0,obfd,psVar57->section,(char *)0x0)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (field_expression "psVar57->section" identifier -> field_identifier) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;)) (return_statement "return 0;" return number_literal ;) })) })) (while_statement "while( true ) {\n    if (psVar17 == (section_add *)0x0) {\n      paVar30 = (asection *)0x0;\n      if (merge_notes != 0) {\n        paVar30 = (asection *)bfd_get_section_by_name(obfd,".gnu.build.attributes");\n        if (((paVar30 == (asection *)0x0) || (merge_notes == 0)) ||\n           ((*(int *)(((bfd_section *)obfd)->id + 4) != 5 ||\n            (bVar25 = is_merged_note_section\n                                ((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1_00),\n            bVar25 == 0)))) {\n          if (is_strip == 0) {\n            pcVar27 = (char *)dcgettext(0,"could not find any mergeable note sections",5,0);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n          }\n        }\n        else {\n          iVar22 = bfd_set_section_contents\n                             (obfd,paVar30,merged_notes,0,0,(char *)merged_size,merged_size._4_4_,\n                              bVar25);\n          if (iVar22 == 0) {\n            pcVar27 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n            return 0;\n          }\n        }\n        free(merged_notes);\n        merged_notes = (bfd_byte *)0x0;\n        merge_notes = 0;\n        pbVar35 = (bfd_section *)obfd;\n      }\n      if ((gnu_debuglink_filename != (char *)0x0) &&\n         (iVar22 = bfd_fill_in_gnu_debuglink_section(obfd,local_c4,gnu_debuglink_filename),\n         pcVar27 = gnu_debuglink_filename, iVar22 == 0)) {\n        pcVar26 = (char *)dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar26,pcVar27);\n        return 0;\n      }\n      if (gap_fill_set != 0 || pad_to_set != 0) {\n        paVar30 = (asection *)0x2000;\n        if (local_bc == 0 && (uint)((asection *)0x2000 < local_b8) <= -local_bc) {\n          paVar30 = local_b8;\n        }\n        puVar41 = (undefined4 *)xmalloc(paVar30);\n        pcVar27 = (char *)((uint)gap_fill * 0x1010101);\n        if (paVar30 < (asection *)0x4) {\n          if ((paVar30 != (asection *)0x0) &&\n             (*(char *)puVar41 = (char)pcVar27, ((uint)paVar30 & 2) != 0)) {\n            *(short *)((int)puVar41 + -2 + (int)paVar30) = (short)pcVar27;\n          }\n        }\n        else {\n          *puVar41 = pcVar27;\n          *(char **)((int)(puVar41 + -1) + (int)paVar30) = pcVar27;\n          pbVar35 = (bfd_section *)((uint)(puVar41 + 1) & 0xfffffffc);\n          for (uVar63 = (uint)(((int)puVar41 - (int)((uint)(puVar41 + 1) & 0xfffffffc)) +\n                              (int)paVar30) >> 2; uVar63 != 0; uVar63 = uVar63 - 1) {\n            pbVar35->name = pcVar27;\n            pbVar35 = (bfd_section *)((int)pbVar35 + (uint)bVar71 * -8 + 4);\n          }\n        }\n        iVar22 = (int)((bfd_section *)obfd)->filepos;\n        if (iVar22 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar44 = local_64;\n            pbVar35 = *(bfd_section **)((int)local_b4 + (int)local_64 * 8 + 4);\n            paVar30 = *(asection **)((int)local_b4 + (int)local_64 * 8);\n            if (pbVar35 != (bfd_section *)0x0 || paVar30 != (asection *)0x0) {\n              piVar4 = (int *)((int)local_a8 + local_64 * 4);\n              local_64 = *(int **)((int)local_a8 + local_64 * 4);\n              local_6c = (bfd_section *)((int)*(asection **)((int)local_64 + 0x2c) - (int)paVar30);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)pbVar35) -\n                         (uint)(*(asection **)((int)local_64 + 0x2c) < paVar30);\n              while( true ) {\n                pbVar50 = pbVar35;\n                paVar53 = paVar30;\n                if (pbVar35 != (bfd_section *)0x0 ||\n                    (uint)-(int)pbVar35 < (uint)((asection *)0x2000 < paVar30)) {\n                  paVar53 = (asection *)0x2000;\n                  pbVar50 = (bfd_section *)0x0;\n                }\n                iVar52 = bfd_set_section_contents\n                                   (obfd,local_64,puVar41,local_6c,local_68,paVar53,pbVar50);\n                if (iVar52 == 0) {\n                  bfd_nonfatal_message((char *)0x0,obfd,(asection *)*piVar4,(char *)0x0);\n                  return 0;\n                }\n                bVar69 = paVar30 < paVar53;\n                paVar30 = (asection *)((int)paVar30 - (int)paVar53);\n                pbVar35 = (bfd_section *)((int)pbVar35 + (-(uint)bVar69 - (int)pbVar50));\n                bVar69 = CARRY4((uint)local_6c,(uint)paVar53);\n                local_6c = (bfd_section *)((int)&paVar53->name + (int)local_6c);\n                local_68 = (int)&pbVar50->name + (uint)bVar69 + local_68;\n                if (pbVar35 == (bfd_section *)0x0 && paVar30 == (asection *)0x0) break;\n                local_64 = *(int **)((int)local_a8 + piVar44 * 4);\n              }\n            }\n            local_64 = (int *)((int)piVar44 + 1);\n          } while ((int *)iVar22 != local_64);\n        }\n      }\n      iVar22 = (**(code **)(((bfd_section *)obfd)->id + 0xa8))(ibfd,obfd);\n      if (iVar22 == 0) {\n        pcVar27 = (char *)dcgettext(0,"error copying private BFD data",5,pbVar35);\n        bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27);\n        return 0;\n      }\n      if ((use_alt_mach_code != 0) &&\n         (iVar22 = bfd_alt_mach_code(obfd,use_alt_mach_code,paVar30,paVar30),\n         uVar24 = use_alt_mach_code, iVar22 == 0)) {\n        pcVar27 = (char *)dcgettext(0,"this target does not support %lu alternative machine codes",5\n                                    ,pbVar35);\n        non_fatal(pcVar27,uVar24);\n        if (*(int *)(((bfd_section *)obfd)->id + 4) != 5) {\n          pcVar27 = (char *)dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          non_fatal(pcVar27);\n          return 1;\n        }\n        pcVar27 = (char *)dcgettext(0,"treating that number as an absolute e_machine value instead",\n                                    5,uVar24);\n        non_fatal(pcVar27);\n        *(short *)(((bfd_section *)obfd)->target_index + 0x32) = (short)use_alt_mach_code;\n      }\n      return 1;\n    }\n    pbVar35 = psVar17->section->output_section;\n    bVar25 = bfd_set_section_contents(obfd,pbVar35,psVar17->contents,0,0,psVar17->size,0);\n    local_6c = (bfd_section *)obfd;\n    if (bVar25 == 0) break;\n    psVar17 = psVar17->next;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if (psVar17 == (section_add *)0x0) {\n      paVar30 = (asection *)0x0;\n      if (merge_notes != 0) {\n        paVar30 = (asection *)bfd_get_section_by_name(obfd,".gnu.build.attributes");\n        if (((paVar30 == (asection *)0x0) || (merge_notes == 0)) ||\n           ((*(int *)(((bfd_section *)obfd)->id + 4) != 5 ||\n            (bVar25 = is_merged_note_section\n                                ((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1_00),\n            bVar25 == 0)))) {\n          if (is_strip == 0) {\n            pcVar27 = (char *)dcgettext(0,"could not find any mergeable note sections",5,0);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n          }\n        }\n        else {\n          iVar22 = bfd_set_section_contents\n                             (obfd,paVar30,merged_notes,0,0,(char *)merged_size,merged_size._4_4_,\n                              bVar25);\n          if (iVar22 == 0) {\n            pcVar27 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n            return 0;\n          }\n        }\n        free(merged_notes);\n        merged_notes = (bfd_byte *)0x0;\n        merge_notes = 0;\n        pbVar35 = (bfd_section *)obfd;\n      }\n      if ((gnu_debuglink_filename != (char *)0x0) &&\n         (iVar22 = bfd_fill_in_gnu_debuglink_section(obfd,local_c4,gnu_debuglink_filename),\n         pcVar27 = gnu_debuglink_filename, iVar22 == 0)) {\n        pcVar26 = (char *)dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar26,pcVar27);\n        return 0;\n      }\n      if (gap_fill_set != 0 || pad_to_set != 0) {\n        paVar30 = (asection *)0x2000;\n        if (local_bc == 0 && (uint)((asection *)0x2000 < local_b8) <= -local_bc) {\n          paVar30 = local_b8;\n        }\n        puVar41 = (undefined4 *)xmalloc(paVar30);\n        pcVar27 = (char *)((uint)gap_fill * 0x1010101);\n        if (paVar30 < (asection *)0x4) {\n          if ((paVar30 != (asection *)0x0) &&\n             (*(char *)puVar41 = (char)pcVar27, ((uint)paVar30 & 2) != 0)) {\n            *(short *)((int)puVar41 + -2 + (int)paVar30) = (short)pcVar27;\n          }\n        }\n        else {\n          *puVar41 = pcVar27;\n          *(char **)((int)(puVar41 + -1) + (int)paVar30) = pcVar27;\n          pbVar35 = (bfd_section *)((uint)(puVar41 + 1) & 0xfffffffc);\n          for (uVar63 = (uint)(((int)puVar41 - (int)((uint)(puVar41 + 1) & 0xfffffffc)) +\n                              (int)paVar30) >> 2; uVar63 != 0; uVar63 = uVar63 - 1) {\n            pbVar35->name = pcVar27;\n            pbVar35 = (bfd_section *)((int)pbVar35 + (uint)bVar71 * -8 + 4);\n          }\n        }\n        iVar22 = (int)((bfd_section *)obfd)->filepos;\n        if (iVar22 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar44 = local_64;\n            pbVar35 = *(bfd_section **)((int)local_b4 + (int)local_64 * 8 + 4);\n            paVar30 = *(asection **)((int)local_b4 + (int)local_64 * 8);\n            if (pbVar35 != (bfd_section *)0x0 || paVar30 != (asection *)0x0) {\n              piVar4 = (int *)((int)local_a8 + local_64 * 4);\n              local_64 = *(int **)((int)local_a8 + local_64 * 4);\n              local_6c = (bfd_section *)((int)*(asection **)((int)local_64 + 0x2c) - (int)paVar30);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)pbVar35) -\n                         (uint)(*(asection **)((int)local_64 + 0x2c) < paVar30);\n              while( true ) {\n                pbVar50 = pbVar35;\n                paVar53 = paVar30;\n                if (pbVar35 != (bfd_section *)0x0 ||\n                    (uint)-(int)pbVar35 < (uint)((asection *)0x2000 < paVar30)) {\n                  paVar53 = (asection *)0x2000;\n                  pbVar50 = (bfd_section *)0x0;\n                }\n                iVar52 = bfd_set_section_contents\n                                   (obfd,local_64,puVar41,local_6c,local_68,paVar53,pbVar50);\n                if (iVar52 == 0) {\n                  bfd_nonfatal_message((char *)0x0,obfd,(asection *)*piVar4,(char *)0x0);\n                  return 0;\n                }\n                bVar69 = paVar30 < paVar53;\n                paVar30 = (asection *)((int)paVar30 - (int)paVar53);\n                pbVar35 = (bfd_section *)((int)pbVar35 + (-(uint)bVar69 - (int)pbVar50));\n                bVar69 = CARRY4((uint)local_6c,(uint)paVar53);\n                local_6c = (bfd_section *)((int)&paVar53->name + (int)local_6c);\n                local_68 = (int)&pbVar50->name + (uint)bVar69 + local_68;\n                if (pbVar35 == (bfd_section *)0x0 && paVar30 == (asection *)0x0) break;\n                local_64 = *(int **)((int)local_a8 + piVar44 * 4);\n              }\n            }\n            local_64 = (int *)((int)piVar44 + 1);\n          } while ((int *)iVar22 != local_64);\n        }\n      }\n      iVar22 = (**(code **)(((bfd_section *)obfd)->id + 0xa8))(ibfd,obfd);\n      if (iVar22 == 0) {\n        pcVar27 = (char *)dcgettext(0,"error copying private BFD data",5,pbVar35);\n        bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27);\n        return 0;\n      }\n      if ((use_alt_mach_code != 0) &&\n         (iVar22 = bfd_alt_mach_code(obfd,use_alt_mach_code,paVar30,paVar30),\n         uVar24 = use_alt_mach_code, iVar22 == 0)) {\n        pcVar27 = (char *)dcgettext(0,"this target does not support %lu alternative machine codes",5\n                                    ,pbVar35);\n        non_fatal(pcVar27,uVar24);\n        if (*(int *)(((bfd_section *)obfd)->id + 4) != 5) {\n          pcVar27 = (char *)dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          non_fatal(pcVar27);\n          return 1;\n        }\n        pcVar27 = (char *)dcgettext(0,"treating that number as an absolute e_machine value instead",\n                                    5,uVar24);\n        non_fatal(pcVar27);\n        *(short *)(((bfd_section *)obfd)->target_index + 0x32) = (short)use_alt_mach_code;\n      }\n      return 1;\n    }\n    pbVar35 = psVar17->section->output_section;\n    bVar25 = bfd_set_section_contents(obfd,pbVar35,psVar17->contents,0,0,psVar17->size,0);\n    local_6c = (bfd_section *)obfd;\n    if (bVar25 == 0) break;\n    psVar17 = psVar17->next;\n  }" { (if_statement "if (psVar17 == (section_add *)0x0) {\n      paVar30 = (asection *)0x0;\n      if (merge_notes != 0) {\n        paVar30 = (asection *)bfd_get_section_by_name(obfd,".gnu.build.attributes");\n        if (((paVar30 == (asection *)0x0) || (merge_notes == 0)) ||\n           ((*(int *)(((bfd_section *)obfd)->id + 4) != 5 ||\n            (bVar25 = is_merged_note_section\n                                ((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1_00),\n            bVar25 == 0)))) {\n          if (is_strip == 0) {\n            pcVar27 = (char *)dcgettext(0,"could not find any mergeable note sections",5,0);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n          }\n        }\n        else {\n          iVar22 = bfd_set_section_contents\n                             (obfd,paVar30,merged_notes,0,0,(char *)merged_size,merged_size._4_4_,\n                              bVar25);\n          if (iVar22 == 0) {\n            pcVar27 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n            return 0;\n          }\n        }\n        free(merged_notes);\n        merged_notes = (bfd_byte *)0x0;\n        merge_notes = 0;\n        pbVar35 = (bfd_section *)obfd;\n      }\n      if ((gnu_debuglink_filename != (char *)0x0) &&\n         (iVar22 = bfd_fill_in_gnu_debuglink_section(obfd,local_c4,gnu_debuglink_filename),\n         pcVar27 = gnu_debuglink_filename, iVar22 == 0)) {\n        pcVar26 = (char *)dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar26,pcVar27);\n        return 0;\n      }\n      if (gap_fill_set != 0 || pad_to_set != 0) {\n        paVar30 = (asection *)0x2000;\n        if (local_bc == 0 && (uint)((asection *)0x2000 < local_b8) <= -local_bc) {\n          paVar30 = local_b8;\n        }\n        puVar41 = (undefined4 *)xmalloc(paVar30);\n        pcVar27 = (char *)((uint)gap_fill * 0x1010101);\n        if (paVar30 < (asection *)0x4) {\n          if ((paVar30 != (asection *)0x0) &&\n             (*(char *)puVar41 = (char)pcVar27, ((uint)paVar30 & 2) != 0)) {\n            *(short *)((int)puVar41 + -2 + (int)paVar30) = (short)pcVar27;\n          }\n        }\n        else {\n          *puVar41 = pcVar27;\n          *(char **)((int)(puVar41 + -1) + (int)paVar30) = pcVar27;\n          pbVar35 = (bfd_section *)((uint)(puVar41 + 1) & 0xfffffffc);\n          for (uVar63 = (uint)(((int)puVar41 - (int)((uint)(puVar41 + 1) & 0xfffffffc)) +\n                              (int)paVar30) >> 2; uVar63 != 0; uVar63 = uVar63 - 1) {\n            pbVar35->name = pcVar27;\n            pbVar35 = (bfd_section *)((int)pbVar35 + (uint)bVar71 * -8 + 4);\n          }\n        }\n        iVar22 = (int)((bfd_section *)obfd)->filepos;\n        if (iVar22 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar44 = local_64;\n            pbVar35 = *(bfd_section **)((int)local_b4 + (int)local_64 * 8 + 4);\n            paVar30 = *(asection **)((int)local_b4 + (int)local_64 * 8);\n            if (pbVar35 != (bfd_section *)0x0 || paVar30 != (asection *)0x0) {\n              piVar4 = (int *)((int)local_a8 + local_64 * 4);\n              local_64 = *(int **)((int)local_a8 + local_64 * 4);\n              local_6c = (bfd_section *)((int)*(asection **)((int)local_64 + 0x2c) - (int)paVar30);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)pbVar35) -\n                         (uint)(*(asection **)((int)local_64 + 0x2c) < paVar30);\n              while( true ) {\n                pbVar50 = pbVar35;\n                paVar53 = paVar30;\n                if (pbVar35 != (bfd_section *)0x0 ||\n                    (uint)-(int)pbVar35 < (uint)((asection *)0x2000 < paVar30)) {\n                  paVar53 = (asection *)0x2000;\n                  pbVar50 = (bfd_section *)0x0;\n                }\n                iVar52 = bfd_set_section_contents\n                                   (obfd,local_64,puVar41,local_6c,local_68,paVar53,pbVar50);\n                if (iVar52 == 0) {\n                  bfd_nonfatal_message((char *)0x0,obfd,(asection *)*piVar4,(char *)0x0);\n                  return 0;\n                }\n                bVar69 = paVar30 < paVar53;\n                paVar30 = (asection *)((int)paVar30 - (int)paVar53);\n                pbVar35 = (bfd_section *)((int)pbVar35 + (-(uint)bVar69 - (int)pbVar50));\n                bVar69 = CARRY4((uint)local_6c,(uint)paVar53);\n                local_6c = (bfd_section *)((int)&paVar53->name + (int)local_6c);\n                local_68 = (int)&pbVar50->name + (uint)bVar69 + local_68;\n                if (pbVar35 == (bfd_section *)0x0 && paVar30 == (asection *)0x0) break;\n                local_64 = *(int **)((int)local_a8 + piVar44 * 4);\n              }\n            }\n            local_64 = (int *)((int)piVar44 + 1);\n          } while ((int *)iVar22 != local_64);\n        }\n      }\n      iVar22 = (**(code **)(((bfd_section *)obfd)->id + 0xa8))(ibfd,obfd);\n      if (iVar22 == 0) {\n        pcVar27 = (char *)dcgettext(0,"error copying private BFD data",5,pbVar35);\n        bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27);\n        return 0;\n      }\n      if ((use_alt_mach_code != 0) &&\n         (iVar22 = bfd_alt_mach_code(obfd,use_alt_mach_code,paVar30,paVar30),\n         uVar24 = use_alt_mach_code, iVar22 == 0)) {\n        pcVar27 = (char *)dcgettext(0,"this target does not support %lu alternative machine codes",5\n                                    ,pbVar35);\n        non_fatal(pcVar27,uVar24);\n        if (*(int *)(((bfd_section *)obfd)->id + 4) != 5) {\n          pcVar27 = (char *)dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          non_fatal(pcVar27);\n          return 1;\n        }\n        pcVar27 = (char *)dcgettext(0,"treating that number as an absolute e_machine value instead",\n                                    5,uVar24);\n        non_fatal(pcVar27);\n        *(short *)(((bfd_section *)obfd)->target_index + 0x32) = (short)use_alt_mach_code;\n      }\n      return 1;\n    }" if (parenthesized_expression "(psVar17 == (section_add *)0x0)" ( (binary_expression "psVar17 == (section_add *)0x0" identifier == (cast_expression "(section_add *)0x0" ( (type_descriptor "section_add *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      paVar30 = (asection *)0x0;\n      if (merge_notes != 0) {\n        paVar30 = (asection *)bfd_get_section_by_name(obfd,".gnu.build.attributes");\n        if (((paVar30 == (asection *)0x0) || (merge_notes == 0)) ||\n           ((*(int *)(((bfd_section *)obfd)->id + 4) != 5 ||\n            (bVar25 = is_merged_note_section\n                                ((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1_00),\n            bVar25 == 0)))) {\n          if (is_strip == 0) {\n            pcVar27 = (char *)dcgettext(0,"could not find any mergeable note sections",5,0);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n          }\n        }\n        else {\n          iVar22 = bfd_set_section_contents\n                             (obfd,paVar30,merged_notes,0,0,(char *)merged_size,merged_size._4_4_,\n                              bVar25);\n          if (iVar22 == 0) {\n            pcVar27 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n            return 0;\n          }\n        }\n        free(merged_notes);\n        merged_notes = (bfd_byte *)0x0;\n        merge_notes = 0;\n        pbVar35 = (bfd_section *)obfd;\n      }\n      if ((gnu_debuglink_filename != (char *)0x0) &&\n         (iVar22 = bfd_fill_in_gnu_debuglink_section(obfd,local_c4,gnu_debuglink_filename),\n         pcVar27 = gnu_debuglink_filename, iVar22 == 0)) {\n        pcVar26 = (char *)dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar26,pcVar27);\n        return 0;\n      }\n      if (gap_fill_set != 0 || pad_to_set != 0) {\n        paVar30 = (asection *)0x2000;\n        if (local_bc == 0 && (uint)((asection *)0x2000 < local_b8) <= -local_bc) {\n          paVar30 = local_b8;\n        }\n        puVar41 = (undefined4 *)xmalloc(paVar30);\n        pcVar27 = (char *)((uint)gap_fill * 0x1010101);\n        if (paVar30 < (asection *)0x4) {\n          if ((paVar30 != (asection *)0x0) &&\n             (*(char *)puVar41 = (char)pcVar27, ((uint)paVar30 & 2) != 0)) {\n            *(short *)((int)puVar41 + -2 + (int)paVar30) = (short)pcVar27;\n          }\n        }\n        else {\n          *puVar41 = pcVar27;\n          *(char **)((int)(puVar41 + -1) + (int)paVar30) = pcVar27;\n          pbVar35 = (bfd_section *)((uint)(puVar41 + 1) & 0xfffffffc);\n          for (uVar63 = (uint)(((int)puVar41 - (int)((uint)(puVar41 + 1) & 0xfffffffc)) +\n                              (int)paVar30) >> 2; uVar63 != 0; uVar63 = uVar63 - 1) {\n            pbVar35->name = pcVar27;\n            pbVar35 = (bfd_section *)((int)pbVar35 + (uint)bVar71 * -8 + 4);\n          }\n        }\n        iVar22 = (int)((bfd_section *)obfd)->filepos;\n        if (iVar22 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar44 = local_64;\n            pbVar35 = *(bfd_section **)((int)local_b4 + (int)local_64 * 8 + 4);\n            paVar30 = *(asection **)((int)local_b4 + (int)local_64 * 8);\n            if (pbVar35 != (bfd_section *)0x0 || paVar30 != (asection *)0x0) {\n              piVar4 = (int *)((int)local_a8 + local_64 * 4);\n              local_64 = *(int **)((int)local_a8 + local_64 * 4);\n              local_6c = (bfd_section *)((int)*(asection **)((int)local_64 + 0x2c) - (int)paVar30);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)pbVar35) -\n                         (uint)(*(asection **)((int)local_64 + 0x2c) < paVar30);\n              while( true ) {\n                pbVar50 = pbVar35;\n                paVar53 = paVar30;\n                if (pbVar35 != (bfd_section *)0x0 ||\n                    (uint)-(int)pbVar35 < (uint)((asection *)0x2000 < paVar30)) {\n                  paVar53 = (asection *)0x2000;\n                  pbVar50 = (bfd_section *)0x0;\n                }\n                iVar52 = bfd_set_section_contents\n                                   (obfd,local_64,puVar41,local_6c,local_68,paVar53,pbVar50);\n                if (iVar52 == 0) {\n                  bfd_nonfatal_message((char *)0x0,obfd,(asection *)*piVar4,(char *)0x0);\n                  return 0;\n                }\n                bVar69 = paVar30 < paVar53;\n                paVar30 = (asection *)((int)paVar30 - (int)paVar53);\n                pbVar35 = (bfd_section *)((int)pbVar35 + (-(uint)bVar69 - (int)pbVar50));\n                bVar69 = CARRY4((uint)local_6c,(uint)paVar53);\n                local_6c = (bfd_section *)((int)&paVar53->name + (int)local_6c);\n                local_68 = (int)&pbVar50->name + (uint)bVar69 + local_68;\n                if (pbVar35 == (bfd_section *)0x0 && paVar30 == (asection *)0x0) break;\n                local_64 = *(int **)((int)local_a8 + piVar44 * 4);\n              }\n            }\n            local_64 = (int *)((int)piVar44 + 1);\n          } while ((int *)iVar22 != local_64);\n        }\n      }\n      iVar22 = (**(code **)(((bfd_section *)obfd)->id + 0xa8))(ibfd,obfd);\n      if (iVar22 == 0) {\n        pcVar27 = (char *)dcgettext(0,"error copying private BFD data",5,pbVar35);\n        bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27);\n        return 0;\n      }\n      if ((use_alt_mach_code != 0) &&\n         (iVar22 = bfd_alt_mach_code(obfd,use_alt_mach_code,paVar30,paVar30),\n         uVar24 = use_alt_mach_code, iVar22 == 0)) {\n        pcVar27 = (char *)dcgettext(0,"this target does not support %lu alternative machine codes",5\n                                    ,pbVar35);\n        non_fatal(pcVar27,uVar24);\n        if (*(int *)(((bfd_section *)obfd)->id + 4) != 5) {\n          pcVar27 = (char *)dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          non_fatal(pcVar27);\n          return 1;\n        }\n        pcVar27 = (char *)dcgettext(0,"treating that number as an absolute e_machine value instead",\n                                    5,uVar24);\n        non_fatal(pcVar27);\n        *(short *)(((bfd_section *)obfd)->target_index + 0x32) = (short)use_alt_mach_code;\n      }\n      return 1;\n    }" { (expression_statement "paVar30 = (asection *)0x0;" (assignment_expression "paVar30 = (asection *)0x0" identifier = (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (merge_notes != 0) {\n        paVar30 = (asection *)bfd_get_section_by_name(obfd,".gnu.build.attributes");\n        if (((paVar30 == (asection *)0x0) || (merge_notes == 0)) ||\n           ((*(int *)(((bfd_section *)obfd)->id + 4) != 5 ||\n            (bVar25 = is_merged_note_section\n                                ((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1_00),\n            bVar25 == 0)))) {\n          if (is_strip == 0) {\n            pcVar27 = (char *)dcgettext(0,"could not find any mergeable note sections",5,0);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n          }\n        }\n        else {\n          iVar22 = bfd_set_section_contents\n                             (obfd,paVar30,merged_notes,0,0,(char *)merged_size,merged_size._4_4_,\n                              bVar25);\n          if (iVar22 == 0) {\n            pcVar27 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n            return 0;\n          }\n        }\n        free(merged_notes);\n        merged_notes = (bfd_byte *)0x0;\n        merge_notes = 0;\n        pbVar35 = (bfd_section *)obfd;\n      }" if (parenthesized_expression "(merge_notes != 0)" ( (binary_expression "merge_notes != 0" identifier != number_literal) )) (compound_statement "{\n        paVar30 = (asection *)bfd_get_section_by_name(obfd,".gnu.build.attributes");\n        if (((paVar30 == (asection *)0x0) || (merge_notes == 0)) ||\n           ((*(int *)(((bfd_section *)obfd)->id + 4) != 5 ||\n            (bVar25 = is_merged_note_section\n                                ((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1_00),\n            bVar25 == 0)))) {\n          if (is_strip == 0) {\n            pcVar27 = (char *)dcgettext(0,"could not find any mergeable note sections",5,0);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n          }\n        }\n        else {\n          iVar22 = bfd_set_section_contents\n                             (obfd,paVar30,merged_notes,0,0,(char *)merged_size,merged_size._4_4_,\n                              bVar25);\n          if (iVar22 == 0) {\n            pcVar27 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n            return 0;\n          }\n        }\n        free(merged_notes);\n        merged_notes = (bfd_byte *)0x0;\n        merge_notes = 0;\n        pbVar35 = (bfd_section *)obfd;\n      }" { (expression_statement "paVar30 = (asection *)bfd_get_section_by_name(obfd,".gnu.build.attributes");" (assignment_expression "paVar30 = (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 (((paVar30 == (asection *)0x0) || (merge_notes == 0)) ||\n           ((*(int *)(((bfd_section *)obfd)->id + 4) != 5 ||\n            (bVar25 = is_merged_note_section\n                                ((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1_00),\n            bVar25 == 0)))) {\n          if (is_strip == 0) {\n            pcVar27 = (char *)dcgettext(0,"could not find any mergeable note sections",5,0);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n          }\n        }\n        else {\n          iVar22 = bfd_set_section_contents\n                             (obfd,paVar30,merged_notes,0,0,(char *)merged_size,merged_size._4_4_,\n                              bVar25);\n          if (iVar22 == 0) {\n            pcVar27 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n            return 0;\n          }\n        }" if (parenthesized_expression "(((paVar30 == (asection *)0x0) || (merge_notes == 0)) ||\n           ((*(int *)(((bfd_section *)obfd)->id + 4) != 5 ||\n            (bVar25 = is_merged_note_section\n                                ((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1_00),\n            bVar25 == 0))))" ( (binary_expression "((paVar30 == (asection *)0x0) || (merge_notes == 0)) ||\n           ((*(int *)(((bfd_section *)obfd)->id + 4) != 5 ||\n            (bVar25 = is_merged_note_section\n                                ((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1_00),\n            bVar25 == 0)))" (parenthesized_expression "((paVar30 == (asection *)0x0) || (merge_notes == 0))" ( (binary_expression "(paVar30 == (asection *)0x0) || (merge_notes == 0)" (parenthesized_expression "(paVar30 == (asection *)0x0)" ( (binary_expression "paVar30 == (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 "((*(int *)(((bfd_section *)obfd)->id + 4) != 5 ||\n            (bVar25 = is_merged_note_section\n                                ((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1_00),\n            bVar25 == 0)))" ( (parenthesized_expression "(*(int *)(((bfd_section *)obfd)->id + 4) != 5 ||\n            (bVar25 = is_merged_note_section\n                                ((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1_00),\n            bVar25 == 0))" ( (binary_expression "*(int *)(((bfd_section *)obfd)->id + 4) != 5 ||\n            (bVar25 = is_merged_note_section\n                                ((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1_00),\n            bVar25 == 0)" (binary_expression "*(int *)(((bfd_section *)obfd)->id + 4) != 5" (pointer_expression "*(int *)(((bfd_section *)obfd)->id + 4)" * (cast_expression "(int *)(((bfd_section *)obfd)->id + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((bfd_section *)obfd)->id + 4)" ( (binary_expression "((bfd_section *)obfd)->id + 4" (field_expression "((bfd_section *)obfd)->id" (parenthesized_expression "((bfd_section *)obfd)" ( (cast_expression "(bfd_section *)obfd" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) + number_literal) )))) != number_literal) || (parenthesized_expression "(bVar25 = is_merged_note_section\n                                ((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1_00),\n            bVar25 == 0)" ( (comma_expression "bVar25 = is_merged_note_section\n                                ((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1_00),\n            bVar25 == 0" (assignment_expression "bVar25 = is_merged_note_section\n                                ((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1_00)" identifier = (call_expression "is_merged_note_section\n                                ((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1_00)" identifier (argument_list "((bfd *)paVar30,(asection *)&paVar30->used_by_bfd,sec_1_00)" ( (cast_expression "(bfd *)paVar30" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(asection *)&paVar30->used_by_bfd" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar30->used_by_bfd" & (field_expression "paVar30->used_by_bfd" identifier -> field_identifier))) , identifier )))) , (binary_expression "bVar25 == 0" identifier == number_literal)) ))) )) ))) )) (compound_statement "{\n          if (is_strip == 0) {\n            pcVar27 = (char *)dcgettext(0,"could not find any mergeable note sections",5,0);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n          }\n        }" { (if_statement "if (is_strip == 0) {\n            pcVar27 = (char *)dcgettext(0,"could not find any mergeable note sections",5,0);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n          }" if (parenthesized_expression "(is_strip == 0)" ( (binary_expression "is_strip == 0" identifier == number_literal) )) (compound_statement "{\n            pcVar27 = (char *)dcgettext(0,"could not find any mergeable note sections",5,0);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n          }" { (expression_statement "pcVar27 = (char *)dcgettext(0,"could not find any mergeable note sections",5,0);" (assignment_expression "pcVar27 = (char *)dcgettext(0,"could not find any mergeable note sections",5,0)" identifier = (cast_expression "(char *)dcgettext(0,"could not find any mergeable note sections",5,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"could not find any mergeable note sections",5,0)" identifier (argument_list "(0,"could not find any mergeable note sections",5,0)" ( number_literal , (string_literal ""could not find any mergeable note sections"" " string_content ") , number_literal , number_literal ))))) ;) (expression_statement "bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);" (call_expression "bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27)" identifier (argument_list "((char *)0x0,obfd,paVar30,pcVar27)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier , identifier ))) ;) })) }) (else_clause "else {\n          iVar22 = bfd_set_section_contents\n                             (obfd,paVar30,merged_notes,0,0,(char *)merged_size,merged_size._4_4_,\n                              bVar25);\n          if (iVar22 == 0) {\n            pcVar27 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n            return 0;\n          }\n        }" else (compound_statement "{\n          iVar22 = bfd_set_section_contents\n                             (obfd,paVar30,merged_notes,0,0,(char *)merged_size,merged_size._4_4_,\n                              bVar25);\n          if (iVar22 == 0) {\n            pcVar27 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n            return 0;\n          }\n        }" { (expression_statement "iVar22 = bfd_set_section_contents\n                             (obfd,paVar30,merged_notes,0,0,(char *)merged_size,merged_size._4_4_,\n                              bVar25);" (assignment_expression "iVar22 = bfd_set_section_contents\n                             (obfd,paVar30,merged_notes,0,0,(char *)merged_size,merged_size._4_4_,\n                              bVar25)" identifier = (call_expression "bfd_set_section_contents\n                             (obfd,paVar30,merged_notes,0,0,(char *)merged_size,merged_size._4_4_,\n                              bVar25)" identifier (argument_list "(obfd,paVar30,merged_notes,0,0,(char *)merged_size,merged_size._4_4_,\n                              bVar25)" ( identifier , identifier , identifier , number_literal , number_literal , (cast_expression "(char *)merged_size" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (field_expression "merged_size._4_4_" identifier . field_identifier) , identifier )))) ;) (if_statement "if (iVar22 == 0) {\n            pcVar27 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n            return 0;\n          }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\n            pcVar27 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);\n            return 0;\n          }" { (expression_statement "pcVar27 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5,0);" (assignment_expression "pcVar27 = (char *)dcgettext(0,"error: failed to copy merged notes into output",5,0)" identifier = (cast_expression "(char *)dcgettext(0,"error: failed to copy merged notes into output",5,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"error: failed to copy merged notes into output",5,0)" identifier (argument_list "(0,"error: failed to copy merged notes into output",5,0)" ( number_literal , (string_literal ""error: failed to copy merged notes into output"" " string_content ") , number_literal , number_literal ))))) ;) (expression_statement "bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27);" (call_expression "bfd_nonfatal_message((char *)0x0,obfd,paVar30,pcVar27)" identifier (argument_list "((char *)0x0,obfd,paVar30,pcVar27)" ( (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) ;) (expression_statement "pbVar35 = (bfd_section *)obfd;" (assignment_expression "pbVar35 = (bfd_section *)obfd" identifier = (cast_expression "(bfd_section *)obfd" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (if_statement "if ((gnu_debuglink_filename != (char *)0x0) &&\n         (iVar22 = bfd_fill_in_gnu_debuglink_section(obfd,local_c4,gnu_debuglink_filename),\n         pcVar27 = gnu_debuglink_filename, iVar22 == 0)) {\n        pcVar26 = (char *)dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar26,pcVar27);\n        return 0;\n      }" if (parenthesized_expression "((gnu_debuglink_filename != (char *)0x0) &&\n         (iVar22 = bfd_fill_in_gnu_debuglink_section(obfd,local_c4,gnu_debuglink_filename),\n         pcVar27 = gnu_debuglink_filename, iVar22 == 0))" ( (binary_expression "(gnu_debuglink_filename != (char *)0x0) &&\n         (iVar22 = bfd_fill_in_gnu_debuglink_section(obfd,local_c4,gnu_debuglink_filename),\n         pcVar27 = gnu_debuglink_filename, iVar22 == 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 "(iVar22 = bfd_fill_in_gnu_debuglink_section(obfd,local_c4,gnu_debuglink_filename),\n         pcVar27 = gnu_debuglink_filename, iVar22 == 0)" ( (comma_expression "iVar22 = bfd_fill_in_gnu_debuglink_section(obfd,local_c4,gnu_debuglink_filename),\n         pcVar27 = gnu_debuglink_filename, iVar22 == 0" (assignment_expression "iVar22 = bfd_fill_in_gnu_debuglink_section(obfd,local_c4,gnu_debuglink_filename)" identifier = (call_expression "bfd_fill_in_gnu_debuglink_section(obfd,local_c4,gnu_debuglink_filename)" identifier (argument_list "(obfd,local_c4,gnu_debuglink_filename)" ( identifier , identifier , identifier )))) , (comma_expression "pcVar27 = gnu_debuglink_filename, iVar22 == 0" (assignment_expression "pcVar27 = gnu_debuglink_filename" identifier = identifier) , (binary_expression "iVar22 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n        pcVar26 = (char *)dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar26,pcVar27);\n        return 0;\n      }" { (expression_statement "pcVar26 = (char *)dcgettext(0,"cannot fill debug link section `%s\'",5,0);" (assignment_expression "pcVar26 = (char *)dcgettext(0,"cannot fill debug link section `%s\'",5,0)" identifier = (cast_expression "(char *)dcgettext(0,"cannot fill debug link section `%s\'",5,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"cannot fill debug link section `%s\'",5,0)" identifier (argument_list "(0,"cannot fill debug link section `%s\'",5,0)" ( number_literal , (string_literal ""cannot fill debug link section `%s\'"" " string_content escape_sequence ") , number_literal , number_literal ))))) ;) (expression_statement "bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar26,pcVar27);" (call_expression "bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar26,pcVar27)" identifier (argument_list "((char *)0x0,obfd,(asection *)0x0,pcVar26,pcVar27)" ( (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        paVar30 = (asection *)0x2000;\n        if (local_bc == 0 && (uint)((asection *)0x2000 < local_b8) <= -local_bc) {\n          paVar30 = local_b8;\n        }\n        puVar41 = (undefined4 *)xmalloc(paVar30);\n        pcVar27 = (char *)((uint)gap_fill * 0x1010101);\n        if (paVar30 < (asection *)0x4) {\n          if ((paVar30 != (asection *)0x0) &&\n             (*(char *)puVar41 = (char)pcVar27, ((uint)paVar30 & 2) != 0)) {\n            *(short *)((int)puVar41 + -2 + (int)paVar30) = (short)pcVar27;\n          }\n        }\n        else {\n          *puVar41 = pcVar27;\n          *(char **)((int)(puVar41 + -1) + (int)paVar30) = pcVar27;\n          pbVar35 = (bfd_section *)((uint)(puVar41 + 1) & 0xfffffffc);\n          for (uVar63 = (uint)(((int)puVar41 - (int)((uint)(puVar41 + 1) & 0xfffffffc)) +\n                              (int)paVar30) >> 2; uVar63 != 0; uVar63 = uVar63 - 1) {\n            pbVar35->name = pcVar27;\n            pbVar35 = (bfd_section *)((int)pbVar35 + (uint)bVar71 * -8 + 4);\n          }\n        }\n        iVar22 = (int)((bfd_section *)obfd)->filepos;\n        if (iVar22 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar44 = local_64;\n            pbVar35 = *(bfd_section **)((int)local_b4 + (int)local_64 * 8 + 4);\n            paVar30 = *(asection **)((int)local_b4 + (int)local_64 * 8);\n            if (pbVar35 != (bfd_section *)0x0 || paVar30 != (asection *)0x0) {\n              piVar4 = (int *)((int)local_a8 + local_64 * 4);\n              local_64 = *(int **)((int)local_a8 + local_64 * 4);\n              local_6c = (bfd_section *)((int)*(asection **)((int)local_64 + 0x2c) - (int)paVar30);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)pbVar35) -\n                         (uint)(*(asection **)((int)local_64 + 0x2c) < paVar30);\n              while( true ) {\n                pbVar50 = pbVar35;\n                paVar53 = paVar30;\n                if (pbVar35 != (bfd_section *)0x0 ||\n                    (uint)-(int)pbVar35 < (uint)((asection *)0x2000 < paVar30)) {\n                  paVar53 = (asection *)0x2000;\n                  pbVar50 = (bfd_section *)0x0;\n                }\n                iVar52 = bfd_set_section_contents\n                                   (obfd,local_64,puVar41,local_6c,local_68,paVar53,pbVar50);\n                if (iVar52 == 0) {\n                  bfd_nonfatal_message((char *)0x0,obfd,(asection *)*piVar4,(char *)0x0);\n                  return 0;\n                }\n                bVar69 = paVar30 < paVar53;\n                paVar30 = (asection *)((int)paVar30 - (int)paVar53);\n                pbVar35 = (bfd_section *)((int)pbVar35 + (-(uint)bVar69 - (int)pbVar50));\n                bVar69 = CARRY4((uint)local_6c,(uint)paVar53);\n                local_6c = (bfd_section *)((int)&paVar53->name + (int)local_6c);\n                local_68 = (int)&pbVar50->name + (uint)bVar69 + local_68;\n                if (pbVar35 == (bfd_section *)0x0 && paVar30 == (asection *)0x0) break;\n                local_64 = *(int **)((int)local_a8 + piVar44 * 4);\n              }\n            }\n            local_64 = (int *)((int)piVar44 + 1);\n          } while ((int *)iVar22 != local_64);\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        paVar30 = (asection *)0x2000;\n        if (local_bc == 0 && (uint)((asection *)0x2000 < local_b8) <= -local_bc) {\n          paVar30 = local_b8;\n        }\n        puVar41 = (undefined4 *)xmalloc(paVar30);\n        pcVar27 = (char *)((uint)gap_fill * 0x1010101);\n        if (paVar30 < (asection *)0x4) {\n          if ((paVar30 != (asection *)0x0) &&\n             (*(char *)puVar41 = (char)pcVar27, ((uint)paVar30 & 2) != 0)) {\n            *(short *)((int)puVar41 + -2 + (int)paVar30) = (short)pcVar27;\n          }\n        }\n        else {\n          *puVar41 = pcVar27;\n          *(char **)((int)(puVar41 + -1) + (int)paVar30) = pcVar27;\n          pbVar35 = (bfd_section *)((uint)(puVar41 + 1) & 0xfffffffc);\n          for (uVar63 = (uint)(((int)puVar41 - (int)((uint)(puVar41 + 1) & 0xfffffffc)) +\n                              (int)paVar30) >> 2; uVar63 != 0; uVar63 = uVar63 - 1) {\n            pbVar35->name = pcVar27;\n            pbVar35 = (bfd_section *)((int)pbVar35 + (uint)bVar71 * -8 + 4);\n          }\n        }\n        iVar22 = (int)((bfd_section *)obfd)->filepos;\n        if (iVar22 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar44 = local_64;\n            pbVar35 = *(bfd_section **)((int)local_b4 + (int)local_64 * 8 + 4);\n            paVar30 = *(asection **)((int)local_b4 + (int)local_64 * 8);\n            if (pbVar35 != (bfd_section *)0x0 || paVar30 != (asection *)0x0) {\n              piVar4 = (int *)((int)local_a8 + local_64 * 4);\n              local_64 = *(int **)((int)local_a8 + local_64 * 4);\n              local_6c = (bfd_section *)((int)*(asection **)((int)local_64 + 0x2c) - (int)paVar30);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)pbVar35) -\n                         (uint)(*(asection **)((int)local_64 + 0x2c) < paVar30);\n              while( true ) {\n                pbVar50 = pbVar35;\n                paVar53 = paVar30;\n                if (pbVar35 != (bfd_section *)0x0 ||\n                    (uint)-(int)pbVar35 < (uint)((asection *)0x2000 < paVar30)) {\n                  paVar53 = (asection *)0x2000;\n                  pbVar50 = (bfd_section *)0x0;\n                }\n                iVar52 = bfd_set_section_contents\n                                   (obfd,local_64,puVar41,local_6c,local_68,paVar53,pbVar50);\n                if (iVar52 == 0) {\n                  bfd_nonfatal_message((char *)0x0,obfd,(asection *)*piVar4,(char *)0x0);\n                  return 0;\n                }\n                bVar69 = paVar30 < paVar53;\n                paVar30 = (asection *)((int)paVar30 - (int)paVar53);\n                pbVar35 = (bfd_section *)((int)pbVar35 + (-(uint)bVar69 - (int)pbVar50));\n                bVar69 = CARRY4((uint)local_6c,(uint)paVar53);\n                local_6c = (bfd_section *)((int)&paVar53->name + (int)local_6c);\n                local_68 = (int)&pbVar50->name + (uint)bVar69 + local_68;\n                if (pbVar35 == (bfd_section *)0x0 && paVar30 == (asection *)0x0) break;\n                local_64 = *(int **)((int)local_a8 + piVar44 * 4);\n              }\n            }\n            local_64 = (int *)((int)piVar44 + 1);\n          } while ((int *)iVar22 != local_64);\n        }\n      }" { (expression_statement "paVar30 = (asection *)0x2000;" (assignment_expression "paVar30 = (asection *)0x2000" identifier = (cast_expression "(asection *)0x2000" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local_bc == 0 && (uint)((asection *)0x2000 < local_b8) <= -local_bc) {\n          paVar30 = local_b8;\n        }" if (parenthesized_expression "(local_bc == 0 && (uint)((asection *)0x2000 < local_b8) <= -local_bc)" ( (binary_expression "local_bc == 0 && (uint)((asection *)0x2000 < local_b8) <= -local_bc" (binary_expression "local_bc == 0" identifier == number_literal) && (binary_expression "(uint)((asection *)0x2000 < local_b8) <= -local_bc" (call_expression "(uint)((asection *)0x2000 < local_b8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((asection *)0x2000 < local_b8)" ( (binary_expression "(asection *)0x2000 < local_b8" (cast_expression "(asection *)0x2000" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) ))) <= (unary_expression "-local_bc" - identifier))) )) (compound_statement "{\n          paVar30 = local_b8;\n        }" { (expression_statement "paVar30 = local_b8;" (assignment_expression "paVar30 = local_b8" identifier = identifier) ;) })) (expression_statement "puVar41 = (undefined4 *)xmalloc(paVar30);" (assignment_expression "puVar41 = (undefined4 *)xmalloc(paVar30)" identifier = (cast_expression "(undefined4 *)xmalloc(paVar30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(paVar30)" identifier (argument_list "(paVar30)" ( identifier ))))) ;) (expression_statement "pcVar27 = (char *)((uint)gap_fill * 0x1010101);" (assignment_expression "pcVar27 = (char *)((uint)gap_fill * 0x1010101)" identifier = (cast_expression "(char *)((uint)gap_fill * 0x1010101)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)gap_fill * 0x1010101)" ( (binary_expression "(uint)gap_fill * 0x1010101" (cast_expression "(uint)gap_fill" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) )))) ;) (if_statement "if (paVar30 < (asection *)0x4) {\n          if ((paVar30 != (asection *)0x0) &&\n             (*(char *)puVar41 = (char)pcVar27, ((uint)paVar30 & 2) != 0)) {\n            *(short *)((int)puVar41 + -2 + (int)paVar30) = (short)pcVar27;\n          }\n        }\n        else {\n          *puVar41 = pcVar27;\n          *(char **)((int)(puVar41 + -1) + (int)paVar30) = pcVar27;\n          pbVar35 = (bfd_section *)((uint)(puVar41 + 1) & 0xfffffffc);\n          for (uVar63 = (uint)(((int)puVar41 - (int)((uint)(puVar41 + 1) & 0xfffffffc)) +\n                              (int)paVar30) >> 2; uVar63 != 0; uVar63 = uVar63 - 1) {\n            pbVar35->name = pcVar27;\n            pbVar35 = (bfd_section *)((int)pbVar35 + (uint)bVar71 * -8 + 4);\n          }\n        }" if (parenthesized_expression "(paVar30 < (asection *)0x4)" ( (binary_expression "paVar30 < (asection *)0x4" identifier < (cast_expression "(asection *)0x4" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if ((paVar30 != (asection *)0x0) &&\n             (*(char *)puVar41 = (char)pcVar27, ((uint)paVar30 & 2) != 0)) {\n            *(short *)((int)puVar41 + -2 + (int)paVar30) = (short)pcVar27;\n          }\n        }" { (if_statement "if ((paVar30 != (asection *)0x0) &&\n             (*(char *)puVar41 = (char)pcVar27, ((uint)paVar30 & 2) != 0)) {\n            *(short *)((int)puVar41 + -2 + (int)paVar30) = (short)pcVar27;\n          }" if (parenthesized_expression "((paVar30 != (asection *)0x0) &&\n             (*(char *)puVar41 = (char)pcVar27, ((uint)paVar30 & 2) != 0))" ( (binary_expression "(paVar30 != (asection *)0x0) &&\n             (*(char *)puVar41 = (char)pcVar27, ((uint)paVar30 & 2) != 0)" (parenthesized_expression "(paVar30 != (asection *)0x0)" ( (binary_expression "paVar30 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*(char *)puVar41 = (char)pcVar27, ((uint)paVar30 & 2) != 0)" ( (comma_expression "*(char *)puVar41 = (char)pcVar27, ((uint)paVar30 & 2) != 0" (assignment_expression "*(char *)puVar41 = (char)pcVar27" (pointer_expression "*(char *)puVar41" * (cast_expression "(char *)puVar41" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(char)pcVar27" ( (type_descriptor "char" primitive_type) ) identifier)) , (binary_expression "((uint)paVar30 & 2) != 0" (parenthesized_expression "((uint)paVar30 & 2)" ( (binary_expression "(uint)paVar30 & 2" (cast_expression "(uint)paVar30" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n            *(short *)((int)puVar41 + -2 + (int)paVar30) = (short)pcVar27;\n          }" { (expression_statement "*(short *)((int)puVar41 + -2 + (int)paVar30) = (short)pcVar27;" (assignment_expression "*(short *)((int)puVar41 + -2 + (int)paVar30) = (short)pcVar27" (pointer_expression "*(short *)((int)puVar41 + -2 + (int)paVar30)" * (cast_expression "(short *)((int)puVar41 + -2 + (int)paVar30)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar41 + -2 + (int)paVar30)" ( (binary_expression "(int)puVar41 + -2 + (int)paVar30" (binary_expression "(int)puVar41 + -2" (cast_expression "(int)puVar41" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) + (cast_expression "(int)paVar30" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = (cast_expression "(short)pcVar27" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) })) }) (else_clause "else {\n          *puVar41 = pcVar27;\n          *(char **)((int)(puVar41 + -1) + (int)paVar30) = pcVar27;\n          pbVar35 = (bfd_section *)((uint)(puVar41 + 1) & 0xfffffffc);\n          for (uVar63 = (uint)(((int)puVar41 - (int)((uint)(puVar41 + 1) & 0xfffffffc)) +\n                              (int)paVar30) >> 2; uVar63 != 0; uVar63 = uVar63 - 1) {\n            pbVar35->name = pcVar27;\n            pbVar35 = (bfd_section *)((int)pbVar35 + (uint)bVar71 * -8 + 4);\n          }\n        }" else (compound_statement "{\n          *puVar41 = pcVar27;\n          *(char **)((int)(puVar41 + -1) + (int)paVar30) = pcVar27;\n          pbVar35 = (bfd_section *)((uint)(puVar41 + 1) & 0xfffffffc);\n          for (uVar63 = (uint)(((int)puVar41 - (int)((uint)(puVar41 + 1) & 0xfffffffc)) +\n                              (int)paVar30) >> 2; uVar63 != 0; uVar63 = uVar63 - 1) {\n            pbVar35->name = pcVar27;\n            pbVar35 = (bfd_section *)((int)pbVar35 + (uint)bVar71 * -8 + 4);\n          }\n        }" { (expression_statement "*puVar41 = pcVar27;" (assignment_expression "*puVar41 = pcVar27" (pointer_expression "*puVar41" * identifier) = identifier) ;) (expression_statement "*(char **)((int)(puVar41 + -1) + (int)paVar30) = pcVar27;" (assignment_expression "*(char **)((int)(puVar41 + -1) + (int)paVar30) = pcVar27" (pointer_expression "*(char **)((int)(puVar41 + -1) + (int)paVar30)" * (cast_expression "(char **)((int)(puVar41 + -1) + (int)paVar30)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)(puVar41 + -1) + (int)paVar30)" ( (binary_expression "(int)(puVar41 + -1) + (int)paVar30" (cast_expression "(int)(puVar41 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar41 + -1)" ( (binary_expression "puVar41 + -1" identifier + number_literal) ))) + (cast_expression "(int)paVar30" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = identifier) ;) (expression_statement "pbVar35 = (bfd_section *)((uint)(puVar41 + 1) & 0xfffffffc);" (assignment_expression "pbVar35 = (bfd_section *)((uint)(puVar41 + 1) & 0xfffffffc)" identifier = (cast_expression "(bfd_section *)((uint)(puVar41 + 1) & 0xfffffffc)" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(puVar41 + 1) & 0xfffffffc)" ( (binary_expression "(uint)(puVar41 + 1) & 0xfffffffc" (call_expression "(uint)(puVar41 + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar41 + 1)" ( (binary_expression "puVar41 + 1" identifier + number_literal) ))) & number_literal) )))) ;) (for_statement "for (uVar63 = (uint)(((int)puVar41 - (int)((uint)(puVar41 + 1) & 0xfffffffc)) +\n                              (int)paVar30) >> 2; uVar63 != 0; uVar63 = uVar63 - 1) {\n            pbVar35->name = pcVar27;\n            pbVar35 = (bfd_section *)((int)pbVar35 + (uint)bVar71 * -8 + 4);\n          }" for ( (assignment_expression "uVar63 = (uint)(((int)puVar41 - (int)((uint)(puVar41 + 1) & 0xfffffffc)) +\n                              (int)paVar30) >> 2" identifier = (binary_expression "(uint)(((int)puVar41 - (int)((uint)(puVar41 + 1) & 0xfffffffc)) +\n                              (int)paVar30) >> 2" (call_expression "(uint)(((int)puVar41 - (int)((uint)(puVar41 + 1) & 0xfffffffc)) +\n                              (int)paVar30)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((int)puVar41 - (int)((uint)(puVar41 + 1) & 0xfffffffc)) +\n                              (int)paVar30)" ( (binary_expression "((int)puVar41 - (int)((uint)(puVar41 + 1) & 0xfffffffc)) +\n                              (int)paVar30" (parenthesized_expression "((int)puVar41 - (int)((uint)(puVar41 + 1) & 0xfffffffc))" ( (binary_expression "(int)puVar41 - (int)((uint)(puVar41 + 1) & 0xfffffffc)" (cast_expression "(int)puVar41" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)((uint)(puVar41 + 1) & 0xfffffffc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uint)(puVar41 + 1) & 0xfffffffc)" ( (binary_expression "(uint)(puVar41 + 1) & 0xfffffffc" (call_expression "(uint)(puVar41 + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar41 + 1)" ( (binary_expression "puVar41 + 1" identifier + number_literal) ))) & number_literal) )))) )) + (cast_expression "(int)paVar30" ( (type_descriptor "int" primitive_type) ) identifier)) ))) >> number_literal)) ; (binary_expression "uVar63 != 0" identifier != number_literal) ; (assignment_expression "uVar63 = uVar63 - 1" identifier = (binary_expression "uVar63 - 1" identifier - number_literal)) ) (compound_statement "{\n            pbVar35->name = pcVar27;\n            pbVar35 = (bfd_section *)((int)pbVar35 + (uint)bVar71 * -8 + 4);\n          }" { (expression_statement "pbVar35->name = pcVar27;" (assignment_expression "pbVar35->name = pcVar27" (field_expression "pbVar35->name" identifier -> field_identifier) = identifier) ;) (expression_statement "pbVar35 = (bfd_section *)((int)pbVar35 + (uint)bVar71 * -8 + 4);" (assignment_expression "pbVar35 = (bfd_section *)((int)pbVar35 + (uint)bVar71 * -8 + 4)" identifier = (cast_expression "(bfd_section *)((int)pbVar35 + (uint)bVar71 * -8 + 4)" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pbVar35 + (uint)bVar71 * -8 + 4)" ( (binary_expression "(int)pbVar35 + (uint)bVar71 * -8 + 4" (binary_expression "(int)pbVar35 + (uint)bVar71 * -8" (cast_expression "(int)pbVar35" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar71 * -8" (cast_expression "(uint)bVar71" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) })) }))) (expression_statement "iVar22 = (int)((bfd_section *)obfd)->filepos;" (assignment_expression "iVar22 = (int)((bfd_section *)obfd)->filepos" identifier = (cast_expression "(int)((bfd_section *)obfd)->filepos" ( (type_descriptor "int" primitive_type) ) (field_expression "((bfd_section *)obfd)->filepos" (parenthesized_expression "((bfd_section *)obfd)" ( (cast_expression "(bfd_section *)obfd" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))) ;) (if_statement "if (iVar22 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar44 = local_64;\n            pbVar35 = *(bfd_section **)((int)local_b4 + (int)local_64 * 8 + 4);\n            paVar30 = *(asection **)((int)local_b4 + (int)local_64 * 8);\n            if (pbVar35 != (bfd_section *)0x0 || paVar30 != (asection *)0x0) {\n              piVar4 = (int *)((int)local_a8 + local_64 * 4);\n              local_64 = *(int **)((int)local_a8 + local_64 * 4);\n              local_6c = (bfd_section *)((int)*(asection **)((int)local_64 + 0x2c) - (int)paVar30);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)pbVar35) -\n                         (uint)(*(asection **)((int)local_64 + 0x2c) < paVar30);\n              while( true ) {\n                pbVar50 = pbVar35;\n                paVar53 = paVar30;\n                if (pbVar35 != (bfd_section *)0x0 ||\n                    (uint)-(int)pbVar35 < (uint)((asection *)0x2000 < paVar30)) {\n                  paVar53 = (asection *)0x2000;\n                  pbVar50 = (bfd_section *)0x0;\n                }\n                iVar52 = bfd_set_section_contents\n                                   (obfd,local_64,puVar41,local_6c,local_68,paVar53,pbVar50);\n                if (iVar52 == 0) {\n                  bfd_nonfatal_message((char *)0x0,obfd,(asection *)*piVar4,(char *)0x0);\n                  return 0;\n                }\n                bVar69 = paVar30 < paVar53;\n                paVar30 = (asection *)((int)paVar30 - (int)paVar53);\n                pbVar35 = (bfd_section *)((int)pbVar35 + (-(uint)bVar69 - (int)pbVar50));\n                bVar69 = CARRY4((uint)local_6c,(uint)paVar53);\n                local_6c = (bfd_section *)((int)&paVar53->name + (int)local_6c);\n                local_68 = (int)&pbVar50->name + (uint)bVar69 + local_68;\n                if (pbVar35 == (bfd_section *)0x0 && paVar30 == (asection *)0x0) break;\n                local_64 = *(int **)((int)local_a8 + piVar44 * 4);\n              }\n            }\n            local_64 = (int *)((int)piVar44 + 1);\n          } while ((int *)iVar22 != local_64);\n        }" if (parenthesized_expression "(iVar22 != 0)" ( (binary_expression "iVar22 != 0" identifier != number_literal) )) (compound_statement "{\n          local_64 = (int *)0x0;\n          do {\n            piVar44 = local_64;\n            pbVar35 = *(bfd_section **)((int)local_b4 + (int)local_64 * 8 + 4);\n            paVar30 = *(asection **)((int)local_b4 + (int)local_64 * 8);\n            if (pbVar35 != (bfd_section *)0x0 || paVar30 != (asection *)0x0) {\n              piVar4 = (int *)((int)local_a8 + local_64 * 4);\n              local_64 = *(int **)((int)local_a8 + local_64 * 4);\n              local_6c = (bfd_section *)((int)*(asection **)((int)local_64 + 0x2c) - (int)paVar30);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)pbVar35) -\n                         (uint)(*(asection **)((int)local_64 + 0x2c) < paVar30);\n              while( true ) {\n                pbVar50 = pbVar35;\n                paVar53 = paVar30;\n                if (pbVar35 != (bfd_section *)0x0 ||\n                    (uint)-(int)pbVar35 < (uint)((asection *)0x2000 < paVar30)) {\n                  paVar53 = (asection *)0x2000;\n                  pbVar50 = (bfd_section *)0x0;\n                }\n                iVar52 = bfd_set_section_contents\n                                   (obfd,local_64,puVar41,local_6c,local_68,paVar53,pbVar50);\n                if (iVar52 == 0) {\n                  bfd_nonfatal_message((char *)0x0,obfd,(asection *)*piVar4,(char *)0x0);\n                  return 0;\n                }\n                bVar69 = paVar30 < paVar53;\n                paVar30 = (asection *)((int)paVar30 - (int)paVar53);\n                pbVar35 = (bfd_section *)((int)pbVar35 + (-(uint)bVar69 - (int)pbVar50));\n                bVar69 = CARRY4((uint)local_6c,(uint)paVar53);\n                local_6c = (bfd_section *)((int)&paVar53->name + (int)local_6c);\n                local_68 = (int)&pbVar50->name + (uint)bVar69 + local_68;\n                if (pbVar35 == (bfd_section *)0x0 && paVar30 == (asection *)0x0) break;\n                local_64 = *(int **)((int)local_a8 + piVar44 * 4);\n              }\n            }\n            local_64 = (int *)((int)piVar44 + 1);\n          } while ((int *)iVar22 != local_64);\n        }" { (expression_statement "local_64 = (int *)0x0;" (assignment_expression "local_64 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n            piVar44 = local_64;\n            pbVar35 = *(bfd_section **)((int)local_b4 + (int)local_64 * 8 + 4);\n            paVar30 = *(asection **)((int)local_b4 + (int)local_64 * 8);\n            if (pbVar35 != (bfd_section *)0x0 || paVar30 != (asection *)0x0) {\n              piVar4 = (int *)((int)local_a8 + local_64 * 4);\n              local_64 = *(int **)((int)local_a8 + local_64 * 4);\n              local_6c = (bfd_section *)((int)*(asection **)((int)local_64 + 0x2c) - (int)paVar30);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)pbVar35) -\n                         (uint)(*(asection **)((int)local_64 + 0x2c) < paVar30);\n              while( true ) {\n                pbVar50 = pbVar35;\n                paVar53 = paVar30;\n                if (pbVar35 != (bfd_section *)0x0 ||\n                    (uint)-(int)pbVar35 < (uint)((asection *)0x2000 < paVar30)) {\n                  paVar53 = (asection *)0x2000;\n                  pbVar50 = (bfd_section *)0x0;\n                }\n                iVar52 = bfd_set_section_contents\n                                   (obfd,local_64,puVar41,local_6c,local_68,paVar53,pbVar50);\n                if (iVar52 == 0) {\n                  bfd_nonfatal_message((char *)0x0,obfd,(asection *)*piVar4,(char *)0x0);\n                  return 0;\n                }\n                bVar69 = paVar30 < paVar53;\n                paVar30 = (asection *)((int)paVar30 - (int)paVar53);\n                pbVar35 = (bfd_section *)((int)pbVar35 + (-(uint)bVar69 - (int)pbVar50));\n                bVar69 = CARRY4((uint)local_6c,(uint)paVar53);\n                local_6c = (bfd_section *)((int)&paVar53->name + (int)local_6c);\n                local_68 = (int)&pbVar50->name + (uint)bVar69 + local_68;\n                if (pbVar35 == (bfd_section *)0x0 && paVar30 == (asection *)0x0) break;\n                local_64 = *(int **)((int)local_a8 + piVar44 * 4);\n              }\n            }\n            local_64 = (int *)((int)piVar44 + 1);\n          } while ((int *)iVar22 != local_64);" do (compound_statement "{\n            piVar44 = local_64;\n            pbVar35 = *(bfd_section **)((int)local_b4 + (int)local_64 * 8 + 4);\n            paVar30 = *(asection **)((int)local_b4 + (int)local_64 * 8);\n            if (pbVar35 != (bfd_section *)0x0 || paVar30 != (asection *)0x0) {\n              piVar4 = (int *)((int)local_a8 + local_64 * 4);\n              local_64 = *(int **)((int)local_a8 + local_64 * 4);\n              local_6c = (bfd_section *)((int)*(asection **)((int)local_64 + 0x2c) - (int)paVar30);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)pbVar35) -\n                         (uint)(*(asection **)((int)local_64 + 0x2c) < paVar30);\n              while( true ) {\n                pbVar50 = pbVar35;\n                paVar53 = paVar30;\n                if (pbVar35 != (bfd_section *)0x0 ||\n                    (uint)-(int)pbVar35 < (uint)((asection *)0x2000 < paVar30)) {\n                  paVar53 = (asection *)0x2000;\n                  pbVar50 = (bfd_section *)0x0;\n                }\n                iVar52 = bfd_set_section_contents\n                                   (obfd,local_64,puVar41,local_6c,local_68,paVar53,pbVar50);\n                if (iVar52 == 0) {\n                  bfd_nonfatal_message((char *)0x0,obfd,(asection *)*piVar4,(char *)0x0);\n                  return 0;\n                }\n                bVar69 = paVar30 < paVar53;\n                paVar30 = (asection *)((int)paVar30 - (int)paVar53);\n                pbVar35 = (bfd_section *)((int)pbVar35 + (-(uint)bVar69 - (int)pbVar50));\n                bVar69 = CARRY4((uint)local_6c,(uint)paVar53);\n                local_6c = (bfd_section *)((int)&paVar53->name + (int)local_6c);\n                local_68 = (int)&pbVar50->name + (uint)bVar69 + local_68;\n                if (pbVar35 == (bfd_section *)0x0 && paVar30 == (asection *)0x0) break;\n                local_64 = *(int **)((int)local_a8 + piVar44 * 4);\n              }\n            }\n            local_64 = (int *)((int)piVar44 + 1);\n          }" { (expression_statement "piVar44 = local_64;" (assignment_expression "piVar44 = local_64" identifier = identifier) ;) (expression_statement "pbVar35 = *(bfd_section **)((int)local_b4 + (int)local_64 * 8 + 4);" (assignment_expression "pbVar35 = *(bfd_section **)((int)local_b4 + (int)local_64 * 8 + 4)" identifier = (pointer_expression "*(bfd_section **)((int)local_b4 + (int)local_64 * 8 + 4)" * (cast_expression "(bfd_section **)((int)local_b4 + (int)local_64 * 8 + 4)" ( (type_descriptor "bfd_section **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_b4 + (int)local_64 * 8 + 4)" ( (binary_expression "(int)local_b4 + (int)local_64 * 8 + 4" (binary_expression "(int)local_b4 + (int)local_64 * 8" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_64 * 8" (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) ))))) ;) (expression_statement "paVar30 = *(asection **)((int)local_b4 + (int)local_64 * 8);" (assignment_expression "paVar30 = *(asection **)((int)local_b4 + (int)local_64 * 8)" identifier = (pointer_expression "*(asection **)((int)local_b4 + (int)local_64 * 8)" * (cast_expression "(asection **)((int)local_b4 + (int)local_64 * 8)" ( (type_descriptor "asection **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_b4 + (int)local_64 * 8)" ( (binary_expression "(int)local_b4 + (int)local_64 * 8" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_64 * 8" (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (if_statement "if (pbVar35 != (bfd_section *)0x0 || paVar30 != (asection *)0x0) {\n              piVar4 = (int *)((int)local_a8 + local_64 * 4);\n              local_64 = *(int **)((int)local_a8 + local_64 * 4);\n              local_6c = (bfd_section *)((int)*(asection **)((int)local_64 + 0x2c) - (int)paVar30);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)pbVar35) -\n                         (uint)(*(asection **)((int)local_64 + 0x2c) < paVar30);\n              while( true ) {\n                pbVar50 = pbVar35;\n                paVar53 = paVar30;\n                if (pbVar35 != (bfd_section *)0x0 ||\n                    (uint)-(int)pbVar35 < (uint)((asection *)0x2000 < paVar30)) {\n                  paVar53 = (asection *)0x2000;\n                  pbVar50 = (bfd_section *)0x0;\n                }\n                iVar52 = bfd_set_section_contents\n                                   (obfd,local_64,puVar41,local_6c,local_68,paVar53,pbVar50);\n                if (iVar52 == 0) {\n                  bfd_nonfatal_message((char *)0x0,obfd,(asection *)*piVar4,(char *)0x0);\n                  return 0;\n                }\n                bVar69 = paVar30 < paVar53;\n                paVar30 = (asection *)((int)paVar30 - (int)paVar53);\n                pbVar35 = (bfd_section *)((int)pbVar35 + (-(uint)bVar69 - (int)pbVar50));\n                bVar69 = CARRY4((uint)local_6c,(uint)paVar53);\n                local_6c = (bfd_section *)((int)&paVar53->name + (int)local_6c);\n                local_68 = (int)&pbVar50->name + (uint)bVar69 + local_68;\n                if (pbVar35 == (bfd_section *)0x0 && paVar30 == (asection *)0x0) break;\n                local_64 = *(int **)((int)local_a8 + piVar44 * 4);\n              }\n            }" if (parenthesized_expression "(pbVar35 != (bfd_section *)0x0 || paVar30 != (asection *)0x0)" ( (binary_expression "pbVar35 != (bfd_section *)0x0 || paVar30 != (asection *)0x0" (binary_expression "pbVar35 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "paVar30 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n              piVar4 = (int *)((int)local_a8 + local_64 * 4);\n              local_64 = *(int **)((int)local_a8 + local_64 * 4);\n              local_6c = (bfd_section *)((int)*(asection **)((int)local_64 + 0x2c) - (int)paVar30);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)pbVar35) -\n                         (uint)(*(asection **)((int)local_64 + 0x2c) < paVar30);\n              while( true ) {\n                pbVar50 = pbVar35;\n                paVar53 = paVar30;\n                if (pbVar35 != (bfd_section *)0x0 ||\n                    (uint)-(int)pbVar35 < (uint)((asection *)0x2000 < paVar30)) {\n                  paVar53 = (asection *)0x2000;\n                  pbVar50 = (bfd_section *)0x0;\n                }\n                iVar52 = bfd_set_section_contents\n                                   (obfd,local_64,puVar41,local_6c,local_68,paVar53,pbVar50);\n                if (iVar52 == 0) {\n                  bfd_nonfatal_message((char *)0x0,obfd,(asection *)*piVar4,(char *)0x0);\n                  return 0;\n                }\n                bVar69 = paVar30 < paVar53;\n                paVar30 = (asection *)((int)paVar30 - (int)paVar53);\n                pbVar35 = (bfd_section *)((int)pbVar35 + (-(uint)bVar69 - (int)pbVar50));\n                bVar69 = CARRY4((uint)local_6c,(uint)paVar53);\n                local_6c = (bfd_section *)((int)&paVar53->name + (int)local_6c);\n                local_68 = (int)&pbVar50->name + (uint)bVar69 + local_68;\n                if (pbVar35 == (bfd_section *)0x0 && paVar30 == (asection *)0x0) break;\n                local_64 = *(int **)((int)local_a8 + piVar44 * 4);\n              }\n            }" { (expression_statement "piVar4 = (int *)((int)local_a8 + local_64 * 4);" (assignment_expression "piVar4 = (int *)((int)local_a8 + local_64 * 4)" identifier = (cast_expression "(int *)((int)local_a8 + local_64 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + local_64 * 4)" ( (binary_expression "(int)local_a8 + local_64 * 4" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "local_64 * 4" identifier * number_literal)) )))) ;) (expression_statement "local_64 = *(int **)((int)local_a8 + local_64 * 4);" (assignment_expression "local_64 = *(int **)((int)local_a8 + local_64 * 4)" identifier = (pointer_expression "*(int **)((int)local_a8 + local_64 * 4)" * (cast_expression "(int **)((int)local_a8 + local_64 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_a8 + local_64 * 4)" ( (binary_expression "(int)local_a8 + local_64 * 4" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "local_64 * 4" identifier * number_literal)) ))))) ;) (expression_statement "local_6c = (bfd_section *)((int)*(asection **)((int)local_64 + 0x2c) - (int)paVar30);" (assignment_expression "local_6c = (bfd_section *)((int)*(asection **)((int)local_64 + 0x2c) - (int)paVar30)" identifier = (cast_expression "(bfd_section *)((int)*(asection **)((int)local_64 + 0x2c) - (int)paVar30)" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*(asection **)((int)local_64 + 0x2c) - (int)paVar30)" ( (binary_expression "(int)*(asection **)((int)local_64 + 0x2c) - (int)paVar30" (cast_expression "(int)*(asection **)((int)local_64 + 0x2c)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(asection **)((int)local_64 + 0x2c)" * (cast_expression "(asection **)((int)local_64 + 0x2c)" ( (type_descriptor "asection **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_64 + 0x2c)" ( (binary_expression "(int)local_64 + 0x2c" (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) - (cast_expression "(int)paVar30" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_68 = (*(int *)((int)local_64 + 0x30) - (int)pbVar35) -\n                         (uint)(*(asection **)((int)local_64 + 0x2c) < paVar30);" (assignment_expression "local_68 = (*(int *)((int)local_64 + 0x30) - (int)pbVar35) -\n                         (uint)(*(asection **)((int)local_64 + 0x2c) < paVar30)" identifier = (binary_expression "(*(int *)((int)local_64 + 0x30) - (int)pbVar35) -\n                         (uint)(*(asection **)((int)local_64 + 0x2c) < paVar30)" (parenthesized_expression "(*(int *)((int)local_64 + 0x30) - (int)pbVar35)" ( (binary_expression "*(int *)((int)local_64 + 0x30) - (int)pbVar35" (pointer_expression "*(int *)((int)local_64 + 0x30)" * (cast_expression "(int *)((int)local_64 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_64 + 0x30)" ( (binary_expression "(int)local_64 + 0x30" (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) - (cast_expression "(int)pbVar35" ( (type_descriptor "int" primitive_type) ) identifier)) )) - (call_expression "(uint)(*(asection **)((int)local_64 + 0x2c) < paVar30)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(asection **)((int)local_64 + 0x2c) < paVar30)" ( (binary_expression "*(asection **)((int)local_64 + 0x2c) < paVar30" (pointer_expression "*(asection **)((int)local_64 + 0x2c)" * (cast_expression "(asection **)((int)local_64 + 0x2c)" ( (type_descriptor "asection **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_64 + 0x2c)" ( (binary_expression "(int)local_64 + 0x2c" (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) < identifier) ))))) ;) (while_statement "while( true ) {\n                pbVar50 = pbVar35;\n                paVar53 = paVar30;\n                if (pbVar35 != (bfd_section *)0x0 ||\n                    (uint)-(int)pbVar35 < (uint)((asection *)0x2000 < paVar30)) {\n                  paVar53 = (asection *)0x2000;\n                  pbVar50 = (bfd_section *)0x0;\n                }\n                iVar52 = bfd_set_section_contents\n                                   (obfd,local_64,puVar41,local_6c,local_68,paVar53,pbVar50);\n                if (iVar52 == 0) {\n                  bfd_nonfatal_message((char *)0x0,obfd,(asection *)*piVar4,(char *)0x0);\n                  return 0;\n                }\n                bVar69 = paVar30 < paVar53;\n                paVar30 = (asection *)((int)paVar30 - (int)paVar53);\n                pbVar35 = (bfd_section *)((int)pbVar35 + (-(uint)bVar69 - (int)pbVar50));\n                bVar69 = CARRY4((uint)local_6c,(uint)paVar53);\n                local_6c = (bfd_section *)((int)&paVar53->name + (int)local_6c);\n                local_68 = (int)&pbVar50->name + (uint)bVar69 + local_68;\n                if (pbVar35 == (bfd_section *)0x0 && paVar30 == (asection *)0x0) break;\n                local_64 = *(int **)((int)local_a8 + piVar44 * 4);\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                pbVar50 = pbVar35;\n                paVar53 = paVar30;\n                if (pbVar35 != (bfd_section *)0x0 ||\n                    (uint)-(int)pbVar35 < (uint)((asection *)0x2000 < paVar30)) {\n                  paVar53 = (asection *)0x2000;\n                  pbVar50 = (bfd_section *)0x0;\n                }\n                iVar52 = bfd_set_section_contents\n                                   (obfd,local_64,puVar41,local_6c,local_68,paVar53,pbVar50);\n                if (iVar52 == 0) {\n                  bfd_nonfatal_message((char *)0x0,obfd,(asection *)*piVar4,(char *)0x0);\n                  return 0;\n                }\n                bVar69 = paVar30 < paVar53;\n                paVar30 = (asection *)((int)paVar30 - (int)paVar53);\n                pbVar35 = (bfd_section *)((int)pbVar35 + (-(uint)bVar69 - (int)pbVar50));\n                bVar69 = CARRY4((uint)local_6c,(uint)paVar53);\n                local_6c = (bfd_section *)((int)&paVar53->name + (int)local_6c);\n                local_68 = (int)&pbVar50->name + (uint)bVar69 + local_68;\n                if (pbVar35 == (bfd_section *)0x0 && paVar30 == (asection *)0x0) break;\n                local_64 = *(int **)((int)local_a8 + piVar44 * 4);\n              }" { (expression_statement "pbVar50 = pbVar35;" (assignment_expression "pbVar50 = pbVar35" identifier = identifier) ;) (expression_statement "paVar53 = paVar30;" (assignment_expression "paVar53 = paVar30" identifier = identifier) ;) (if_statement "if (pbVar35 != (bfd_section *)0x0 ||\n                    (uint)-(int)pbVar35 < (uint)((asection *)0x2000 < paVar30)) {\n                  paVar53 = (asection *)0x2000;\n                  pbVar50 = (bfd_section *)0x0;\n                }" if (parenthesized_expression "(pbVar35 != (bfd_section *)0x0 ||\n                    (uint)-(int)pbVar35 < (uint)((asection *)0x2000 < paVar30))" ( (binary_expression "pbVar35 != (bfd_section *)0x0 ||\n                    (uint)-(int)pbVar35 < (uint)((asection *)0x2000 < paVar30)" (binary_expression "pbVar35 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "(uint)-(int)pbVar35 < (uint)((asection *)0x2000 < paVar30)" (binary_expression "(uint)-(int)pbVar35" (parenthesized_expression "(uint)" ( identifier )) - (cast_expression "(int)pbVar35" ( (type_descriptor "int" primitive_type) ) identifier)) < (call_expression "(uint)((asection *)0x2000 < paVar30)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((asection *)0x2000 < paVar30)" ( (binary_expression "(asection *)0x2000 < paVar30" (cast_expression "(asection *)0x2000" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) ))))) )) (compound_statement "{\n                  paVar53 = (asection *)0x2000;\n                  pbVar50 = (bfd_section *)0x0;\n                }" { (expression_statement "paVar53 = (asection *)0x2000;" (assignment_expression "paVar53 = (asection *)0x2000" identifier = (cast_expression "(asection *)0x2000" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar50 = (bfd_section *)0x0;" (assignment_expression "pbVar50 = (bfd_section *)0x0" identifier = (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "iVar52 = bfd_set_section_contents\n                                   (obfd,local_64,puVar41,local_6c,local_68,paVar53,pbVar50);" (assignment_expression "iVar52 = bfd_set_section_contents\n                                   (obfd,local_64,puVar41,local_6c,local_68,paVar53,pbVar50)" identifier = (call_expression "bfd_set_section_contents\n                                   (obfd,local_64,puVar41,local_6c,local_68,paVar53,pbVar50)" identifier (argument_list "(obfd,local_64,puVar41,local_6c,local_68,paVar53,pbVar50)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar52 == 0) {\n                  bfd_nonfatal_message((char *)0x0,obfd,(asection *)*piVar4,(char *)0x0);\n                  return 0;\n                }" if (parenthesized_expression "(iVar52 == 0)" ( (binary_expression "iVar52 == 0" identifier == number_literal) )) (compound_statement "{\n                  bfd_nonfatal_message((char *)0x0,obfd,(asection *)*piVar4,(char *)0x0);\n                  return 0;\n                }" { (expression_statement "bfd_nonfatal_message((char *)0x0,obfd,(asection *)*piVar4,(char *)0x0);" (call_expression "bfd_nonfatal_message((char *)0x0,obfd,(asection *)*piVar4,(char *)0x0)" identifier (argument_list "((char *)0x0,obfd,(asection *)*piVar4,(char *)0x0)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(asection *)*piVar4" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier)) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar69 = paVar30 < paVar53;" (assignment_expression "bVar69 = paVar30 < paVar53" identifier = (binary_expression "paVar30 < paVar53" identifier < identifier)) ;) (expression_statement "paVar30 = (asection *)((int)paVar30 - (int)paVar53);" (assignment_expression "paVar30 = (asection *)((int)paVar30 - (int)paVar53)" identifier = (cast_expression "(asection *)((int)paVar30 - (int)paVar53)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar30 - (int)paVar53)" ( (binary_expression "(int)paVar30 - (int)paVar53" (cast_expression "(int)paVar30" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)paVar53" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pbVar35 = (bfd_section *)((int)pbVar35 + (-(uint)bVar69 - (int)pbVar50));" (assignment_expression "pbVar35 = (bfd_section *)((int)pbVar35 + (-(uint)bVar69 - (int)pbVar50))" identifier = (cast_expression "(bfd_section *)((int)pbVar35 + (-(uint)bVar69 - (int)pbVar50))" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pbVar35 + (-(uint)bVar69 - (int)pbVar50))" ( (binary_expression "(int)pbVar35 + (-(uint)bVar69 - (int)pbVar50)" (cast_expression "(int)pbVar35" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(uint)bVar69 - (int)pbVar50)" ( (binary_expression "-(uint)bVar69 - (int)pbVar50" (unary_expression "-(uint)bVar69" - (cast_expression "(uint)bVar69" ( (type_descriptor "uint" type_identifier) ) identifier)) - (cast_expression "(int)pbVar50" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "bVar69 = CARRY4((uint)local_6c,(uint)paVar53);" (assignment_expression "bVar69 = CARRY4((uint)local_6c,(uint)paVar53)" identifier = (call_expression "CARRY4((uint)local_6c,(uint)paVar53)" identifier (argument_list "((uint)local_6c,(uint)paVar53)" ( (cast_expression "(uint)local_6c" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)paVar53" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "local_6c = (bfd_section *)((int)&paVar53->name + (int)local_6c);" (assignment_expression "local_6c = (bfd_section *)((int)&paVar53->name + (int)local_6c)" identifier = (cast_expression "(bfd_section *)((int)&paVar53->name + (int)local_6c)" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar53->name + (int)local_6c)" ( (binary_expression "(int)&paVar53->name + (int)local_6c" (cast_expression "(int)&paVar53->name" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar53->name" & (field_expression "paVar53->name" identifier -> field_identifier))) + (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_68 = (int)&pbVar50->name + (uint)bVar69 + local_68;" (assignment_expression "local_68 = (int)&pbVar50->name + (uint)bVar69 + local_68" identifier = (binary_expression "(int)&pbVar50->name + (uint)bVar69 + local_68" (binary_expression "(int)&pbVar50->name + (uint)bVar69" (cast_expression "(int)&pbVar50->name" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pbVar50->name" & (field_expression "pbVar50->name" identifier -> field_identifier))) + (cast_expression "(uint)bVar69" ( (type_descriptor "uint" type_identifier) ) identifier)) + identifier)) ;) (if_statement "if (pbVar35 == (bfd_section *)0x0 && paVar30 == (asection *)0x0) break;" if (parenthesized_expression "(pbVar35 == (bfd_section *)0x0 && paVar30 == (asection *)0x0)" ( (binary_expression "pbVar35 == (bfd_section *)0x0 && paVar30 == (asection *)0x0" (binary_expression "pbVar35 == (bfd_section *)0x0" identifier == (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "paVar30 == (asection *)0x0" identifier == (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (break_statement "break;" break ;)) (expression_statement "local_64 = *(int **)((int)local_a8 + piVar44 * 4);" (assignment_expression "local_64 = *(int **)((int)local_a8 + piVar44 * 4)" identifier = (pointer_expression "*(int **)((int)local_a8 + piVar44 * 4)" * (cast_expression "(int **)((int)local_a8 + piVar44 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_a8 + piVar44 * 4)" ( (binary_expression "(int)local_a8 + piVar44 * 4" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "piVar44 * 4" identifier * number_literal)) ))))) ;) })) })) (expression_statement "local_64 = (int *)((int)piVar44 + 1);" (assignment_expression "local_64 = (int *)((int)piVar44 + 1)" identifier = (cast_expression "(int *)((int)piVar44 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar44 + 1)" ( (binary_expression "(int)piVar44 + 1" (cast_expression "(int)piVar44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((int *)iVar22 != local_64)" ( (binary_expression "(int *)iVar22 != local_64" (cast_expression "(int *)iVar22" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) ;) })) })) (expression_statement "iVar22 = (**(code **)(((bfd_section *)obfd)->id + 0xa8))(ibfd,obfd);" (assignment_expression "iVar22 = (**(code **)(((bfd_section *)obfd)->id + 0xa8))(ibfd,obfd)" identifier = (call_expression "(**(code **)(((bfd_section *)obfd)->id + 0xa8))(ibfd,obfd)" (parenthesized_expression "(**(code **)(((bfd_section *)obfd)->id + 0xa8))" ( (pointer_expression "**(code **)(((bfd_section *)obfd)->id + 0xa8)" * (pointer_expression "*(code **)(((bfd_section *)obfd)->id + 0xa8)" * (cast_expression "(code **)(((bfd_section *)obfd)->id + 0xa8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(((bfd_section *)obfd)->id + 0xa8)" ( (binary_expression "((bfd_section *)obfd)->id + 0xa8" (field_expression "((bfd_section *)obfd)->id" (parenthesized_expression "((bfd_section *)obfd)" ( (cast_expression "(bfd_section *)obfd" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) + number_literal) ))))) )) (argument_list "(ibfd,obfd)" ( identifier , identifier )))) ;) (if_statement "if (iVar22 == 0) {\n        pcVar27 = (char *)dcgettext(0,"error copying private BFD data",5,pbVar35);\n        bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27);\n        return 0;\n      }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar27 = (char *)dcgettext(0,"error copying private BFD data",5,pbVar35);\n        bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27);\n        return 0;\n      }" { (expression_statement "pcVar27 = (char *)dcgettext(0,"error copying private BFD data",5,pbVar35);" (assignment_expression "pcVar27 = (char *)dcgettext(0,"error copying private BFD data",5,pbVar35)" identifier = (cast_expression "(char *)dcgettext(0,"error copying private BFD data",5,pbVar35)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"error copying private BFD data",5,pbVar35)" identifier (argument_list "(0,"error copying private BFD data",5,pbVar35)" ( number_literal , (string_literal ""error copying private BFD data"" " string_content ") , number_literal , identifier ))))) ;) (expression_statement "bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27);" (call_expression "bfd_nonfatal_message((char *)0x0,obfd,(asection *)0x0,pcVar27)" identifier (argument_list "((char *)0x0,obfd,(asection *)0x0,pcVar27)" ( (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 ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((use_alt_mach_code != 0) &&\n         (iVar22 = bfd_alt_mach_code(obfd,use_alt_mach_code,paVar30,paVar30),\n         uVar24 = use_alt_mach_code, iVar22 == 0)) {\n        pcVar27 = (char *)dcgettext(0,"this target does not support %lu alternative machine codes",5\n                                    ,pbVar35);\n        non_fatal(pcVar27,uVar24);\n        if (*(int *)(((bfd_section *)obfd)->id + 4) != 5) {\n          pcVar27 = (char *)dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          non_fatal(pcVar27);\n          return 1;\n        }\n        pcVar27 = (char *)dcgettext(0,"treating that number as an absolute e_machine value instead",\n                                    5,uVar24);\n        non_fatal(pcVar27);\n        *(short *)(((bfd_section *)obfd)->target_index + 0x32) = (short)use_alt_mach_code;\n      }" if (parenthesized_expression "((use_alt_mach_code != 0) &&\n         (iVar22 = bfd_alt_mach_code(obfd,use_alt_mach_code,paVar30,paVar30),\n         uVar24 = use_alt_mach_code, iVar22 == 0))" ( (binary_expression "(use_alt_mach_code != 0) &&\n         (iVar22 = bfd_alt_mach_code(obfd,use_alt_mach_code,paVar30,paVar30),\n         uVar24 = use_alt_mach_code, iVar22 == 0)" (parenthesized_expression "(use_alt_mach_code != 0)" ( (binary_expression "use_alt_mach_code != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar22 = bfd_alt_mach_code(obfd,use_alt_mach_code,paVar30,paVar30),\n         uVar24 = use_alt_mach_code, iVar22 == 0)" ( (comma_expression "iVar22 = bfd_alt_mach_code(obfd,use_alt_mach_code,paVar30,paVar30),\n         uVar24 = use_alt_mach_code, iVar22 == 0" (assignment_expression "iVar22 = bfd_alt_mach_code(obfd,use_alt_mach_code,paVar30,paVar30)" identifier = (call_expression "bfd_alt_mach_code(obfd,use_alt_mach_code,paVar30,paVar30)" identifier (argument_list "(obfd,use_alt_mach_code,paVar30,paVar30)" ( identifier , identifier , identifier , identifier )))) , (comma_expression "uVar24 = use_alt_mach_code, iVar22 == 0" (assignment_expression "uVar24 = use_alt_mach_code" identifier = identifier) , (binary_expression "iVar22 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n        pcVar27 = (char *)dcgettext(0,"this target does not support %lu alternative machine codes",5\n                                    ,pbVar35);\n        non_fatal(pcVar27,uVar24);\n        if (*(int *)(((bfd_section *)obfd)->id + 4) != 5) {\n          pcVar27 = (char *)dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          non_fatal(pcVar27);\n          return 1;\n        }\n        pcVar27 = (char *)dcgettext(0,"treating that number as an absolute e_machine value instead",\n                                    5,uVar24);\n        non_fatal(pcVar27);\n        *(short *)(((bfd_section *)obfd)->target_index + 0x32) = (short)use_alt_mach_code;\n      }" { (expression_statement "pcVar27 = (char *)dcgettext(0,"this target does not support %lu alternative machine codes",5\n                                    ,pbVar35);" (assignment_expression "pcVar27 = (char *)dcgettext(0,"this target does not support %lu alternative machine codes",5\n                                    ,pbVar35)" identifier = (cast_expression "(char *)dcgettext(0,"this target does not support %lu alternative machine codes",5\n                                    ,pbVar35)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"this target does not support %lu alternative machine codes",5\n                                    ,pbVar35)" identifier (argument_list "(0,"this target does not support %lu alternative machine codes",5\n                                    ,pbVar35)" ( number_literal , (string_literal ""this target does not support %lu alternative machine codes"" " string_content ") , number_literal , identifier ))))) ;) (expression_statement "non_fatal(pcVar27,uVar24);" (call_expression "non_fatal(pcVar27,uVar24)" identifier (argument_list "(pcVar27,uVar24)" ( identifier , identifier ))) ;) (if_statement "if (*(int *)(((bfd_section *)obfd)->id + 4) != 5) {\n          pcVar27 = (char *)dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          non_fatal(pcVar27);\n          return 1;\n        }" if (parenthesized_expression "(*(int *)(((bfd_section *)obfd)->id + 4) != 5)" ( (binary_expression "*(int *)(((bfd_section *)obfd)->id + 4) != 5" (pointer_expression "*(int *)(((bfd_section *)obfd)->id + 4)" * (cast_expression "(int *)(((bfd_section *)obfd)->id + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((bfd_section *)obfd)->id + 4)" ( (binary_expression "((bfd_section *)obfd)->id + 4" (field_expression "((bfd_section *)obfd)->id" (parenthesized_expression "((bfd_section *)obfd)" ( (cast_expression "(bfd_section *)obfd" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n          pcVar27 = (char *)dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          non_fatal(pcVar27);\n          return 1;\n        }" { (expression_statement "pcVar27 = (char *)dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);" (assignment_expression "pcVar27 = (char *)dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00)" identifier = (cast_expression "(char *)dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00)" identifier (argument_list "(0,"ignoring the alternative value",5,extraout_ECX_00)" ( number_literal , (string_literal ""ignoring the alternative value"" " string_content ") , number_literal , identifier ))))) ;) (expression_statement "non_fatal(pcVar27);" (call_expression "non_fatal(pcVar27)" identifier (argument_list "(pcVar27)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "pcVar27 = (char *)dcgettext(0,"treating that number as an absolute e_machine value instead",\n                                    5,uVar24);" (assignment_expression "pcVar27 = (char *)dcgettext(0,"treating that number as an absolute e_machine value instead",\n                                    5,uVar24)" identifier = (cast_expression "(char *)dcgettext(0,"treating that number as an absolute e_machine value instead",\n                                    5,uVar24)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"treating that number as an absolute e_machine value instead",\n                                    5,uVar24)" identifier (argument_list "(0,"treating that number as an absolute e_machine value instead",\n                                    5,uVar24)" ( number_literal , (string_literal ""treating that number as an absolute e_machine value instead"" " string_content ") , number_literal , identifier ))))) ;) (expression_statement "non_fatal(pcVar27);" (call_expression "non_fatal(pcVar27)" identifier (argument_list "(pcVar27)" ( identifier ))) ;) (expression_statement "*(short *)(((bfd_section *)obfd)->target_index + 0x32) = (short)use_alt_mach_code;" (assignment_expression "*(short *)(((bfd_section *)obfd)->target_index + 0x32) = (short)use_alt_mach_code" (pointer_expression "*(short *)(((bfd_section *)obfd)->target_index + 0x32)" * (cast_expression "(short *)(((bfd_section *)obfd)->target_index + 0x32)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((bfd_section *)obfd)->target_index + 0x32)" ( (binary_expression "((bfd_section *)obfd)->target_index + 0x32" (field_expression "((bfd_section *)obfd)->target_index" (parenthesized_expression "((bfd_section *)obfd)" ( (cast_expression "(bfd_section *)obfd" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) 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 "pbVar35 = psVar17->section->output_section;" (assignment_expression "pbVar35 = psVar17->section->output_section" identifier = (field_expression "psVar17->section->output_section" (field_expression "psVar17->section" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "bVar25 = bfd_set_section_contents(obfd,pbVar35,psVar17->contents,0,0,psVar17->size,0);" (assignment_expression "bVar25 = bfd_set_section_contents(obfd,pbVar35,psVar17->contents,0,0,psVar17->size,0)" identifier = (call_expression "bfd_set_section_contents(obfd,pbVar35,psVar17->contents,0,0,psVar17->size,0)" identifier (argument_list "(obfd,pbVar35,psVar17->contents,0,0,psVar17->size,0)" ( identifier , identifier , (field_expression "psVar17->contents" identifier -> field_identifier) , number_literal , number_literal , (field_expression "psVar17->size" identifier -> field_identifier) , number_literal )))) ;) (expression_statement "local_6c = (bfd_section *)obfd;" (assignment_expression "local_6c = (bfd_section *)obfd" identifier = (cast_expression "(bfd_section *)obfd" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar25 == 0) break;" if (parenthesized_expression "(bVar25 == 0)" ( (binary_expression "bVar25 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "psVar17 = psVar17->next;" (assignment_expression "psVar17 = psVar17->next" identifier = (field_expression "psVar17->next" identifier -> field_identifier)) ;) })) (labeled_statement "LAB_00019fa0:\n  bfd_nonfatal_message((char *)0x0,(bfd *)local_6c,pbVar35,(char *)0x0);" statement_identifier : (expression_statement "bfd_nonfatal_message((char *)0x0,(bfd *)local_6c,pbVar35,(char *)0x0);" (call_expression "bfd_nonfatal_message((char *)0x0,(bfd *)local_6c,pbVar35,(char *)0x0)" identifier (argument_list "((char *)0x0,(bfd *)local_6c,pbVar35,(char *)0x0)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(bfd *)local_6c" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;)) (return_statement "return bVar25;" return identifier ;) (labeled_statement "LAB_0001b1a6:\n  if ((char *)((int)&pbVar14->name + (int)pcVar47) <= pcVar31) goto LAB_0001b1aa;" statement_identifier : (if_statement "if ((char *)((int)&pbVar14->name + (int)pcVar47) <= pcVar31) goto LAB_0001b1aa;" if (parenthesized_expression "((char *)((int)&pbVar14->name + (int)pcVar47) <= pcVar31)" ( (binary_expression "(char *)((int)&pbVar14->name + (int)pcVar47) <= pcVar31" (cast_expression "(char *)((int)&pbVar14->name + (int)pcVar47)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pbVar14->name + (int)pcVar47)" ( (binary_expression "(int)&pbVar14->name + (int)pcVar47" (cast_expression "(int)&pbVar14->name" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pbVar14->name" & (field_expression "pbVar14->name" identifier -> field_identifier))) + (cast_expression "(int)pcVar47" ( (type_descriptor "int" primitive_type) ) identifier)) ))) <= identifier) )) (goto_statement "goto LAB_0001b1aa;" goto statement_identifier ;))) (expression_statement "*pcVar31 = (char)uVar63;" (assignment_expression "*pcVar31 = (char)uVar63" (pointer_expression "*pcVar31" * identifier) = (cast_expression "(char)uVar63" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (uVar63 == 0) goto LAB_0001b1aa;" if (parenthesized_expression "(uVar63 == 0)" ( (binary_expression "uVar63 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001b1aa;" goto statement_identifier ;)) (expression_statement "uVar63 = uVar63 >> 8;" (assignment_expression "uVar63 = uVar63 >> 8" identifier = (binary_expression "uVar63 >> 8" identifier >> number_literal)) ;) (expression_statement "pcVar31 = pcVar31 + 1;" (assignment_expression "pcVar31 = pcVar31 + 1" identifier = (binary_expression "pcVar31 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_0001b1a6;" goto statement_identifier ;) (labeled_statement "LAB_0001b1aa:\n  bVar69 = true;" statement_identifier : (expression_statement "bVar69 = true;" (assignment_expression "bVar69 = true" identifier = true) ;)) (expression_statement "*(undefined4 *)((int)&paVar51->rawsize + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&paVar51->rawsize + 4) = 0" (pointer_expression "*(undefined4 *)((int)&paVar51->rawsize + 4)" * (cast_expression "(undefined4 *)((int)&paVar51->rawsize + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar51->rawsize + 4)" ( (binary_expression "(int)&paVar51->rawsize + 4" (cast_expression "(int)&paVar51->rawsize" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar51->rawsize" & (field_expression "paVar51->rawsize" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0001afd1;" goto statement_identifier ;) })))
(translation_unit "int __regparm3 FUN_00018920(void *param_1,size_t *param_2,int param_3)\n\n{\n  int *piVar1;\n  char cVar2;\n  byte bVar3;\n  int *piVar4;\n  undefined *puVar5;\n  void *pvVar6;\n  size_t sVar7;\n  code *pcVar8;\n  size_t *psVar9;\n  size_t *psVar10;\n  size_t *psVar11;\n  int iVar12;\n  undefined4 uVar13;\n  undefined4 uVar14;\n  FILE *__s;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  uint uVar17;\n  int iVar18;\n  int *piVar19;\n  undefined *puVar20;\n  int iVar21;\n  size_t sVar22;\n  size_t sVar23;\n  int *piVar24;\n  char *pcVar25;\n  void *pvVar26;\n  uint uVar27;\n  size_t sVar28;\n  size_t sVar29;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  size_t extraout_ECX_01;\n  size_t extraout_ECX_02;\n  size_t sVar30;\n  int iVar31;\n  void *pvVar32;\n  uint uVar33;\n  int *piVar34;\n  undefined4 *puVar35;\n  byte *pbVar36;\n  uint uVar37;\n  size_t *psVar38;\n  uint uVar39;\n  uint uVar40;\n  byte *pbVar41;\n  undefined4 *puVar42;\n  size_t *psVar43;\n  uint uVar44;\n  undefined1 *puVar45;\n  bool bVar46;\n  bool bVar47;\n  byte bVar48;\n  undefined8 uVar49;\n  longlong lVar50;\n  longlong lVar51;\n  void *pvVar52;\n  size_t sVar53;\n  void *__dest;\n  size_t sVar54;\n  size_t sVar55;\n  uint local_bc;\n  uint local_b8;\n  void *local_b4;\n  size_t *local_a8;\n  int local_a4;\n  int local_8c;\n  int *local_84;\n  uint local_7c;\n  uint local_78;\n  size_t *local_74;\n  size_t *local_6c;\n  int local_68;\n  int *local_64;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  int *local_34;\n  undefined4 local_30;\n  undefined4 uStack_14;\n  \n  bVar48 = 0;\n  uStack_14 = 0x1892b;\n  iVar12 = *(int *)(*(int *)((int)param_1 + 4) + 8);\n  if ((iVar12 != *(int *)(((int *)param_2)[1] + 8) && iVar12 != 2) &&\n     (*(int *)(((int *)param_2)[1] + 8) != 2)) {\n    uVar13 = dcgettext(0,"Unable to change endianness of input file(s)",5);\n    FUN_0002c910(uVar13);\n    return 0;\n  }\n  iVar12 = bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7);\n  if (iVar12 == 0) {\n    FUN_0002d3a0(0,param_2,0,0);\n    return 0;\n  }\n  if (*(int *)((int)param_1 + 0x60) == 0) {\n    uVar13 = FUN_0002d2a0(param_1);\n    pcVar25 = "error: the input file \'%s\' has no sections";\n    goto LAB_00018f38;\n  }\n  if ((*(undefined4 **)((int)param_1 + 4))[1] != 5) {\n    if ((DAT_00040b44 != 1) && ((DAT_00040b44 & 1) != 0)) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\nLAB_00018f38:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }\n    if (DAT_00040b40 != 0) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      goto LAB_00018f38;\n    }\n  }\n  if (DAT_00040bd0 != 0) {\n    uVar13 = **(undefined4 **)((int)param_1 + 4);\n    uVar14 = *(undefined4 *)((int *)param_2)[1];\n    iVar12 = *param_2;\n    uVar15 = FUN_0002d2a0(param_1);\n    pcVar25 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n    printf(pcVar25,uVar15,uVar13,iVar12,uVar14);\n  }\n  iVar12 = 0;\n  iVar31 = 0;\n  if (DAT_00040aec == 0) {\n    uVar39 = DAT_00040b88;\n    iVar31 = DAT_00040b8c;\n    if (DAT_00040b90 == 0) {\n      uVar39 = *(uint *)((int)param_1 + 0x70);\n      iVar31 = *(int *)((int)param_1 + 0x74);\n    }\n    iVar12 = uVar39 + DAT_00040b98;\n    iVar31 = iVar31 + DAT_00040b9c + (uint)CARRY4(uVar39,DAT_00040b98);\n  }\n  if ((*(byte *)((int *)param_2 + 10) & 7) != 3) {\n    uVar39 = ~DAT_00040b5c & *(uint *)(((int *)param_2)[1] + 0x10) &\n             (*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff | DAT_00040b60);\n    if (DAT_00040bb0 == 7) {\n      uVar39 = uVar39 & 0xfffffffe;\n    }\n    iVar12 = bfd_set_start_address(param_2,iVar12,iVar31);\n    if ((iVar12 == 0) || (iVar12 = bfd_set_file_flags(param_2,uVar39), iVar12 == 0))\n    goto LAB_00018b70;\n  }\n  uVar13 = bfd_get_arch(param_1);\n  uVar14 = bfd_get_mach(param_1);\n  if (param_3 != 0) {\n    iVar12 = bfd_get_arch_info(param_1);\n    if ((iVar12 == 0) || (iVar12 = bfd_get_arch_info(param_1), *(int *)(iVar12 + 0xc) == 0)) {\n      uVar13 = *(undefined4 *)(param_3 + 0xc);\n      uVar14 = *(undefined4 *)(param_3 + 0x10);\n    }\n    else {\n      uVar15 = FUN_0002d2a0(param_1);\n      uVar16 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n      FUN_0002c910(uVar16,uVar15);\n    }\n  }\n  iVar12 = (**(code **)(((int *)param_2)[1] + 0x154))(param_2,uVar13,uVar14);\n  if (iVar12 == 0) {\n    if ((*(byte *)((int)param_1 + 0x2b) & 4) != 0) {\nLAB_00018b20:\n      iVar12 = bfd_get_arch(param_1);\n      if (iVar12 == 0) {\n        uVar13 = FUN_0002d2a0(param_1);\n        pcVar25 = "Unable to recognise the format of the input file `%s\'";\n      }\n      else {\n        uVar13 = bfd_get_mach(param_1);\n        uVar14 = bfd_get_arch(param_1);\n        uVar13 = bfd_printable_arch_mach(uVar14,uVar13);\n        pcVar25 = "Output file cannot represent architecture `%s\'";\n      }\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }\n    iVar12 = bfd_get_arch(param_1);\n    iVar31 = bfd_get_arch(param_2);\n    if (iVar12 != iVar31) goto LAB_00018b20;\n  }\n  iVar12 = bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7);\n  if (iVar12 == 0) {\nLAB_00018b70:\n    FUN_0002d3a0(0,param_1,0,0);\n    return 0;\n  }\n  uVar39 = ((undefined4 *)((int *)param_2)[1])[1];\n  bVar46 = uVar39 < 2;\n  bVar47 = uVar39 == 2;\n  if (bVar47) {\n    iVar12 = 4;\n    pbVar36 = *(byte **)((int *)param_2)[1];\n    pbVar41 = &DAT_0002f16a;\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar46 = *pbVar36 < *pbVar41;\n      bVar47 = *pbVar36 == *pbVar41;\n      pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n      pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n    } while (bVar47);\n    if ((!bVar46 && !bVar47) == bVar46) {\n      iVar12 = ((int *)param_2)[0x28];\n      uVar39 = (*(undefined4 **)((int)param_1 + 4))[1];\n      bVar46 = uVar39 < 2;\n      bVar47 = uVar39 == 2;\n      if (bVar47) {\n        iVar31 = 4;\n        pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4);\n        pbVar41 = &DAT_0002f16a;\n        do {\n          if (iVar31 == 0) break;\n          iVar31 = iVar31 + -1;\n          bVar46 = *pbVar36 < *pbVar41;\n          bVar47 = *pbVar36 == *pbVar41;\n          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n        } while (bVar47);\n        if ((!bVar46 && !bVar47) == bVar46) {\n          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);\n          puVar42 = (undefined4 *)(iVar12 + 0x7c);\n          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }\n        }\n      }\n      uVar39 = DAT_000402b4;\n      if ((DAT_000402b4 & DAT_000402b0) == 0xffffffff) {\n        DAT_000402b0 = 0x200;\n        DAT_000402b4 = 0;\n      }\n      else {\n        *(uint *)(iVar12 + 0xb4) = DAT_000402b0;\n        *(uint *)(iVar12 + 0xb8) = uVar39;\n      }\n      uVar39 = DAT_000402ac;\n      if ((DAT_000402ac & DAT_000402a8) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a8;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_000402a4;\n      if ((DAT_000402a4 & DAT_000402a0) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a0;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_0004029c;\n      if ((DAT_0004029c & DAT_00040298) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xa4) = DAT_00040298;\n        *(uint *)(iVar12 + 0xa8) = uVar39;\n      }\n      uVar39 = DAT_00040294;\n      local_64 = (int *)DAT_00040290;\n      if ((DAT_00040290 & DAT_00040294) == 0xffffffff) {\n        DAT_00040290 = 0x1000;\n        uVar39 = 0;\n        DAT_00040294 = 0;\n        local_64 = (int *)0x1000;\n      }\n      else {\n        *(uint *)(iVar12 + 0xac) = DAT_00040290;\n        *(uint *)(iVar12 + 0xb0) = uVar39;\n      }\n      uVar17 = DAT_0004028c;\n      if ((DAT_0004028c & DAT_00040288) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040288;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      uVar17 = DAT_00040284;\n      if ((DAT_00040284 & DAT_00040280) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040280;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      if (DAT_0004027c != -1) {\n        *(short *)(iVar12 + 0xd8) = DAT_0004027c;\n      }\n      if (DAT_0004027a != -1) {\n        *(short *)(iVar12 + 0xc4) = DAT_0004027a;\n      }\n      if (DAT_00040278 != -1) {\n        *(short *)(iVar12 + 0xc6) = DAT_00040278;\n      }\n      if (uVar39 < DAT_000402b4 || uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0)) {\n        sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4);\n        sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294);\n        uVar13 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n        FUN_0002c910(uVar13,&local_4c,&local_34);\n      }\n    }\n  }\n  piVar19 = DAT_00040bdc;\n  if (DAT_00040bdc != (int *)0x0) {\n    free(DAT_00040bdc);\n  }\n  if (piVar19 != DAT_00040bd8) {\n    free(DAT_00040bd8);\n  }\n  DAT_00040bdc = (int *)0x0;\n  DAT_00040bd8 = (int *)0x0;\n  iVar12 = (**(code **)(*(int *)((int)param_1 + 4) + 0x104))(param_1);\n  if (iVar12 < 0) goto LAB_00018b70;\n  DAT_00040bd8 = (int *)xmalloc(iVar12);\n  DAT_00040bdc = DAT_00040bd8;\n  local_8c = (**(code **)(*(int *)((int)param_1 + 4) + 0x108))(param_1,DAT_00040bd8);\n  if (local_8c < 0) goto LAB_00018b70;\n  if (local_8c == 0) {\n    free(DAT_00040bdc);\n    DAT_00040bdc = (int *)0x0;\n    DAT_00040bd8 = (int *)0x0;\n  }\n  bfd_map_over_sections(param_1,FUN_00017af0,param_2);\n  puVar35 = DAT_00040b58;\n  if ((DAT_00040aec == 0) &&\n     (iVar12 = (**(code **)(((int *)param_2)[1] + 0xbc))(param_1,param_2), puVar35 = DAT_00040b58,\n     iVar12 == 0)) {\n    DAT_00040bc8 = 1;\n    uVar13 = dcgettext(0,"error in private header data",5);\n    FUN_0002d3a0(0,param_1,0,uVar13);\n    puVar35 = DAT_00040b58;\n  }\n  for (; puVar42 = DAT_00040b54, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)*puVar35) {\n    uVar39 = 0x128;\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      uVar39 = *(uint *)(iVar12 + 0x20) | 0x100;\n    }\n    iVar12 = bfd_get_section_by_name(param_2,puVar35[1]);\n    if (iVar12 != 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t add section \'%s\'";\nLAB_00019591:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n      return 0;\n    }\n    iVar12 = bfd_make_section_with_flags(param_2,puVar35[1],uVar39 | 0x100000);\n    puVar35[5] = iVar12;\n    if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t create section `%s\'";\n      goto LAB_00019591;\n    }\n    iVar12 = bfd_set_section_size(param_2,iVar12,puVar35[3],0);\n    if (iVar12 == 0) goto LAB_00019d5e;\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x14);\n      uVar14 = *(undefined4 *)(iVar12 + 0x10);\n      *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      *(undefined4 *)(iVar31 + 0x24) = uVar14;\n      *(undefined4 *)(iVar31 + 0x28) = uVar13;\n      *(undefined4 *)(iVar31 + 0x1c) = uVar14;\n      *(undefined4 *)(iVar31 + 0x20) = uVar13;\n    }\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x18);\n      *(undefined4 *)(iVar31 + 0x28) = *(undefined4 *)(iVar12 + 0x1c);\n      *(undefined4 *)(iVar31 + 0x24) = uVar13;\n    }\n  }\n  for (; local_6c = param_2, puVar42 != (undefined4 *)0x0; puVar42 = (undefined4 *)*puVar42) {\n    iVar12 = bfd_get_section_by_name(param_1,puVar42[1]);\n    puVar42[5] = iVar12;\n    if (iVar12 == 0) {\n      uVar13 = puVar42[1];\n      pcVar25 = "error: %s not found, can\'t be updated";\n      goto LAB_00018f38;\n    }\n    psVar43 = *(size_t **)(iVar12 + 0x54);\n    iVar12 = bfd_set_section_size(param_2,psVar43,puVar42[3],0);\n    if (iVar12 == 0) goto LAB_00019fa0;\n  }\n  if ((((DAT_00040bc4 != 0) &&\n       (iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0)) &&\n      (DAT_00040bc4 != 0)) &&\n     ((*(int *)(*(int *)((int)param_1 + 4) + 4) == 5 && (iVar31 = FUN_000176d0(), iVar31 != 0)))) {\n    uVar39 = *(uint *)(iVar12 + 0x30);\n    sVar22 = *(size_t *)(iVar12 + 0x2c);\n    if (uVar39 == 0 && sVar22 == 0) {\n      uVar13 = dcgettext(0,"warning: note section is empty",5,sVar22);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n      DAT_00040bc4 = 0;\n    }\n    else {\n      iVar31 = bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22);\n      pvVar6 = DAT_00040bc0;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"warning: could not load note section",5,0);\n        FUN_0002d3a0(0,param_1,iVar12,uVar13);\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n      }\n      else {\n        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);\n        sVar23 = extraout_ECX_01;\n        pvVar26 = param_1;\n        if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar52 = (void *)0x30;\n        sVar53 = sVar23;\n        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);\n        local_74 = (size_t *)xcalloc(uVar13);\n        local_bc = 0;\n        sVar54 = 0;\n        local_b8 = 0;\n        sVar55 = 0;\n        local_84 = (int *)0x0;\n        local_a8 = (size_t *)0x0;\n        local_a4 = 0;\n        pvVar26 = pvVar6;\n        psVar43 = local_74;\n        local_7c = sVar22;\n        local_78 = uVar39;\n        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }\n        if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        DAT_00040bb8 = 0;\n        DAT_00040bbc = 0;\n      }\n    }\n  }\nLAB_00018e0e:\n  param_2 = local_6c;\n  iVar31 = DAT_00040b4c;\n  for (puVar35 = DAT_00040b50; DAT_00040b4c = iVar31, puVar35 != (undefined4 *)0x0;\n      puVar35 = (undefined4 *)*puVar35) {\n    iVar12 = bfd_get_section_by_name(param_1,puVar35[1]);\n    if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      uVar14 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n      FUN_0002d3a0(0,param_1,0,uVar14,uVar13);\n    }\n    else {\n      if ((*(byte *)(iVar12 + 0x15) & 1) == 0) {\n        pcVar25 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar22 = *(size_t *)(iVar12 + 0x2c);\n        iVar31 = *(int *)(iVar12 + 0x30);\n        if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar25 = "can\'t dump section - it is empty";\n      }\n      uVar13 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n    }\nLAB_00018eb1:\n    iVar31 = DAT_00040b4c;\n  }\n  if (iVar31 != 0) {\n    iVar12 = bfd_get_section_by_name(local_6c,".gnu_debuglink");\n    if (iVar12 == 0) {\n      iVar31 = bfd_create_gnu_debuglink_section(local_6c,DAT_00040b4c);\n      iVar12 = DAT_00040b4c;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,local_6c,0,uVar13,iVar12);\n        return 0;\n      }\n      if (*(int *)(local_6c[1] + 4) == 2) {\n        iVar12 = local_6c[0x18];\n        iVar18 = 0;\n        if (iVar12 == 0) {\nLAB_0001aa69:\n          uVar39 = 0x1000;\n          iVar12 = 0;\n        }\n        else {\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(iVar31 + 0x24) = uVar39;\n        *(int *)(iVar31 + 0x28) = iVar12;\n        *(uint *)(iVar31 + 0x1c) = uVar39;\n        *(int *)(iVar31 + 0x20) = iVar12;\n        *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      }\n    }\n    else {\n      iVar12 = *local_6c;\n      uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n      FUN_0002c910(uVar13,iVar12);\n      DAT_00040b4c = 0;\n      iVar31 = 0;\n    }\n  }\n  sVar22 = local_6c[0x1a];\n  if ((sVar22 == 0) || (DAT_00040b78 == 0 && DAT_00040b70 == 0)) {\n    local_b8 = 0;\n    local_bc = 0;\n    local_b4 = (void *)0x0;\n    local_a8 = (size_t *)0x0;\n    uVar39 = local_bc;\n    uVar17 = local_b8;\n  }\n  else {\n    local_a8 = (size_t *)xmalloc(sVar22 * 4);\n    local_34 = (int *)local_a8;\n    bfd_map_over_sections(local_6c,FUN_00016800,&local_34);\n    qsort(local_a8,sVar22,4,FUN_00016820);\n    sVar23 = sVar22 * 8;\n    local_b4 = (void *)xmalloc(sVar23);\n    memset(local_b4,0,sVar23);\n    if ((DAT_00040b78 == 0) || (sVar22 == 1)) {\n      local_b8 = 0;\n      local_bc = 0;\n    }\n    else {\n      local_b8 = 0;\n      local_bc = 0;\n      local_6c = (size_t *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (size_t *)((int)local_6c + 1);\n        iVar12 = *local_64;\n        uVar39 = local_bc;\n        uVar17 = local_b8;\n        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }\n        local_b8 = uVar17;\n        local_bc = uVar39;\n        local_64 = local_64 + 1;\n      } while ((size_t *)(sVar22 - 1) != local_6c);\n    }\n    uVar39 = local_bc;\n    uVar17 = local_b8;\n    if (DAT_00040b70 != 0) {\n      iVar12 = ((int *)local_a8)[sVar22 - 1];\n      uVar27 = *(uint *)(iVar12 + 0x24);\n      uVar37 = uVar27 + *(uint *)(iVar12 + 0x2c);\n      uVar44 = *(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +\n               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c));\n      if (uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)) {\n        iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           );\n        if (iVar12 == 0) {\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }\n        else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }\n      }\n    }\n  }\n  local_b8 = uVar17;\n  local_bc = uVar39;\n  iVar12 = 0;\n  if (DAT_00040b48 != 0) {\n    iVar12 = FUN_0001c9c0(param_1,DAT_00040bdc,local_8c,0);\n  }\n  if (DAT_00040bb0 - 2U < 6) {\nLAB_0001962a:\n    if (DAT_00040bb0 != 7) goto LAB_0001962f;\n  }\n  else {\n    if (DAT_00040b30 == 0 && DAT_00040bac == 0) {\n      iVar18 = htab_elements(DAT_00040b2c);\n      if ((((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&\n         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))))\n      goto LAB_00019e4d;\n      goto LAB_0001962a;\n    }\nLAB_0001962f:\n    bfd_set_error(0);\n    bfd_map_over_sections(param_1,FUN_000187a0,DAT_00040bdc);\n    iVar18 = bfd_get_error();\n    if (iVar18 != 0) {\n      DAT_00040bc8 = 1;\n      return 0;\n    }\n  }\n  piVar19 = (int *)xmalloc((DAT_00040b04 + local_8c) * 4 + 4);\n  local_84 = DAT_00040bdc;\n  uVar39 = *(uint *)((int)param_1 + 0x28);\n  DAT_00040bd8 = piVar19;\n  if (local_8c != 0) {\n    piVar1 = DAT_00040bdc + local_8c;\n    local_8c = 0;\n    puVar20 = PTR__bfd_std_section_0003ffc8 + 0xc0;\n    do {\n      iVar18 = DAT_00040b04;\n      piVar4 = (int *)*local_84;\n      uVar17 = piVar4[4];\n      piVar24 = (int *)piVar4[1];\n      puVar5 = (undefined *)piVar4[5];\n      if (((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) &&\n         (pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0)) {\n        local_6c = (size_t *)0x0;\n        piVar34 = DAT_00040b08;\n        while (iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0) {\n          local_6c = (size_t *)((int)local_6c + 1);\n          piVar34 = (int *)*piVar34;\n          if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar25);\n        piVar34[5] = (int)"";\n        piVar34 = piVar19 + local_8c;\n        local_8c = local_8c + 1;\n        iVar18 = FUN_00017920();\n        *piVar34 = iVar18;\n      }\nLAB_000197a8:\n      iVar18 = htab_elements(DAT_00040b10);\n      piVar34 = piVar24;\n      if ((iVar18 != 0) || (DAT_00040be0 != (undefined4 *)0x0)) {\n        local_30 = 0;\n        local_34 = piVar24;\n        iVar18 = htab_find(DAT_00040b10,&local_34);\n        if (((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)) {\n          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }\n        }\n        piVar4[1] = (int)piVar34;\n      }\n      pcVar25 = DAT_00040af8;\n      cVar2 = *(char *)(*(int *)((int)param_1 + 4) + 0x18);\n      if ((char)*piVar34 == cVar2) {\n        if (DAT_00040b3c == 0) {\n          if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }\nLAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }\n      }\n      else {\n        if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))\n        goto LAB_0001982b;\nLAB_00019ab1:\n        sVar22 = strlen(pcVar25);\n        sVar23 = strlen((char *)piVar34);\n        piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n        local_6c = (size_t *)((int)piVar24 + 1);\n        *(char *)piVar24 = *(char *)(param_2[1] + 0x18);\nLAB_00019858:\n        pcVar25 = DAT_00040af8;\n        if (DAT_00040af8 != (char *)0x0) {\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }\n        strcpy((char *)local_6c,(char *)piVar34);\n        piVar4[1] = (int)piVar24;\n        piVar34 = piVar24;\n      }\n      if (DAT_00040bb0 == 7) goto LAB_00019928;\n      if ((uVar17 & 0x20) == 0) {\n        if (((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)) {\n          if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;\n        }\n        else {\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;\n      }\n      else {\n        iVar18 = FUN_000179c0();\n        if (iVar18 != 0) {\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }\nLAB_0001994f:\n        iVar18 = FUN_00017a30();\n        if (iVar18 == 0) {\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }\n      }\n      local_84 = local_84 + 1;\n    } while (piVar1 != local_84);\n  }\n  local_6c = (size_t *)DAT_00040b08;\n  if ((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) {\n    iVar18 = 0;\n    do {\n      pcVar25 = (char *)local_6c[5];\n      if (pcVar25 == (char *)0x0) {\n        iVar21 = FUN_00017920();\n        piVar19[local_8c] = iVar21;\n        local_8c = local_8c + 1;\n      }\n      else if (*pcVar25 != '\0') {\n        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    \n        FUN_0002c8e0(uVar13,pcVar25);\n      }\n      iVar18 = iVar18 + 1;\n      local_6c = (size_t *)*local_6c;\n    } while (iVar18 < DAT_00040b04);\n  }\n  piVar19[local_8c] = 0;\n  if ((DAT_00040b48 != 0) && (iVar12 != 0)) {\n    iVar18 = ((undefined4 *)param_2[1])[1];\n    if ((iVar18 == 2) || (iVar18 == 5)) {\n      iVar12 = FUN_0002c240(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34);\n      if (iVar12 != 0) {\n        iVar12 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n        iVar18 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n        if ((((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)) {\n          pcVar25 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }\n        uVar13 = dcgettext(0,pcVar25,5,iVar12);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n      }\n    }\n    else {\n      uVar13 = *(undefined4 *)param_2[1];\n      uVar14 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n    }\n    DAT_00040bc8 = 1;\n    return 0;\n  }\nLAB_00019e4d:\n  bfd_set_symtab(param_2,DAT_00040bd8,local_8c);\n  bfd_map_over_sections(param_1,FUN_00018500,param_2);\n  bfd_map_over_sections(param_1,FUN_00018070,param_2);\n  for (puVar35 = DAT_00040b58; psVar43 = param_2, puVar42 = DAT_00040b54,\n      puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)*puVar35) {\n    iVar12 = bfd_set_section_contents(param_2,puVar35[5],puVar35[4],0,0,puVar35[3],0);\n    if (iVar12 == 0) {\nLAB_00019d5e:\n      FUN_0002d3a0(0,param_2,puVar35[5],0);\n      return 0;\n    }\n  }\n  while( true ) {\n    if (puVar42 == (undefined4 *)0x0) {\n      uVar39 = 0;\n      if (DAT_00040bc4 != 0) {\n        uVar39 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n        if (((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))) {\n          if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }\n        }\n        else {\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        psVar43 = param_2;\n      }\n      if ((DAT_00040b4c != 0) &&\n         (iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0)) {\n        uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,param_2,0,uVar13,iVar12);\n        return 0;\n      }\n      if (DAT_00040b78 != 0 || DAT_00040b70 != 0) {\n        uVar39 = 0x2000;\n        if (local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc) {\n          uVar39 = local_b8;\n        }\n        piVar19 = (int *)xmalloc(uVar39);\n        iVar12 = (uint)DAT_00040b74 * 0x1010101;\n        if (uVar39 < 4) {\n          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }\n        }\n        else {\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }\n        iVar12 = param_2[0x1a];\n        if (iVar12 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);\n        }\n      }\n      iVar12 = (**(code **)(param_2[1] + 0xa8))(param_1,param_2);\n      if (iVar12 == 0) {\n        uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n        return 0;\n      }\n      if ((DAT_00040b64 != 0) &&\n         (iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0)) {\n        uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)\n        ;\n        FUN_0002c910(uVar13,iVar12);\n        if (*(int *)(param_2[1] + 4) != 5) {\n          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          FUN_0002c910(uVar13);\n          return 1;\n        }\n        uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)\n        ;\n        FUN_0002c910(uVar13);\n        *(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64;\n      }\n      return 1;\n    }\n    psVar43 = *(size_t **)(puVar42[5] + 0x54);\n    iVar12 = bfd_set_section_contents(param_2,psVar43,puVar42[4],0,0,puVar42[3],0);\n    local_6c = param_2;\n    if (iVar12 == 0) break;\n    puVar42 = (undefined4 *)*puVar42;\n  }\nLAB_00019fa0:\n  FUN_0002d3a0(0,local_6c,psVar43,0);\n  return iVar12;\nLAB_0001b1a6:\n  if ((undefined1 *)((int)pvVar32 + sVar54) <= puVar45) goto LAB_0001b1aa;\n  *puVar45 = (char)uVar17;\n  if (uVar17 == 0) goto LAB_0001b1aa;\n  uVar17 = uVar17 >> 8;\n  puVar45 = puVar45 + 1;\n  goto LAB_0001b1a6;\nLAB_0001b1aa:\n  bVar46 = true;\n  psVar9[0xe] = 0;\n  goto LAB_0001afd1;\n}\n\n" (function_definition "int __regparm3 FUN_00018920(void *param_1,size_t *param_2,int param_3)\n\n{\n  int *piVar1;\n  char cVar2;\n  byte bVar3;\n  int *piVar4;\n  undefined *puVar5;\n  void *pvVar6;\n  size_t sVar7;\n  code *pcVar8;\n  size_t *psVar9;\n  size_t *psVar10;\n  size_t *psVar11;\n  int iVar12;\n  undefined4 uVar13;\n  undefined4 uVar14;\n  FILE *__s;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  uint uVar17;\n  int iVar18;\n  int *piVar19;\n  undefined *puVar20;\n  int iVar21;\n  size_t sVar22;\n  size_t sVar23;\n  int *piVar24;\n  char *pcVar25;\n  void *pvVar26;\n  uint uVar27;\n  size_t sVar28;\n  size_t sVar29;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  size_t extraout_ECX_01;\n  size_t extraout_ECX_02;\n  size_t sVar30;\n  int iVar31;\n  void *pvVar32;\n  uint uVar33;\n  int *piVar34;\n  undefined4 *puVar35;\n  byte *pbVar36;\n  uint uVar37;\n  size_t *psVar38;\n  uint uVar39;\n  uint uVar40;\n  byte *pbVar41;\n  undefined4 *puVar42;\n  size_t *psVar43;\n  uint uVar44;\n  undefined1 *puVar45;\n  bool bVar46;\n  bool bVar47;\n  byte bVar48;\n  undefined8 uVar49;\n  longlong lVar50;\n  longlong lVar51;\n  void *pvVar52;\n  size_t sVar53;\n  void *__dest;\n  size_t sVar54;\n  size_t sVar55;\n  uint local_bc;\n  uint local_b8;\n  void *local_b4;\n  size_t *local_a8;\n  int local_a4;\n  int local_8c;\n  int *local_84;\n  uint local_7c;\n  uint local_78;\n  size_t *local_74;\n  size_t *local_6c;\n  int local_68;\n  int *local_64;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  int *local_34;\n  undefined4 local_30;\n  undefined4 uStack_14;\n  \n  bVar48 = 0;\n  uStack_14 = 0x1892b;\n  iVar12 = *(int *)(*(int *)((int)param_1 + 4) + 8);\n  if ((iVar12 != *(int *)(((int *)param_2)[1] + 8) && iVar12 != 2) &&\n     (*(int *)(((int *)param_2)[1] + 8) != 2)) {\n    uVar13 = dcgettext(0,"Unable to change endianness of input file(s)",5);\n    FUN_0002c910(uVar13);\n    return 0;\n  }\n  iVar12 = bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7);\n  if (iVar12 == 0) {\n    FUN_0002d3a0(0,param_2,0,0);\n    return 0;\n  }\n  if (*(int *)((int)param_1 + 0x60) == 0) {\n    uVar13 = FUN_0002d2a0(param_1);\n    pcVar25 = "error: the input file \'%s\' has no sections";\n    goto LAB_00018f38;\n  }\n  if ((*(undefined4 **)((int)param_1 + 4))[1] != 5) {\n    if ((DAT_00040b44 != 1) && ((DAT_00040b44 & 1) != 0)) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\nLAB_00018f38:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }\n    if (DAT_00040b40 != 0) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      goto LAB_00018f38;\n    }\n  }\n  if (DAT_00040bd0 != 0) {\n    uVar13 = **(undefined4 **)((int)param_1 + 4);\n    uVar14 = *(undefined4 *)((int *)param_2)[1];\n    iVar12 = *param_2;\n    uVar15 = FUN_0002d2a0(param_1);\n    pcVar25 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n    printf(pcVar25,uVar15,uVar13,iVar12,uVar14);\n  }\n  iVar12 = 0;\n  iVar31 = 0;\n  if (DAT_00040aec == 0) {\n    uVar39 = DAT_00040b88;\n    iVar31 = DAT_00040b8c;\n    if (DAT_00040b90 == 0) {\n      uVar39 = *(uint *)((int)param_1 + 0x70);\n      iVar31 = *(int *)((int)param_1 + 0x74);\n    }\n    iVar12 = uVar39 + DAT_00040b98;\n    iVar31 = iVar31 + DAT_00040b9c + (uint)CARRY4(uVar39,DAT_00040b98);\n  }\n  if ((*(byte *)((int *)param_2 + 10) & 7) != 3) {\n    uVar39 = ~DAT_00040b5c & *(uint *)(((int *)param_2)[1] + 0x10) &\n             (*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff | DAT_00040b60);\n    if (DAT_00040bb0 == 7) {\n      uVar39 = uVar39 & 0xfffffffe;\n    }\n    iVar12 = bfd_set_start_address(param_2,iVar12,iVar31);\n    if ((iVar12 == 0) || (iVar12 = bfd_set_file_flags(param_2,uVar39), iVar12 == 0))\n    goto LAB_00018b70;\n  }\n  uVar13 = bfd_get_arch(param_1);\n  uVar14 = bfd_get_mach(param_1);\n  if (param_3 != 0) {\n    iVar12 = bfd_get_arch_info(param_1);\n    if ((iVar12 == 0) || (iVar12 = bfd_get_arch_info(param_1), *(int *)(iVar12 + 0xc) == 0)) {\n      uVar13 = *(undefined4 *)(param_3 + 0xc);\n      uVar14 = *(undefined4 *)(param_3 + 0x10);\n    }\n    else {\n      uVar15 = FUN_0002d2a0(param_1);\n      uVar16 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n      FUN_0002c910(uVar16,uVar15);\n    }\n  }\n  iVar12 = (**(code **)(((int *)param_2)[1] + 0x154))(param_2,uVar13,uVar14);\n  if (iVar12 == 0) {\n    if ((*(byte *)((int)param_1 + 0x2b) & 4) != 0) {\nLAB_00018b20:\n      iVar12 = bfd_get_arch(param_1);\n      if (iVar12 == 0) {\n        uVar13 = FUN_0002d2a0(param_1);\n        pcVar25 = "Unable to recognise the format of the input file `%s\'";\n      }\n      else {\n        uVar13 = bfd_get_mach(param_1);\n        uVar14 = bfd_get_arch(param_1);\n        uVar13 = bfd_printable_arch_mach(uVar14,uVar13);\n        pcVar25 = "Output file cannot represent architecture `%s\'";\n      }\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }\n    iVar12 = bfd_get_arch(param_1);\n    iVar31 = bfd_get_arch(param_2);\n    if (iVar12 != iVar31) goto LAB_00018b20;\n  }\n  iVar12 = bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7);\n  if (iVar12 == 0) {\nLAB_00018b70:\n    FUN_0002d3a0(0,param_1,0,0);\n    return 0;\n  }\n  uVar39 = ((undefined4 *)((int *)param_2)[1])[1];\n  bVar46 = uVar39 < 2;\n  bVar47 = uVar39 == 2;\n  if (bVar47) {\n    iVar12 = 4;\n    pbVar36 = *(byte **)((int *)param_2)[1];\n    pbVar41 = &DAT_0002f16a;\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar46 = *pbVar36 < *pbVar41;\n      bVar47 = *pbVar36 == *pbVar41;\n      pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n      pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n    } while (bVar47);\n    if ((!bVar46 && !bVar47) == bVar46) {\n      iVar12 = ((int *)param_2)[0x28];\n      uVar39 = (*(undefined4 **)((int)param_1 + 4))[1];\n      bVar46 = uVar39 < 2;\n      bVar47 = uVar39 == 2;\n      if (bVar47) {\n        iVar31 = 4;\n        pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4);\n        pbVar41 = &DAT_0002f16a;\n        do {\n          if (iVar31 == 0) break;\n          iVar31 = iVar31 + -1;\n          bVar46 = *pbVar36 < *pbVar41;\n          bVar47 = *pbVar36 == *pbVar41;\n          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n        } while (bVar47);\n        if ((!bVar46 && !bVar47) == bVar46) {\n          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);\n          puVar42 = (undefined4 *)(iVar12 + 0x7c);\n          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }\n        }\n      }\n      uVar39 = DAT_000402b4;\n      if ((DAT_000402b4 & DAT_000402b0) == 0xffffffff) {\n        DAT_000402b0 = 0x200;\n        DAT_000402b4 = 0;\n      }\n      else {\n        *(uint *)(iVar12 + 0xb4) = DAT_000402b0;\n        *(uint *)(iVar12 + 0xb8) = uVar39;\n      }\n      uVar39 = DAT_000402ac;\n      if ((DAT_000402ac & DAT_000402a8) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a8;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_000402a4;\n      if ((DAT_000402a4 & DAT_000402a0) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a0;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_0004029c;\n      if ((DAT_0004029c & DAT_00040298) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xa4) = DAT_00040298;\n        *(uint *)(iVar12 + 0xa8) = uVar39;\n      }\n      uVar39 = DAT_00040294;\n      local_64 = (int *)DAT_00040290;\n      if ((DAT_00040290 & DAT_00040294) == 0xffffffff) {\n        DAT_00040290 = 0x1000;\n        uVar39 = 0;\n        DAT_00040294 = 0;\n        local_64 = (int *)0x1000;\n      }\n      else {\n        *(uint *)(iVar12 + 0xac) = DAT_00040290;\n        *(uint *)(iVar12 + 0xb0) = uVar39;\n      }\n      uVar17 = DAT_0004028c;\n      if ((DAT_0004028c & DAT_00040288) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040288;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      uVar17 = DAT_00040284;\n      if ((DAT_00040284 & DAT_00040280) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040280;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      if (DAT_0004027c != -1) {\n        *(short *)(iVar12 + 0xd8) = DAT_0004027c;\n      }\n      if (DAT_0004027a != -1) {\n        *(short *)(iVar12 + 0xc4) = DAT_0004027a;\n      }\n      if (DAT_00040278 != -1) {\n        *(short *)(iVar12 + 0xc6) = DAT_00040278;\n      }\n      if (uVar39 < DAT_000402b4 || uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0)) {\n        sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4);\n        sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294);\n        uVar13 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n        FUN_0002c910(uVar13,&local_4c,&local_34);\n      }\n    }\n  }\n  piVar19 = DAT_00040bdc;\n  if (DAT_00040bdc != (int *)0x0) {\n    free(DAT_00040bdc);\n  }\n  if (piVar19 != DAT_00040bd8) {\n    free(DAT_00040bd8);\n  }\n  DAT_00040bdc = (int *)0x0;\n  DAT_00040bd8 = (int *)0x0;\n  iVar12 = (**(code **)(*(int *)((int)param_1 + 4) + 0x104))(param_1);\n  if (iVar12 < 0) goto LAB_00018b70;\n  DAT_00040bd8 = (int *)xmalloc(iVar12);\n  DAT_00040bdc = DAT_00040bd8;\n  local_8c = (**(code **)(*(int *)((int)param_1 + 4) + 0x108))(param_1,DAT_00040bd8);\n  if (local_8c < 0) goto LAB_00018b70;\n  if (local_8c == 0) {\n    free(DAT_00040bdc);\n    DAT_00040bdc = (int *)0x0;\n    DAT_00040bd8 = (int *)0x0;\n  }\n  bfd_map_over_sections(param_1,FUN_00017af0,param_2);\n  puVar35 = DAT_00040b58;\n  if ((DAT_00040aec == 0) &&\n     (iVar12 = (**(code **)(((int *)param_2)[1] + 0xbc))(param_1,param_2), puVar35 = DAT_00040b58,\n     iVar12 == 0)) {\n    DAT_00040bc8 = 1;\n    uVar13 = dcgettext(0,"error in private header data",5);\n    FUN_0002d3a0(0,param_1,0,uVar13);\n    puVar35 = DAT_00040b58;\n  }\n  for (; puVar42 = DAT_00040b54, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)*puVar35) {\n    uVar39 = 0x128;\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      uVar39 = *(uint *)(iVar12 + 0x20) | 0x100;\n    }\n    iVar12 = bfd_get_section_by_name(param_2,puVar35[1]);\n    if (iVar12 != 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t add section \'%s\'";\nLAB_00019591:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n      return 0;\n    }\n    iVar12 = bfd_make_section_with_flags(param_2,puVar35[1],uVar39 | 0x100000);\n    puVar35[5] = iVar12;\n    if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t create section `%s\'";\n      goto LAB_00019591;\n    }\n    iVar12 = bfd_set_section_size(param_2,iVar12,puVar35[3],0);\n    if (iVar12 == 0) goto LAB_00019d5e;\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x14);\n      uVar14 = *(undefined4 *)(iVar12 + 0x10);\n      *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      *(undefined4 *)(iVar31 + 0x24) = uVar14;\n      *(undefined4 *)(iVar31 + 0x28) = uVar13;\n      *(undefined4 *)(iVar31 + 0x1c) = uVar14;\n      *(undefined4 *)(iVar31 + 0x20) = uVar13;\n    }\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x18);\n      *(undefined4 *)(iVar31 + 0x28) = *(undefined4 *)(iVar12 + 0x1c);\n      *(undefined4 *)(iVar31 + 0x24) = uVar13;\n    }\n  }\n  for (; local_6c = param_2, puVar42 != (undefined4 *)0x0; puVar42 = (undefined4 *)*puVar42) {\n    iVar12 = bfd_get_section_by_name(param_1,puVar42[1]);\n    puVar42[5] = iVar12;\n    if (iVar12 == 0) {\n      uVar13 = puVar42[1];\n      pcVar25 = "error: %s not found, can\'t be updated";\n      goto LAB_00018f38;\n    }\n    psVar43 = *(size_t **)(iVar12 + 0x54);\n    iVar12 = bfd_set_section_size(param_2,psVar43,puVar42[3],0);\n    if (iVar12 == 0) goto LAB_00019fa0;\n  }\n  if ((((DAT_00040bc4 != 0) &&\n       (iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0)) &&\n      (DAT_00040bc4 != 0)) &&\n     ((*(int *)(*(int *)((int)param_1 + 4) + 4) == 5 && (iVar31 = FUN_000176d0(), iVar31 != 0)))) {\n    uVar39 = *(uint *)(iVar12 + 0x30);\n    sVar22 = *(size_t *)(iVar12 + 0x2c);\n    if (uVar39 == 0 && sVar22 == 0) {\n      uVar13 = dcgettext(0,"warning: note section is empty",5,sVar22);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n      DAT_00040bc4 = 0;\n    }\n    else {\n      iVar31 = bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22);\n      pvVar6 = DAT_00040bc0;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"warning: could not load note section",5,0);\n        FUN_0002d3a0(0,param_1,iVar12,uVar13);\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n      }\n      else {\n        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);\n        sVar23 = extraout_ECX_01;\n        pvVar26 = param_1;\n        if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar52 = (void *)0x30;\n        sVar53 = sVar23;\n        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);\n        local_74 = (size_t *)xcalloc(uVar13);\n        local_bc = 0;\n        sVar54 = 0;\n        local_b8 = 0;\n        sVar55 = 0;\n        local_84 = (int *)0x0;\n        local_a8 = (size_t *)0x0;\n        local_a4 = 0;\n        pvVar26 = pvVar6;\n        psVar43 = local_74;\n        local_7c = sVar22;\n        local_78 = uVar39;\n        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }\n        if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        DAT_00040bb8 = 0;\n        DAT_00040bbc = 0;\n      }\n    }\n  }\nLAB_00018e0e:\n  param_2 = local_6c;\n  iVar31 = DAT_00040b4c;\n  for (puVar35 = DAT_00040b50; DAT_00040b4c = iVar31, puVar35 != (undefined4 *)0x0;\n      puVar35 = (undefined4 *)*puVar35) {\n    iVar12 = bfd_get_section_by_name(param_1,puVar35[1]);\n    if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      uVar14 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n      FUN_0002d3a0(0,param_1,0,uVar14,uVar13);\n    }\n    else {\n      if ((*(byte *)(iVar12 + 0x15) & 1) == 0) {\n        pcVar25 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar22 = *(size_t *)(iVar12 + 0x2c);\n        iVar31 = *(int *)(iVar12 + 0x30);\n        if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar25 = "can\'t dump section - it is empty";\n      }\n      uVar13 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n    }\nLAB_00018eb1:\n    iVar31 = DAT_00040b4c;\n  }\n  if (iVar31 != 0) {\n    iVar12 = bfd_get_section_by_name(local_6c,".gnu_debuglink");\n    if (iVar12 == 0) {\n      iVar31 = bfd_create_gnu_debuglink_section(local_6c,DAT_00040b4c);\n      iVar12 = DAT_00040b4c;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,local_6c,0,uVar13,iVar12);\n        return 0;\n      }\n      if (*(int *)(local_6c[1] + 4) == 2) {\n        iVar12 = local_6c[0x18];\n        iVar18 = 0;\n        if (iVar12 == 0) {\nLAB_0001aa69:\n          uVar39 = 0x1000;\n          iVar12 = 0;\n        }\n        else {\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(iVar31 + 0x24) = uVar39;\n        *(int *)(iVar31 + 0x28) = iVar12;\n        *(uint *)(iVar31 + 0x1c) = uVar39;\n        *(int *)(iVar31 + 0x20) = iVar12;\n        *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      }\n    }\n    else {\n      iVar12 = *local_6c;\n      uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n      FUN_0002c910(uVar13,iVar12);\n      DAT_00040b4c = 0;\n      iVar31 = 0;\n    }\n  }\n  sVar22 = local_6c[0x1a];\n  if ((sVar22 == 0) || (DAT_00040b78 == 0 && DAT_00040b70 == 0)) {\n    local_b8 = 0;\n    local_bc = 0;\n    local_b4 = (void *)0x0;\n    local_a8 = (size_t *)0x0;\n    uVar39 = local_bc;\n    uVar17 = local_b8;\n  }\n  else {\n    local_a8 = (size_t *)xmalloc(sVar22 * 4);\n    local_34 = (int *)local_a8;\n    bfd_map_over_sections(local_6c,FUN_00016800,&local_34);\n    qsort(local_a8,sVar22,4,FUN_00016820);\n    sVar23 = sVar22 * 8;\n    local_b4 = (void *)xmalloc(sVar23);\n    memset(local_b4,0,sVar23);\n    if ((DAT_00040b78 == 0) || (sVar22 == 1)) {\n      local_b8 = 0;\n      local_bc = 0;\n    }\n    else {\n      local_b8 = 0;\n      local_bc = 0;\n      local_6c = (size_t *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (size_t *)((int)local_6c + 1);\n        iVar12 = *local_64;\n        uVar39 = local_bc;\n        uVar17 = local_b8;\n        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }\n        local_b8 = uVar17;\n        local_bc = uVar39;\n        local_64 = local_64 + 1;\n      } while ((size_t *)(sVar22 - 1) != local_6c);\n    }\n    uVar39 = local_bc;\n    uVar17 = local_b8;\n    if (DAT_00040b70 != 0) {\n      iVar12 = ((int *)local_a8)[sVar22 - 1];\n      uVar27 = *(uint *)(iVar12 + 0x24);\n      uVar37 = uVar27 + *(uint *)(iVar12 + 0x2c);\n      uVar44 = *(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +\n               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c));\n      if (uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)) {\n        iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           );\n        if (iVar12 == 0) {\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }\n        else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }\n      }\n    }\n  }\n  local_b8 = uVar17;\n  local_bc = uVar39;\n  iVar12 = 0;\n  if (DAT_00040b48 != 0) {\n    iVar12 = FUN_0001c9c0(param_1,DAT_00040bdc,local_8c,0);\n  }\n  if (DAT_00040bb0 - 2U < 6) {\nLAB_0001962a:\n    if (DAT_00040bb0 != 7) goto LAB_0001962f;\n  }\n  else {\n    if (DAT_00040b30 == 0 && DAT_00040bac == 0) {\n      iVar18 = htab_elements(DAT_00040b2c);\n      if ((((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&\n         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))))\n      goto LAB_00019e4d;\n      goto LAB_0001962a;\n    }\nLAB_0001962f:\n    bfd_set_error(0);\n    bfd_map_over_sections(param_1,FUN_000187a0,DAT_00040bdc);\n    iVar18 = bfd_get_error();\n    if (iVar18 != 0) {\n      DAT_00040bc8 = 1;\n      return 0;\n    }\n  }\n  piVar19 = (int *)xmalloc((DAT_00040b04 + local_8c) * 4 + 4);\n  local_84 = DAT_00040bdc;\n  uVar39 = *(uint *)((int)param_1 + 0x28);\n  DAT_00040bd8 = piVar19;\n  if (local_8c != 0) {\n    piVar1 = DAT_00040bdc + local_8c;\n    local_8c = 0;\n    puVar20 = PTR__bfd_std_section_0003ffc8 + 0xc0;\n    do {\n      iVar18 = DAT_00040b04;\n      piVar4 = (int *)*local_84;\n      uVar17 = piVar4[4];\n      piVar24 = (int *)piVar4[1];\n      puVar5 = (undefined *)piVar4[5];\n      if (((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) &&\n         (pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0)) {\n        local_6c = (size_t *)0x0;\n        piVar34 = DAT_00040b08;\n        while (iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0) {\n          local_6c = (size_t *)((int)local_6c + 1);\n          piVar34 = (int *)*piVar34;\n          if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar25);\n        piVar34[5] = (int)"";\n        piVar34 = piVar19 + local_8c;\n        local_8c = local_8c + 1;\n        iVar18 = FUN_00017920();\n        *piVar34 = iVar18;\n      }\nLAB_000197a8:\n      iVar18 = htab_elements(DAT_00040b10);\n      piVar34 = piVar24;\n      if ((iVar18 != 0) || (DAT_00040be0 != (undefined4 *)0x0)) {\n        local_30 = 0;\n        local_34 = piVar24;\n        iVar18 = htab_find(DAT_00040b10,&local_34);\n        if (((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)) {\n          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }\n        }\n        piVar4[1] = (int)piVar34;\n      }\n      pcVar25 = DAT_00040af8;\n      cVar2 = *(char *)(*(int *)((int)param_1 + 4) + 0x18);\n      if ((char)*piVar34 == cVar2) {\n        if (DAT_00040b3c == 0) {\n          if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }\nLAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }\n      }\n      else {\n        if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))\n        goto LAB_0001982b;\nLAB_00019ab1:\n        sVar22 = strlen(pcVar25);\n        sVar23 = strlen((char *)piVar34);\n        piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n        local_6c = (size_t *)((int)piVar24 + 1);\n        *(char *)piVar24 = *(char *)(param_2[1] + 0x18);\nLAB_00019858:\n        pcVar25 = DAT_00040af8;\n        if (DAT_00040af8 != (char *)0x0) {\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }\n        strcpy((char *)local_6c,(char *)piVar34);\n        piVar4[1] = (int)piVar24;\n        piVar34 = piVar24;\n      }\n      if (DAT_00040bb0 == 7) goto LAB_00019928;\n      if ((uVar17 & 0x20) == 0) {\n        if (((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)) {\n          if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;\n        }\n        else {\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;\n      }\n      else {\n        iVar18 = FUN_000179c0();\n        if (iVar18 != 0) {\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }\nLAB_0001994f:\n        iVar18 = FUN_00017a30();\n        if (iVar18 == 0) {\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }\n      }\n      local_84 = local_84 + 1;\n    } while (piVar1 != local_84);\n  }\n  local_6c = (size_t *)DAT_00040b08;\n  if ((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) {\n    iVar18 = 0;\n    do {\n      pcVar25 = (char *)local_6c[5];\n      if (pcVar25 == (char *)0x0) {\n        iVar21 = FUN_00017920();\n        piVar19[local_8c] = iVar21;\n        local_8c = local_8c + 1;\n      }\n      else if (*pcVar25 != '\0') {\n        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    \n        FUN_0002c8e0(uVar13,pcVar25);\n      }\n      iVar18 = iVar18 + 1;\n      local_6c = (size_t *)*local_6c;\n    } while (iVar18 < DAT_00040b04);\n  }\n  piVar19[local_8c] = 0;\n  if ((DAT_00040b48 != 0) && (iVar12 != 0)) {\n    iVar18 = ((undefined4 *)param_2[1])[1];\n    if ((iVar18 == 2) || (iVar18 == 5)) {\n      iVar12 = FUN_0002c240(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34);\n      if (iVar12 != 0) {\n        iVar12 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n        iVar18 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n        if ((((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)) {\n          pcVar25 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }\n        uVar13 = dcgettext(0,pcVar25,5,iVar12);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n      }\n    }\n    else {\n      uVar13 = *(undefined4 *)param_2[1];\n      uVar14 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n    }\n    DAT_00040bc8 = 1;\n    return 0;\n  }\nLAB_00019e4d:\n  bfd_set_symtab(param_2,DAT_00040bd8,local_8c);\n  bfd_map_over_sections(param_1,FUN_00018500,param_2);\n  bfd_map_over_sections(param_1,FUN_00018070,param_2);\n  for (puVar35 = DAT_00040b58; psVar43 = param_2, puVar42 = DAT_00040b54,\n      puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)*puVar35) {\n    iVar12 = bfd_set_section_contents(param_2,puVar35[5],puVar35[4],0,0,puVar35[3],0);\n    if (iVar12 == 0) {\nLAB_00019d5e:\n      FUN_0002d3a0(0,param_2,puVar35[5],0);\n      return 0;\n    }\n  }\n  while( true ) {\n    if (puVar42 == (undefined4 *)0x0) {\n      uVar39 = 0;\n      if (DAT_00040bc4 != 0) {\n        uVar39 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n        if (((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))) {\n          if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }\n        }\n        else {\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        psVar43 = param_2;\n      }\n      if ((DAT_00040b4c != 0) &&\n         (iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0)) {\n        uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,param_2,0,uVar13,iVar12);\n        return 0;\n      }\n      if (DAT_00040b78 != 0 || DAT_00040b70 != 0) {\n        uVar39 = 0x2000;\n        if (local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc) {\n          uVar39 = local_b8;\n        }\n        piVar19 = (int *)xmalloc(uVar39);\n        iVar12 = (uint)DAT_00040b74 * 0x1010101;\n        if (uVar39 < 4) {\n          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }\n        }\n        else {\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }\n        iVar12 = param_2[0x1a];\n        if (iVar12 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);\n        }\n      }\n      iVar12 = (**(code **)(param_2[1] + 0xa8))(param_1,param_2);\n      if (iVar12 == 0) {\n        uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n        return 0;\n      }\n      if ((DAT_00040b64 != 0) &&\n         (iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0)) {\n        uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)\n        ;\n        FUN_0002c910(uVar13,iVar12);\n        if (*(int *)(param_2[1] + 4) != 5) {\n          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          FUN_0002c910(uVar13);\n          return 1;\n        }\n        uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)\n        ;\n        FUN_0002c910(uVar13);\n        *(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64;\n      }\n      return 1;\n    }\n    psVar43 = *(size_t **)(puVar42[5] + 0x54);\n    iVar12 = bfd_set_section_contents(param_2,psVar43,puVar42[4],0,0,puVar42[3],0);\n    local_6c = param_2;\n    if (iVar12 == 0) break;\n    puVar42 = (undefined4 *)*puVar42;\n  }\nLAB_00019fa0:\n  FUN_0002d3a0(0,local_6c,psVar43,0);\n  return iVar12;\nLAB_0001b1a6:\n  if ((undefined1 *)((int)pvVar32 + sVar54) <= puVar45) goto LAB_0001b1aa;\n  *puVar45 = (char)uVar17;\n  if (uVar17 == 0) goto LAB_0001b1aa;\n  uVar17 = uVar17 >> 8;\n  puVar45 = puVar45 + 1;\n  goto LAB_0001b1a6;\nLAB_0001b1aa:\n  bVar46 = true;\n  psVar9[0xe] = 0;\n  goto LAB_0001afd1;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00018920(void *param_1,size_t *param_2,int param_3)" identifier (parameter_list "(void *param_1,size_t *param_2,int param_3)" ( (parameter_declaration "void *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "size_t *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  char cVar2;\n  byte bVar3;\n  int *piVar4;\n  undefined *puVar5;\n  void *pvVar6;\n  size_t sVar7;\n  code *pcVar8;\n  size_t *psVar9;\n  size_t *psVar10;\n  size_t *psVar11;\n  int iVar12;\n  undefined4 uVar13;\n  undefined4 uVar14;\n  FILE *__s;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  uint uVar17;\n  int iVar18;\n  int *piVar19;\n  undefined *puVar20;\n  int iVar21;\n  size_t sVar22;\n  size_t sVar23;\n  int *piVar24;\n  char *pcVar25;\n  void *pvVar26;\n  uint uVar27;\n  size_t sVar28;\n  size_t sVar29;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  size_t extraout_ECX_01;\n  size_t extraout_ECX_02;\n  size_t sVar30;\n  int iVar31;\n  void *pvVar32;\n  uint uVar33;\n  int *piVar34;\n  undefined4 *puVar35;\n  byte *pbVar36;\n  uint uVar37;\n  size_t *psVar38;\n  uint uVar39;\n  uint uVar40;\n  byte *pbVar41;\n  undefined4 *puVar42;\n  size_t *psVar43;\n  uint uVar44;\n  undefined1 *puVar45;\n  bool bVar46;\n  bool bVar47;\n  byte bVar48;\n  undefined8 uVar49;\n  longlong lVar50;\n  longlong lVar51;\n  void *pvVar52;\n  size_t sVar53;\n  void *__dest;\n  size_t sVar54;\n  size_t sVar55;\n  uint local_bc;\n  uint local_b8;\n  void *local_b4;\n  size_t *local_a8;\n  int local_a4;\n  int local_8c;\n  int *local_84;\n  uint local_7c;\n  uint local_78;\n  size_t *local_74;\n  size_t *local_6c;\n  int local_68;\n  int *local_64;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  int *local_34;\n  undefined4 local_30;\n  undefined4 uStack_14;\n  \n  bVar48 = 0;\n  uStack_14 = 0x1892b;\n  iVar12 = *(int *)(*(int *)((int)param_1 + 4) + 8);\n  if ((iVar12 != *(int *)(((int *)param_2)[1] + 8) && iVar12 != 2) &&\n     (*(int *)(((int *)param_2)[1] + 8) != 2)) {\n    uVar13 = dcgettext(0,"Unable to change endianness of input file(s)",5);\n    FUN_0002c910(uVar13);\n    return 0;\n  }\n  iVar12 = bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7);\n  if (iVar12 == 0) {\n    FUN_0002d3a0(0,param_2,0,0);\n    return 0;\n  }\n  if (*(int *)((int)param_1 + 0x60) == 0) {\n    uVar13 = FUN_0002d2a0(param_1);\n    pcVar25 = "error: the input file \'%s\' has no sections";\n    goto LAB_00018f38;\n  }\n  if ((*(undefined4 **)((int)param_1 + 4))[1] != 5) {\n    if ((DAT_00040b44 != 1) && ((DAT_00040b44 & 1) != 0)) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\nLAB_00018f38:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }\n    if (DAT_00040b40 != 0) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      goto LAB_00018f38;\n    }\n  }\n  if (DAT_00040bd0 != 0) {\n    uVar13 = **(undefined4 **)((int)param_1 + 4);\n    uVar14 = *(undefined4 *)((int *)param_2)[1];\n    iVar12 = *param_2;\n    uVar15 = FUN_0002d2a0(param_1);\n    pcVar25 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n    printf(pcVar25,uVar15,uVar13,iVar12,uVar14);\n  }\n  iVar12 = 0;\n  iVar31 = 0;\n  if (DAT_00040aec == 0) {\n    uVar39 = DAT_00040b88;\n    iVar31 = DAT_00040b8c;\n    if (DAT_00040b90 == 0) {\n      uVar39 = *(uint *)((int)param_1 + 0x70);\n      iVar31 = *(int *)((int)param_1 + 0x74);\n    }\n    iVar12 = uVar39 + DAT_00040b98;\n    iVar31 = iVar31 + DAT_00040b9c + (uint)CARRY4(uVar39,DAT_00040b98);\n  }\n  if ((*(byte *)((int *)param_2 + 10) & 7) != 3) {\n    uVar39 = ~DAT_00040b5c & *(uint *)(((int *)param_2)[1] + 0x10) &\n             (*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff | DAT_00040b60);\n    if (DAT_00040bb0 == 7) {\n      uVar39 = uVar39 & 0xfffffffe;\n    }\n    iVar12 = bfd_set_start_address(param_2,iVar12,iVar31);\n    if ((iVar12 == 0) || (iVar12 = bfd_set_file_flags(param_2,uVar39), iVar12 == 0))\n    goto LAB_00018b70;\n  }\n  uVar13 = bfd_get_arch(param_1);\n  uVar14 = bfd_get_mach(param_1);\n  if (param_3 != 0) {\n    iVar12 = bfd_get_arch_info(param_1);\n    if ((iVar12 == 0) || (iVar12 = bfd_get_arch_info(param_1), *(int *)(iVar12 + 0xc) == 0)) {\n      uVar13 = *(undefined4 *)(param_3 + 0xc);\n      uVar14 = *(undefined4 *)(param_3 + 0x10);\n    }\n    else {\n      uVar15 = FUN_0002d2a0(param_1);\n      uVar16 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n      FUN_0002c910(uVar16,uVar15);\n    }\n  }\n  iVar12 = (**(code **)(((int *)param_2)[1] + 0x154))(param_2,uVar13,uVar14);\n  if (iVar12 == 0) {\n    if ((*(byte *)((int)param_1 + 0x2b) & 4) != 0) {\nLAB_00018b20:\n      iVar12 = bfd_get_arch(param_1);\n      if (iVar12 == 0) {\n        uVar13 = FUN_0002d2a0(param_1);\n        pcVar25 = "Unable to recognise the format of the input file `%s\'";\n      }\n      else {\n        uVar13 = bfd_get_mach(param_1);\n        uVar14 = bfd_get_arch(param_1);\n        uVar13 = bfd_printable_arch_mach(uVar14,uVar13);\n        pcVar25 = "Output file cannot represent architecture `%s\'";\n      }\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }\n    iVar12 = bfd_get_arch(param_1);\n    iVar31 = bfd_get_arch(param_2);\n    if (iVar12 != iVar31) goto LAB_00018b20;\n  }\n  iVar12 = bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7);\n  if (iVar12 == 0) {\nLAB_00018b70:\n    FUN_0002d3a0(0,param_1,0,0);\n    return 0;\n  }\n  uVar39 = ((undefined4 *)((int *)param_2)[1])[1];\n  bVar46 = uVar39 < 2;\n  bVar47 = uVar39 == 2;\n  if (bVar47) {\n    iVar12 = 4;\n    pbVar36 = *(byte **)((int *)param_2)[1];\n    pbVar41 = &DAT_0002f16a;\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar46 = *pbVar36 < *pbVar41;\n      bVar47 = *pbVar36 == *pbVar41;\n      pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n      pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n    } while (bVar47);\n    if ((!bVar46 && !bVar47) == bVar46) {\n      iVar12 = ((int *)param_2)[0x28];\n      uVar39 = (*(undefined4 **)((int)param_1 + 4))[1];\n      bVar46 = uVar39 < 2;\n      bVar47 = uVar39 == 2;\n      if (bVar47) {\n        iVar31 = 4;\n        pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4);\n        pbVar41 = &DAT_0002f16a;\n        do {\n          if (iVar31 == 0) break;\n          iVar31 = iVar31 + -1;\n          bVar46 = *pbVar36 < *pbVar41;\n          bVar47 = *pbVar36 == *pbVar41;\n          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n        } while (bVar47);\n        if ((!bVar46 && !bVar47) == bVar46) {\n          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);\n          puVar42 = (undefined4 *)(iVar12 + 0x7c);\n          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }\n        }\n      }\n      uVar39 = DAT_000402b4;\n      if ((DAT_000402b4 & DAT_000402b0) == 0xffffffff) {\n        DAT_000402b0 = 0x200;\n        DAT_000402b4 = 0;\n      }\n      else {\n        *(uint *)(iVar12 + 0xb4) = DAT_000402b0;\n        *(uint *)(iVar12 + 0xb8) = uVar39;\n      }\n      uVar39 = DAT_000402ac;\n      if ((DAT_000402ac & DAT_000402a8) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a8;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_000402a4;\n      if ((DAT_000402a4 & DAT_000402a0) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a0;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_0004029c;\n      if ((DAT_0004029c & DAT_00040298) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xa4) = DAT_00040298;\n        *(uint *)(iVar12 + 0xa8) = uVar39;\n      }\n      uVar39 = DAT_00040294;\n      local_64 = (int *)DAT_00040290;\n      if ((DAT_00040290 & DAT_00040294) == 0xffffffff) {\n        DAT_00040290 = 0x1000;\n        uVar39 = 0;\n        DAT_00040294 = 0;\n        local_64 = (int *)0x1000;\n      }\n      else {\n        *(uint *)(iVar12 + 0xac) = DAT_00040290;\n        *(uint *)(iVar12 + 0xb0) = uVar39;\n      }\n      uVar17 = DAT_0004028c;\n      if ((DAT_0004028c & DAT_00040288) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040288;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      uVar17 = DAT_00040284;\n      if ((DAT_00040284 & DAT_00040280) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040280;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      if (DAT_0004027c != -1) {\n        *(short *)(iVar12 + 0xd8) = DAT_0004027c;\n      }\n      if (DAT_0004027a != -1) {\n        *(short *)(iVar12 + 0xc4) = DAT_0004027a;\n      }\n      if (DAT_00040278 != -1) {\n        *(short *)(iVar12 + 0xc6) = DAT_00040278;\n      }\n      if (uVar39 < DAT_000402b4 || uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0)) {\n        sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4);\n        sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294);\n        uVar13 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n        FUN_0002c910(uVar13,&local_4c,&local_34);\n      }\n    }\n  }\n  piVar19 = DAT_00040bdc;\n  if (DAT_00040bdc != (int *)0x0) {\n    free(DAT_00040bdc);\n  }\n  if (piVar19 != DAT_00040bd8) {\n    free(DAT_00040bd8);\n  }\n  DAT_00040bdc = (int *)0x0;\n  DAT_00040bd8 = (int *)0x0;\n  iVar12 = (**(code **)(*(int *)((int)param_1 + 4) + 0x104))(param_1);\n  if (iVar12 < 0) goto LAB_00018b70;\n  DAT_00040bd8 = (int *)xmalloc(iVar12);\n  DAT_00040bdc = DAT_00040bd8;\n  local_8c = (**(code **)(*(int *)((int)param_1 + 4) + 0x108))(param_1,DAT_00040bd8);\n  if (local_8c < 0) goto LAB_00018b70;\n  if (local_8c == 0) {\n    free(DAT_00040bdc);\n    DAT_00040bdc = (int *)0x0;\n    DAT_00040bd8 = (int *)0x0;\n  }\n  bfd_map_over_sections(param_1,FUN_00017af0,param_2);\n  puVar35 = DAT_00040b58;\n  if ((DAT_00040aec == 0) &&\n     (iVar12 = (**(code **)(((int *)param_2)[1] + 0xbc))(param_1,param_2), puVar35 = DAT_00040b58,\n     iVar12 == 0)) {\n    DAT_00040bc8 = 1;\n    uVar13 = dcgettext(0,"error in private header data",5);\n    FUN_0002d3a0(0,param_1,0,uVar13);\n    puVar35 = DAT_00040b58;\n  }\n  for (; puVar42 = DAT_00040b54, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)*puVar35) {\n    uVar39 = 0x128;\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      uVar39 = *(uint *)(iVar12 + 0x20) | 0x100;\n    }\n    iVar12 = bfd_get_section_by_name(param_2,puVar35[1]);\n    if (iVar12 != 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t add section \'%s\'";\nLAB_00019591:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n      return 0;\n    }\n    iVar12 = bfd_make_section_with_flags(param_2,puVar35[1],uVar39 | 0x100000);\n    puVar35[5] = iVar12;\n    if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t create section `%s\'";\n      goto LAB_00019591;\n    }\n    iVar12 = bfd_set_section_size(param_2,iVar12,puVar35[3],0);\n    if (iVar12 == 0) goto LAB_00019d5e;\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x14);\n      uVar14 = *(undefined4 *)(iVar12 + 0x10);\n      *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      *(undefined4 *)(iVar31 + 0x24) = uVar14;\n      *(undefined4 *)(iVar31 + 0x28) = uVar13;\n      *(undefined4 *)(iVar31 + 0x1c) = uVar14;\n      *(undefined4 *)(iVar31 + 0x20) = uVar13;\n    }\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x18);\n      *(undefined4 *)(iVar31 + 0x28) = *(undefined4 *)(iVar12 + 0x1c);\n      *(undefined4 *)(iVar31 + 0x24) = uVar13;\n    }\n  }\n  for (; local_6c = param_2, puVar42 != (undefined4 *)0x0; puVar42 = (undefined4 *)*puVar42) {\n    iVar12 = bfd_get_section_by_name(param_1,puVar42[1]);\n    puVar42[5] = iVar12;\n    if (iVar12 == 0) {\n      uVar13 = puVar42[1];\n      pcVar25 = "error: %s not found, can\'t be updated";\n      goto LAB_00018f38;\n    }\n    psVar43 = *(size_t **)(iVar12 + 0x54);\n    iVar12 = bfd_set_section_size(param_2,psVar43,puVar42[3],0);\n    if (iVar12 == 0) goto LAB_00019fa0;\n  }\n  if ((((DAT_00040bc4 != 0) &&\n       (iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0)) &&\n      (DAT_00040bc4 != 0)) &&\n     ((*(int *)(*(int *)((int)param_1 + 4) + 4) == 5 && (iVar31 = FUN_000176d0(), iVar31 != 0)))) {\n    uVar39 = *(uint *)(iVar12 + 0x30);\n    sVar22 = *(size_t *)(iVar12 + 0x2c);\n    if (uVar39 == 0 && sVar22 == 0) {\n      uVar13 = dcgettext(0,"warning: note section is empty",5,sVar22);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n      DAT_00040bc4 = 0;\n    }\n    else {\n      iVar31 = bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22);\n      pvVar6 = DAT_00040bc0;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"warning: could not load note section",5,0);\n        FUN_0002d3a0(0,param_1,iVar12,uVar13);\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n      }\n      else {\n        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);\n        sVar23 = extraout_ECX_01;\n        pvVar26 = param_1;\n        if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar52 = (void *)0x30;\n        sVar53 = sVar23;\n        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);\n        local_74 = (size_t *)xcalloc(uVar13);\n        local_bc = 0;\n        sVar54 = 0;\n        local_b8 = 0;\n        sVar55 = 0;\n        local_84 = (int *)0x0;\n        local_a8 = (size_t *)0x0;\n        local_a4 = 0;\n        pvVar26 = pvVar6;\n        psVar43 = local_74;\n        local_7c = sVar22;\n        local_78 = uVar39;\n        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }\n        if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        DAT_00040bb8 = 0;\n        DAT_00040bbc = 0;\n      }\n    }\n  }\nLAB_00018e0e:\n  param_2 = local_6c;\n  iVar31 = DAT_00040b4c;\n  for (puVar35 = DAT_00040b50; DAT_00040b4c = iVar31, puVar35 != (undefined4 *)0x0;\n      puVar35 = (undefined4 *)*puVar35) {\n    iVar12 = bfd_get_section_by_name(param_1,puVar35[1]);\n    if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      uVar14 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n      FUN_0002d3a0(0,param_1,0,uVar14,uVar13);\n    }\n    else {\n      if ((*(byte *)(iVar12 + 0x15) & 1) == 0) {\n        pcVar25 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar22 = *(size_t *)(iVar12 + 0x2c);\n        iVar31 = *(int *)(iVar12 + 0x30);\n        if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar25 = "can\'t dump section - it is empty";\n      }\n      uVar13 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n    }\nLAB_00018eb1:\n    iVar31 = DAT_00040b4c;\n  }\n  if (iVar31 != 0) {\n    iVar12 = bfd_get_section_by_name(local_6c,".gnu_debuglink");\n    if (iVar12 == 0) {\n      iVar31 = bfd_create_gnu_debuglink_section(local_6c,DAT_00040b4c);\n      iVar12 = DAT_00040b4c;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,local_6c,0,uVar13,iVar12);\n        return 0;\n      }\n      if (*(int *)(local_6c[1] + 4) == 2) {\n        iVar12 = local_6c[0x18];\n        iVar18 = 0;\n        if (iVar12 == 0) {\nLAB_0001aa69:\n          uVar39 = 0x1000;\n          iVar12 = 0;\n        }\n        else {\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(iVar31 + 0x24) = uVar39;\n        *(int *)(iVar31 + 0x28) = iVar12;\n        *(uint *)(iVar31 + 0x1c) = uVar39;\n        *(int *)(iVar31 + 0x20) = iVar12;\n        *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      }\n    }\n    else {\n      iVar12 = *local_6c;\n      uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n      FUN_0002c910(uVar13,iVar12);\n      DAT_00040b4c = 0;\n      iVar31 = 0;\n    }\n  }\n  sVar22 = local_6c[0x1a];\n  if ((sVar22 == 0) || (DAT_00040b78 == 0 && DAT_00040b70 == 0)) {\n    local_b8 = 0;\n    local_bc = 0;\n    local_b4 = (void *)0x0;\n    local_a8 = (size_t *)0x0;\n    uVar39 = local_bc;\n    uVar17 = local_b8;\n  }\n  else {\n    local_a8 = (size_t *)xmalloc(sVar22 * 4);\n    local_34 = (int *)local_a8;\n    bfd_map_over_sections(local_6c,FUN_00016800,&local_34);\n    qsort(local_a8,sVar22,4,FUN_00016820);\n    sVar23 = sVar22 * 8;\n    local_b4 = (void *)xmalloc(sVar23);\n    memset(local_b4,0,sVar23);\n    if ((DAT_00040b78 == 0) || (sVar22 == 1)) {\n      local_b8 = 0;\n      local_bc = 0;\n    }\n    else {\n      local_b8 = 0;\n      local_bc = 0;\n      local_6c = (size_t *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (size_t *)((int)local_6c + 1);\n        iVar12 = *local_64;\n        uVar39 = local_bc;\n        uVar17 = local_b8;\n        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }\n        local_b8 = uVar17;\n        local_bc = uVar39;\n        local_64 = local_64 + 1;\n      } while ((size_t *)(sVar22 - 1) != local_6c);\n    }\n    uVar39 = local_bc;\n    uVar17 = local_b8;\n    if (DAT_00040b70 != 0) {\n      iVar12 = ((int *)local_a8)[sVar22 - 1];\n      uVar27 = *(uint *)(iVar12 + 0x24);\n      uVar37 = uVar27 + *(uint *)(iVar12 + 0x2c);\n      uVar44 = *(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +\n               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c));\n      if (uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)) {\n        iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           );\n        if (iVar12 == 0) {\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }\n        else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }\n      }\n    }\n  }\n  local_b8 = uVar17;\n  local_bc = uVar39;\n  iVar12 = 0;\n  if (DAT_00040b48 != 0) {\n    iVar12 = FUN_0001c9c0(param_1,DAT_00040bdc,local_8c,0);\n  }\n  if (DAT_00040bb0 - 2U < 6) {\nLAB_0001962a:\n    if (DAT_00040bb0 != 7) goto LAB_0001962f;\n  }\n  else {\n    if (DAT_00040b30 == 0 && DAT_00040bac == 0) {\n      iVar18 = htab_elements(DAT_00040b2c);\n      if ((((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&\n         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))))\n      goto LAB_00019e4d;\n      goto LAB_0001962a;\n    }\nLAB_0001962f:\n    bfd_set_error(0);\n    bfd_map_over_sections(param_1,FUN_000187a0,DAT_00040bdc);\n    iVar18 = bfd_get_error();\n    if (iVar18 != 0) {\n      DAT_00040bc8 = 1;\n      return 0;\n    }\n  }\n  piVar19 = (int *)xmalloc((DAT_00040b04 + local_8c) * 4 + 4);\n  local_84 = DAT_00040bdc;\n  uVar39 = *(uint *)((int)param_1 + 0x28);\n  DAT_00040bd8 = piVar19;\n  if (local_8c != 0) {\n    piVar1 = DAT_00040bdc + local_8c;\n    local_8c = 0;\n    puVar20 = PTR__bfd_std_section_0003ffc8 + 0xc0;\n    do {\n      iVar18 = DAT_00040b04;\n      piVar4 = (int *)*local_84;\n      uVar17 = piVar4[4];\n      piVar24 = (int *)piVar4[1];\n      puVar5 = (undefined *)piVar4[5];\n      if (((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) &&\n         (pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0)) {\n        local_6c = (size_t *)0x0;\n        piVar34 = DAT_00040b08;\n        while (iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0) {\n          local_6c = (size_t *)((int)local_6c + 1);\n          piVar34 = (int *)*piVar34;\n          if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar25);\n        piVar34[5] = (int)"";\n        piVar34 = piVar19 + local_8c;\n        local_8c = local_8c + 1;\n        iVar18 = FUN_00017920();\n        *piVar34 = iVar18;\n      }\nLAB_000197a8:\n      iVar18 = htab_elements(DAT_00040b10);\n      piVar34 = piVar24;\n      if ((iVar18 != 0) || (DAT_00040be0 != (undefined4 *)0x0)) {\n        local_30 = 0;\n        local_34 = piVar24;\n        iVar18 = htab_find(DAT_00040b10,&local_34);\n        if (((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)) {\n          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }\n        }\n        piVar4[1] = (int)piVar34;\n      }\n      pcVar25 = DAT_00040af8;\n      cVar2 = *(char *)(*(int *)((int)param_1 + 4) + 0x18);\n      if ((char)*piVar34 == cVar2) {\n        if (DAT_00040b3c == 0) {\n          if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }\nLAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }\n      }\n      else {\n        if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))\n        goto LAB_0001982b;\nLAB_00019ab1:\n        sVar22 = strlen(pcVar25);\n        sVar23 = strlen((char *)piVar34);\n        piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n        local_6c = (size_t *)((int)piVar24 + 1);\n        *(char *)piVar24 = *(char *)(param_2[1] + 0x18);\nLAB_00019858:\n        pcVar25 = DAT_00040af8;\n        if (DAT_00040af8 != (char *)0x0) {\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }\n        strcpy((char *)local_6c,(char *)piVar34);\n        piVar4[1] = (int)piVar24;\n        piVar34 = piVar24;\n      }\n      if (DAT_00040bb0 == 7) goto LAB_00019928;\n      if ((uVar17 & 0x20) == 0) {\n        if (((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)) {\n          if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;\n        }\n        else {\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;\n      }\n      else {\n        iVar18 = FUN_000179c0();\n        if (iVar18 != 0) {\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }\nLAB_0001994f:\n        iVar18 = FUN_00017a30();\n        if (iVar18 == 0) {\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }\n      }\n      local_84 = local_84 + 1;\n    } while (piVar1 != local_84);\n  }\n  local_6c = (size_t *)DAT_00040b08;\n  if ((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) {\n    iVar18 = 0;\n    do {\n      pcVar25 = (char *)local_6c[5];\n      if (pcVar25 == (char *)0x0) {\n        iVar21 = FUN_00017920();\n        piVar19[local_8c] = iVar21;\n        local_8c = local_8c + 1;\n      }\n      else if (*pcVar25 != '\0') {\n        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    \n        FUN_0002c8e0(uVar13,pcVar25);\n      }\n      iVar18 = iVar18 + 1;\n      local_6c = (size_t *)*local_6c;\n    } while (iVar18 < DAT_00040b04);\n  }\n  piVar19[local_8c] = 0;\n  if ((DAT_00040b48 != 0) && (iVar12 != 0)) {\n    iVar18 = ((undefined4 *)param_2[1])[1];\n    if ((iVar18 == 2) || (iVar18 == 5)) {\n      iVar12 = FUN_0002c240(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34);\n      if (iVar12 != 0) {\n        iVar12 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n        iVar18 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n        if ((((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)) {\n          pcVar25 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }\n        uVar13 = dcgettext(0,pcVar25,5,iVar12);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n      }\n    }\n    else {\n      uVar13 = *(undefined4 *)param_2[1];\n      uVar14 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n    }\n    DAT_00040bc8 = 1;\n    return 0;\n  }\nLAB_00019e4d:\n  bfd_set_symtab(param_2,DAT_00040bd8,local_8c);\n  bfd_map_over_sections(param_1,FUN_00018500,param_2);\n  bfd_map_over_sections(param_1,FUN_00018070,param_2);\n  for (puVar35 = DAT_00040b58; psVar43 = param_2, puVar42 = DAT_00040b54,\n      puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)*puVar35) {\n    iVar12 = bfd_set_section_contents(param_2,puVar35[5],puVar35[4],0,0,puVar35[3],0);\n    if (iVar12 == 0) {\nLAB_00019d5e:\n      FUN_0002d3a0(0,param_2,puVar35[5],0);\n      return 0;\n    }\n  }\n  while( true ) {\n    if (puVar42 == (undefined4 *)0x0) {\n      uVar39 = 0;\n      if (DAT_00040bc4 != 0) {\n        uVar39 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n        if (((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))) {\n          if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }\n        }\n        else {\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        psVar43 = param_2;\n      }\n      if ((DAT_00040b4c != 0) &&\n         (iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0)) {\n        uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,param_2,0,uVar13,iVar12);\n        return 0;\n      }\n      if (DAT_00040b78 != 0 || DAT_00040b70 != 0) {\n        uVar39 = 0x2000;\n        if (local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc) {\n          uVar39 = local_b8;\n        }\n        piVar19 = (int *)xmalloc(uVar39);\n        iVar12 = (uint)DAT_00040b74 * 0x1010101;\n        if (uVar39 < 4) {\n          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }\n        }\n        else {\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }\n        iVar12 = param_2[0x1a];\n        if (iVar12 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);\n        }\n      }\n      iVar12 = (**(code **)(param_2[1] + 0xa8))(param_1,param_2);\n      if (iVar12 == 0) {\n        uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n        return 0;\n      }\n      if ((DAT_00040b64 != 0) &&\n         (iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0)) {\n        uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)\n        ;\n        FUN_0002c910(uVar13,iVar12);\n        if (*(int *)(param_2[1] + 4) != 5) {\n          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          FUN_0002c910(uVar13);\n          return 1;\n        }\n        uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)\n        ;\n        FUN_0002c910(uVar13);\n        *(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64;\n      }\n      return 1;\n    }\n    psVar43 = *(size_t **)(puVar42[5] + 0x54);\n    iVar12 = bfd_set_section_contents(param_2,psVar43,puVar42[4],0,0,puVar42[3],0);\n    local_6c = param_2;\n    if (iVar12 == 0) break;\n    puVar42 = (undefined4 *)*puVar42;\n  }\nLAB_00019fa0:\n  FUN_0002d3a0(0,local_6c,psVar43,0);\n  return iVar12;\nLAB_0001b1a6:\n  if ((undefined1 *)((int)pvVar32 + sVar54) <= puVar45) goto LAB_0001b1aa;\n  *puVar45 = (char)uVar17;\n  if (uVar17 == 0) goto LAB_0001b1aa;\n  uVar17 = uVar17 >> 8;\n  puVar45 = puVar45 + 1;\n  goto LAB_0001b1a6;\nLAB_0001b1aa:\n  bVar46 = true;\n  psVar9[0xe] = 0;\n  goto LAB_0001afd1;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "void *pvVar6;" primitive_type (pointer_declarator "*pvVar6" * identifier) ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "size_t *psVar9;" primitive_type (pointer_declarator "*psVar9" * identifier) ;) (declaration "size_t *psVar10;" primitive_type (pointer_declarator "*psVar10" * identifier) ;) (declaration "size_t *psVar11;" primitive_type (pointer_declarator "*psVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "FILE *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "size_t sVar22;" primitive_type identifier ;) (declaration "size_t sVar23;" primitive_type identifier ;) (declaration "int *piVar24;" primitive_type (pointer_declarator "*piVar24" * identifier) ;) (declaration "char *pcVar25;" primitive_type (pointer_declarator "*pcVar25" * identifier) ;) (declaration "void *pvVar26;" primitive_type (pointer_declarator "*pvVar26" * identifier) ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "size_t sVar28;" primitive_type identifier ;) (declaration "size_t sVar29;" primitive_type identifier ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_00;" type_identifier identifier ;) (declaration "size_t extraout_ECX_01;" primitive_type identifier ;) (declaration "size_t extraout_ECX_02;" primitive_type identifier ;) (declaration "size_t sVar30;" primitive_type identifier ;) (declaration "int iVar31;" primitive_type identifier ;) (declaration "void *pvVar32;" primitive_type (pointer_declarator "*pvVar32" * identifier) ;) (declaration "uint uVar33;" type_identifier identifier ;) (declaration "int *piVar34;" primitive_type (pointer_declarator "*piVar34" * identifier) ;) (declaration "undefined4 *puVar35;" type_identifier (pointer_declarator "*puVar35" * identifier) ;) (declaration "byte *pbVar36;" type_identifier (pointer_declarator "*pbVar36" * identifier) ;) (declaration "uint uVar37;" type_identifier identifier ;) (declaration "size_t *psVar38;" primitive_type (pointer_declarator "*psVar38" * identifier) ;) (declaration "uint uVar39;" type_identifier identifier ;) (declaration "uint uVar40;" type_identifier identifier ;) (declaration "byte *pbVar41;" type_identifier (pointer_declarator "*pbVar41" * identifier) ;) (declaration "undefined4 *puVar42;" type_identifier (pointer_declarator "*puVar42" * identifier) ;) (declaration "size_t *psVar43;" primitive_type (pointer_declarator "*psVar43" * identifier) ;) (declaration "uint uVar44;" type_identifier identifier ;) (declaration "undefined1 *puVar45;" type_identifier (pointer_declarator "*puVar45" * identifier) ;) (declaration "bool bVar46;" primitive_type identifier ;) (declaration "bool bVar47;" primitive_type identifier ;) (declaration "byte bVar48;" type_identifier identifier ;) (declaration "undefined8 uVar49;" type_identifier identifier ;) (declaration "longlong lVar50;" type_identifier identifier ;) (declaration "longlong lVar51;" type_identifier identifier ;) (declaration "void *pvVar52;" primitive_type (pointer_declarator "*pvVar52" * identifier) ;) (declaration "size_t sVar53;" primitive_type identifier ;) (declaration "void *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "size_t sVar54;" primitive_type identifier ;) (declaration "size_t sVar55;" primitive_type identifier ;) (declaration "uint local_bc;" type_identifier identifier ;) (declaration "uint local_b8;" type_identifier identifier ;) (declaration "void *local_b4;" primitive_type (pointer_declarator "*local_b4" * identifier) ;) (declaration "size_t *local_a8;" primitive_type (pointer_declarator "*local_a8" * identifier) ;) (declaration "int local_a4;" primitive_type identifier ;) (declaration "int local_8c;" primitive_type identifier ;) (declaration "int *local_84;" primitive_type (pointer_declarator "*local_84" * identifier) ;) (declaration "uint local_7c;" type_identifier identifier ;) (declaration "uint local_78;" type_identifier identifier ;) (declaration "size_t *local_74;" primitive_type (pointer_declarator "*local_74" * identifier) ;) (declaration "size_t *local_6c;" primitive_type (pointer_declarator "*local_6c" * identifier) ;) (declaration "int local_68;" primitive_type identifier ;) (declaration "int *local_64;" primitive_type (pointer_declarator "*local_64" * identifier) ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "int *local_34;" primitive_type (pointer_declarator "*local_34" * identifier) ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar48 = 0;" (assignment_expression "bVar48 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x1892b;" (assignment_expression "uStack_14 = 0x1892b" identifier = number_literal) ;) (expression_statement "iVar12 = *(int *)(*(int *)((int)param_1 + 4) + 8);" (assignment_expression "iVar12 = *(int *)(*(int *)((int)param_1 + 4) + 8)" identifier = (pointer_expression "*(int *)(*(int *)((int)param_1 + 4) + 8)" * (cast_expression "(int *)(*(int *)((int)param_1 + 4) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 8)" ( (binary_expression "*(int *)((int)param_1 + 4) + 8" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if ((iVar12 != *(int *)(((int *)param_2)[1] + 8) && iVar12 != 2) &&\n     (*(int *)(((int *)param_2)[1] + 8) != 2)) {\n    uVar13 = dcgettext(0,"Unable to change endianness of input file(s)",5);\n    FUN_0002c910(uVar13);\n    return 0;\n  }" if (parenthesized_expression "((iVar12 != *(int *)(((int *)param_2)[1] + 8) && iVar12 != 2) &&\n     (*(int *)(((int *)param_2)[1] + 8) != 2))" ( (binary_expression "(iVar12 != *(int *)(((int *)param_2)[1] + 8) && iVar12 != 2) &&\n     (*(int *)(((int *)param_2)[1] + 8) != 2)" (parenthesized_expression "(iVar12 != *(int *)(((int *)param_2)[1] + 8) && iVar12 != 2)" ( (binary_expression "iVar12 != *(int *)(((int *)param_2)[1] + 8) && iVar12 != 2" (binary_expression "iVar12 != *(int *)(((int *)param_2)[1] + 8)" identifier != (pointer_expression "*(int *)(((int *)param_2)[1] + 8)" * (cast_expression "(int *)(((int *)param_2)[1] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int *)param_2)[1] + 8)" ( (binary_expression "((int *)param_2)[1] + 8" (subscript_expression "((int *)param_2)[1]" (parenthesized_expression "((int *)param_2)" ( (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) + number_literal) ))))) && (binary_expression "iVar12 != 2" identifier != number_literal)) )) && (parenthesized_expression "(*(int *)(((int *)param_2)[1] + 8) != 2)" ( (binary_expression "*(int *)(((int *)param_2)[1] + 8) != 2" (pointer_expression "*(int *)(((int *)param_2)[1] + 8)" * (cast_expression "(int *)(((int *)param_2)[1] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int *)param_2)[1] + 8)" ( (binary_expression "((int *)param_2)[1] + 8" (subscript_expression "((int *)param_2)[1]" (parenthesized_expression "((int *)param_2)" ( (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n    uVar13 = dcgettext(0,"Unable to change endianness of input file(s)",5);\n    FUN_0002c910(uVar13);\n    return 0;\n  }" { (expression_statement "uVar13 = dcgettext(0,"Unable to change endianness of input file(s)",5);" (assignment_expression "uVar13 = 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_0002c910(uVar13);" (call_expression "FUN_0002c910(uVar13)" identifier (argument_list "(uVar13)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar12 = bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7);" (assignment_expression "iVar12 = bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7)" identifier = (call_expression "bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7)" identifier (argument_list "(param_2,*(byte *)((int)param_1 + 0x28) & 7)" ( identifier , (binary_expression "*(byte *)((int)param_1 + 0x28) & 7" (pointer_expression "*(byte *)((int)param_1 + 0x28)" * (cast_expression "(byte *)((int)param_1 + 0x28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x28)" ( (binary_expression "(int)param_1 + 0x28" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )))) ;) (if_statement "if (iVar12 == 0) {\n    FUN_0002d3a0(0,param_2,0,0);\n    return 0;\n  }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_0002d3a0(0,param_2,0,0);\n    return 0;\n  }" { (expression_statement "FUN_0002d3a0(0,param_2,0,0);" (call_expression "FUN_0002d3a0(0,param_2,0,0)" identifier (argument_list "(0,param_2,0,0)" ( number_literal , identifier , number_literal , number_literal ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*(int *)((int)param_1 + 0x60) == 0) {\n    uVar13 = FUN_0002d2a0(param_1);\n    pcVar25 = "error: the input file \'%s\' has no sections";\n    goto LAB_00018f38;\n  }" if (parenthesized_expression "(*(int *)((int)param_1 + 0x60) == 0)" ( (binary_expression "*(int *)((int)param_1 + 0x60) == 0" (pointer_expression "*(int *)((int)param_1 + 0x60)" * (cast_expression "(int *)((int)param_1 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x60)" ( (binary_expression "(int)param_1 + 0x60" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n    uVar13 = FUN_0002d2a0(param_1);\n    pcVar25 = "error: the input file \'%s\' has no sections";\n    goto LAB_00018f38;\n  }" { (expression_statement "uVar13 = FUN_0002d2a0(param_1);" (assignment_expression "uVar13 = FUN_0002d2a0(param_1)" identifier = (call_expression "FUN_0002d2a0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "pcVar25 = "error: the input file \'%s\' has no sections";" (assignment_expression "pcVar25 = "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 ")) ;) (goto_statement "goto LAB_00018f38;" goto statement_identifier ;) })) (if_statement "if ((*(undefined4 **)((int)param_1 + 4))[1] != 5) {\n    if ((DAT_00040b44 != 1) && ((DAT_00040b44 & 1) != 0)) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\nLAB_00018f38:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }\n    if (DAT_00040b40 != 0) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      goto LAB_00018f38;\n    }\n  }" if (parenthesized_expression "((*(undefined4 **)((int)param_1 + 4))[1] != 5)" ( (binary_expression "(*(undefined4 **)((int)param_1 + 4))[1] != 5" (subscript_expression "(*(undefined4 **)((int)param_1 + 4))[1]" (parenthesized_expression "(*(undefined4 **)((int)param_1 + 4))" ( (pointer_expression "*(undefined4 **)((int)param_1 + 4)" * (cast_expression "(undefined4 **)((int)param_1 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )) [ number_literal ]) != number_literal) )) (compound_statement "{\n    if ((DAT_00040b44 != 1) && ((DAT_00040b44 & 1) != 0)) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\nLAB_00018f38:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }\n    if (DAT_00040b40 != 0) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      goto LAB_00018f38;\n    }\n  }" { (if_statement "if ((DAT_00040b44 != 1) && ((DAT_00040b44 & 1) != 0)) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\nLAB_00018f38:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }" if (parenthesized_expression "((DAT_00040b44 != 1) && ((DAT_00040b44 & 1) != 0))" ( (binary_expression "(DAT_00040b44 != 1) && ((DAT_00040b44 & 1) != 0)" (parenthesized_expression "(DAT_00040b44 != 1)" ( (binary_expression "DAT_00040b44 != 1" identifier != number_literal) )) && (parenthesized_expression "((DAT_00040b44 & 1) != 0)" ( (binary_expression "(DAT_00040b44 & 1) != 0" (parenthesized_expression "(DAT_00040b44 & 1)" ( (binary_expression "DAT_00040b44 & 1" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\nLAB_00018f38:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }" { (expression_statement "uVar13 = FUN_0002d2a0(param_1);" (assignment_expression "uVar13 = FUN_0002d2a0(param_1)" identifier = (call_expression "FUN_0002d2a0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "pcVar25 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";" (assignment_expression "pcVar25 = "--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_00018f38:\n      uVar14 = dcgettext(0,pcVar25,5);" statement_identifier : (expression_statement "uVar14 = dcgettext(0,pcVar25,5);" (assignment_expression "uVar14 = dcgettext(0,pcVar25,5)" identifier = (call_expression "dcgettext(0,pcVar25,5)" identifier (argument_list "(0,pcVar25,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_0002c910(uVar14,uVar13);" (call_expression "FUN_0002c910(uVar14,uVar13)" identifier (argument_list "(uVar14,uVar13)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (DAT_00040b40 != 0) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      goto LAB_00018f38;\n    }" if (parenthesized_expression "(DAT_00040b40 != 0)" ( (binary_expression "DAT_00040b40 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      goto LAB_00018f38;\n    }" { (expression_statement "uVar13 = FUN_0002d2a0(param_1);" (assignment_expression "uVar13 = FUN_0002d2a0(param_1)" identifier = (call_expression "FUN_0002d2a0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "pcVar25 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";" (assignment_expression "pcVar25 = "--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 ")) ;) (goto_statement "goto LAB_00018f38;" goto statement_identifier ;) })) })) (if_statement "if (DAT_00040bd0 != 0) {\n    uVar13 = **(undefined4 **)((int)param_1 + 4);\n    uVar14 = *(undefined4 *)((int *)param_2)[1];\n    iVar12 = *param_2;\n    uVar15 = FUN_0002d2a0(param_1);\n    pcVar25 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n    printf(pcVar25,uVar15,uVar13,iVar12,uVar14);\n  }" if (parenthesized_expression "(DAT_00040bd0 != 0)" ( (binary_expression "DAT_00040bd0 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar13 = **(undefined4 **)((int)param_1 + 4);\n    uVar14 = *(undefined4 *)((int *)param_2)[1];\n    iVar12 = *param_2;\n    uVar15 = FUN_0002d2a0(param_1);\n    pcVar25 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n    printf(pcVar25,uVar15,uVar13,iVar12,uVar14);\n  }" { (expression_statement "uVar13 = **(undefined4 **)((int)param_1 + 4);" (assignment_expression "uVar13 = **(undefined4 **)((int)param_1 + 4)" identifier = (pointer_expression "**(undefined4 **)((int)param_1 + 4)" * (pointer_expression "*(undefined4 **)((int)param_1 + 4)" * (cast_expression "(undefined4 **)((int)param_1 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "uVar14 = *(undefined4 *)((int *)param_2)[1];" (assignment_expression "uVar14 = *(undefined4 *)((int *)param_2)[1]" identifier = (pointer_expression "*(undefined4 *)((int *)param_2)[1]" * (cast_expression "(undefined4 *)((int *)param_2)[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "((int *)param_2)[1]" (parenthesized_expression "((int *)param_2)" ( (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])))) ;) (expression_statement "iVar12 = *param_2;" (assignment_expression "iVar12 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "uVar15 = FUN_0002d2a0(param_1);" (assignment_expression "uVar15 = FUN_0002d2a0(param_1)" identifier = (call_expression "FUN_0002d2a0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "pcVar25 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);" (assignment_expression "pcVar25 = (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(pcVar25,uVar15,uVar13,iVar12,uVar14);" (call_expression "printf(pcVar25,uVar15,uVar13,iVar12,uVar14)" identifier (argument_list "(pcVar25,uVar15,uVar13,iVar12,uVar14)" ( identifier , identifier , identifier , identifier , identifier ))) ;) })) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "iVar31 = 0;" (assignment_expression "iVar31 = 0" identifier = number_literal) ;) (if_statement "if (DAT_00040aec == 0) {\n    uVar39 = DAT_00040b88;\n    iVar31 = DAT_00040b8c;\n    if (DAT_00040b90 == 0) {\n      uVar39 = *(uint *)((int)param_1 + 0x70);\n      iVar31 = *(int *)((int)param_1 + 0x74);\n    }\n    iVar12 = uVar39 + DAT_00040b98;\n    iVar31 = iVar31 + DAT_00040b9c + (uint)CARRY4(uVar39,DAT_00040b98);\n  }" if (parenthesized_expression "(DAT_00040aec == 0)" ( (binary_expression "DAT_00040aec == 0" identifier == number_literal) )) (compound_statement "{\n    uVar39 = DAT_00040b88;\n    iVar31 = DAT_00040b8c;\n    if (DAT_00040b90 == 0) {\n      uVar39 = *(uint *)((int)param_1 + 0x70);\n      iVar31 = *(int *)((int)param_1 + 0x74);\n    }\n    iVar12 = uVar39 + DAT_00040b98;\n    iVar31 = iVar31 + DAT_00040b9c + (uint)CARRY4(uVar39,DAT_00040b98);\n  }" { (expression_statement "uVar39 = DAT_00040b88;" (assignment_expression "uVar39 = DAT_00040b88" identifier = identifier) ;) (expression_statement "iVar31 = DAT_00040b8c;" (assignment_expression "iVar31 = DAT_00040b8c" identifier = identifier) ;) (if_statement "if (DAT_00040b90 == 0) {\n      uVar39 = *(uint *)((int)param_1 + 0x70);\n      iVar31 = *(int *)((int)param_1 + 0x74);\n    }" if (parenthesized_expression "(DAT_00040b90 == 0)" ( (binary_expression "DAT_00040b90 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar39 = *(uint *)((int)param_1 + 0x70);\n      iVar31 = *(int *)((int)param_1 + 0x74);\n    }" { (expression_statement "uVar39 = *(uint *)((int)param_1 + 0x70);" (assignment_expression "uVar39 = *(uint *)((int)param_1 + 0x70)" identifier = (pointer_expression "*(uint *)((int)param_1 + 0x70)" * (cast_expression "(uint *)((int)param_1 + 0x70)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x70)" ( (binary_expression "(int)param_1 + 0x70" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar31 = *(int *)((int)param_1 + 0x74);" (assignment_expression "iVar31 = *(int *)((int)param_1 + 0x74)" identifier = (pointer_expression "*(int *)((int)param_1 + 0x74)" * (cast_expression "(int *)((int)param_1 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x74)" ( (binary_expression "(int)param_1 + 0x74" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) })) (expression_statement "iVar12 = uVar39 + DAT_00040b98;" (assignment_expression "iVar12 = uVar39 + DAT_00040b98" identifier = (binary_expression "uVar39 + DAT_00040b98" identifier + identifier)) ;) (expression_statement "iVar31 = iVar31 + DAT_00040b9c + (uint)CARRY4(uVar39,DAT_00040b98);" (assignment_expression "iVar31 = iVar31 + DAT_00040b9c + (uint)CARRY4(uVar39,DAT_00040b98)" identifier = (binary_expression "iVar31 + DAT_00040b9c + (uint)CARRY4(uVar39,DAT_00040b98)" (binary_expression "iVar31 + DAT_00040b9c" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar39,DAT_00040b98)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar39,DAT_00040b98)" identifier (argument_list "(uVar39,DAT_00040b98)" ( identifier , identifier )))))) ;) })) (if_statement "if ((*(byte *)((int *)param_2 + 10) & 7) != 3) {\n    uVar39 = ~DAT_00040b5c & *(uint *)(((int *)param_2)[1] + 0x10) &\n             (*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff | DAT_00040b60);\n    if (DAT_00040bb0 == 7) {\n      uVar39 = uVar39 & 0xfffffffe;\n    }\n    iVar12 = bfd_set_start_address(param_2,iVar12,iVar31);\n    if ((iVar12 == 0) || (iVar12 = bfd_set_file_flags(param_2,uVar39), iVar12 == 0))\n    goto LAB_00018b70;\n  }" if (parenthesized_expression "((*(byte *)((int *)param_2 + 10) & 7) != 3)" ( (binary_expression "(*(byte *)((int *)param_2 + 10) & 7) != 3" (parenthesized_expression "(*(byte *)((int *)param_2 + 10) & 7)" ( (binary_expression "*(byte *)((int *)param_2 + 10) & 7" (pointer_expression "*(byte *)((int *)param_2 + 10)" * (cast_expression "(byte *)((int *)param_2 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int *)param_2 + 10)" ( (binary_expression "(int *)param_2 + 10" (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar39 = ~DAT_00040b5c & *(uint *)(((int *)param_2)[1] + 0x10) &\n             (*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff | DAT_00040b60);\n    if (DAT_00040bb0 == 7) {\n      uVar39 = uVar39 & 0xfffffffe;\n    }\n    iVar12 = bfd_set_start_address(param_2,iVar12,iVar31);\n    if ((iVar12 == 0) || (iVar12 = bfd_set_file_flags(param_2,uVar39), iVar12 == 0))\n    goto LAB_00018b70;\n  }" { (expression_statement "uVar39 = ~DAT_00040b5c & *(uint *)(((int *)param_2)[1] + 0x10) &\n             (*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff | DAT_00040b60);" (assignment_expression "uVar39 = ~DAT_00040b5c & *(uint *)(((int *)param_2)[1] + 0x10) &\n             (*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff | DAT_00040b60)" identifier = (binary_expression "~DAT_00040b5c & *(uint *)(((int *)param_2)[1] + 0x10) &\n             (*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff | DAT_00040b60)" (binary_expression "~DAT_00040b5c & *(uint *)(((int *)param_2)[1] + 0x10)" (unary_expression "~DAT_00040b5c" ~ identifier) & (pointer_expression "*(uint *)(((int *)param_2)[1] + 0x10)" * (cast_expression "(uint *)(((int *)param_2)[1] + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int *)param_2)[1] + 0x10)" ( (binary_expression "((int *)param_2)[1] + 0x10" (subscript_expression "((int *)param_2)[1]" (parenthesized_expression "((int *)param_2)" ( (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) + number_literal) ))))) & (parenthesized_expression "(*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff | DAT_00040b60)" ( (binary_expression "*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff | DAT_00040b60" (binary_expression "*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff" (binary_expression "*(uint *)((int)param_1 + 0x28) >> 5" (pointer_expression "*(uint *)((int)param_1 + 0x28)" * (cast_expression "(uint *)((int)param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x28)" ( (binary_expression "(int)param_1 + 0x28" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) >> number_literal) & number_literal) | identifier) )))) ;) (if_statement "if (DAT_00040bb0 == 7) {\n      uVar39 = uVar39 & 0xfffffffe;\n    }" if (parenthesized_expression "(DAT_00040bb0 == 7)" ( (binary_expression "DAT_00040bb0 == 7" identifier == number_literal) )) (compound_statement "{\n      uVar39 = uVar39 & 0xfffffffe;\n    }" { (expression_statement "uVar39 = uVar39 & 0xfffffffe;" (assignment_expression "uVar39 = uVar39 & 0xfffffffe" identifier = (binary_expression "uVar39 & 0xfffffffe" identifier & number_literal)) ;) })) (expression_statement "iVar12 = bfd_set_start_address(param_2,iVar12,iVar31);" (assignment_expression "iVar12 = bfd_set_start_address(param_2,iVar12,iVar31)" identifier = (call_expression "bfd_set_start_address(param_2,iVar12,iVar31)" identifier (argument_list "(param_2,iVar12,iVar31)" ( identifier , identifier , identifier )))) ;) (if_statement "if ((iVar12 == 0) || (iVar12 = bfd_set_file_flags(param_2,uVar39), iVar12 == 0))\n    goto LAB_00018b70;" if (parenthesized_expression "((iVar12 == 0) || (iVar12 = bfd_set_file_flags(param_2,uVar39), iVar12 == 0))" ( (binary_expression "(iVar12 == 0) || (iVar12 = bfd_set_file_flags(param_2,uVar39), iVar12 == 0)" (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar12 = bfd_set_file_flags(param_2,uVar39), iVar12 == 0)" ( (comma_expression "iVar12 = bfd_set_file_flags(param_2,uVar39), iVar12 == 0" (assignment_expression "iVar12 = bfd_set_file_flags(param_2,uVar39)" identifier = (call_expression "bfd_set_file_flags(param_2,uVar39)" identifier (argument_list "(param_2,uVar39)" ( identifier , identifier )))) , (binary_expression "iVar12 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_00018b70;" goto statement_identifier ;)) })) (expression_statement "uVar13 = bfd_get_arch(param_1);" (assignment_expression "uVar13 = bfd_get_arch(param_1)" identifier = (call_expression "bfd_get_arch(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "uVar14 = bfd_get_mach(param_1);" (assignment_expression "uVar14 = 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    iVar12 = bfd_get_arch_info(param_1);\n    if ((iVar12 == 0) || (iVar12 = bfd_get_arch_info(param_1), *(int *)(iVar12 + 0xc) == 0)) {\n      uVar13 = *(undefined4 *)(param_3 + 0xc);\n      uVar14 = *(undefined4 *)(param_3 + 0x10);\n    }\n    else {\n      uVar15 = FUN_0002d2a0(param_1);\n      uVar16 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n      FUN_0002c910(uVar16,uVar15);\n    }\n  }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar12 = bfd_get_arch_info(param_1);\n    if ((iVar12 == 0) || (iVar12 = bfd_get_arch_info(param_1), *(int *)(iVar12 + 0xc) == 0)) {\n      uVar13 = *(undefined4 *)(param_3 + 0xc);\n      uVar14 = *(undefined4 *)(param_3 + 0x10);\n    }\n    else {\n      uVar15 = FUN_0002d2a0(param_1);\n      uVar16 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n      FUN_0002c910(uVar16,uVar15);\n    }\n  }" { (expression_statement "iVar12 = bfd_get_arch_info(param_1);" (assignment_expression "iVar12 = bfd_get_arch_info(param_1)" identifier = (call_expression "bfd_get_arch_info(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if ((iVar12 == 0) || (iVar12 = bfd_get_arch_info(param_1), *(int *)(iVar12 + 0xc) == 0)) {\n      uVar13 = *(undefined4 *)(param_3 + 0xc);\n      uVar14 = *(undefined4 *)(param_3 + 0x10);\n    }\n    else {\n      uVar15 = FUN_0002d2a0(param_1);\n      uVar16 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n      FUN_0002c910(uVar16,uVar15);\n    }" if (parenthesized_expression "((iVar12 == 0) || (iVar12 = bfd_get_arch_info(param_1), *(int *)(iVar12 + 0xc) == 0))" ( (binary_expression "(iVar12 == 0) || (iVar12 = bfd_get_arch_info(param_1), *(int *)(iVar12 + 0xc) == 0)" (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar12 = bfd_get_arch_info(param_1), *(int *)(iVar12 + 0xc) == 0)" ( (comma_expression "iVar12 = bfd_get_arch_info(param_1), *(int *)(iVar12 + 0xc) == 0" (assignment_expression "iVar12 = bfd_get_arch_info(param_1)" identifier = (call_expression "bfd_get_arch_info(param_1)" identifier (argument_list "(param_1)" ( identifier )))) , (binary_expression "*(int *)(iVar12 + 0xc) == 0" (pointer_expression "*(int *)(iVar12 + 0xc)" * (cast_expression "(int *)(iVar12 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc)" ( (binary_expression "iVar12 + 0xc" identifier + number_literal) )))) == number_literal)) ))) )) (compound_statement "{\n      uVar13 = *(undefined4 *)(param_3 + 0xc);\n      uVar14 = *(undefined4 *)(param_3 + 0x10);\n    }" { (expression_statement "uVar13 = *(undefined4 *)(param_3 + 0xc);" (assignment_expression "uVar13 = *(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 "uVar14 = *(undefined4 *)(param_3 + 0x10);" (assignment_expression "uVar14 = *(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      uVar15 = FUN_0002d2a0(param_1);\n      uVar16 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n      FUN_0002c910(uVar16,uVar15);\n    }" else (compound_statement "{\n      uVar15 = FUN_0002d2a0(param_1);\n      uVar16 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n      FUN_0002c910(uVar16,uVar15);\n    }" { (expression_statement "uVar15 = FUN_0002d2a0(param_1);" (assignment_expression "uVar15 = FUN_0002d2a0(param_1)" identifier = (call_expression "FUN_0002d2a0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "uVar16 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);" (assignment_expression "uVar16 = 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_0002c910(uVar16,uVar15);" (call_expression "FUN_0002c910(uVar16,uVar15)" identifier (argument_list "(uVar16,uVar15)" ( identifier , identifier ))) ;) }))) })) (expression_statement "iVar12 = (**(code **)(((int *)param_2)[1] + 0x154))(param_2,uVar13,uVar14);" (assignment_expression "iVar12 = (**(code **)(((int *)param_2)[1] + 0x154))(param_2,uVar13,uVar14)" identifier = (call_expression "(**(code **)(((int *)param_2)[1] + 0x154))(param_2,uVar13,uVar14)" (parenthesized_expression "(**(code **)(((int *)param_2)[1] + 0x154))" ( (pointer_expression "**(code **)(((int *)param_2)[1] + 0x154)" * (pointer_expression "*(code **)(((int *)param_2)[1] + 0x154)" * (cast_expression "(code **)(((int *)param_2)[1] + 0x154)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(((int *)param_2)[1] + 0x154)" ( (binary_expression "((int *)param_2)[1] + 0x154" (subscript_expression "((int *)param_2)[1]" (parenthesized_expression "((int *)param_2)" ( (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_2,uVar13,uVar14)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar12 == 0) {\n    if ((*(byte *)((int)param_1 + 0x2b) & 4) != 0) {\nLAB_00018b20:\n      iVar12 = bfd_get_arch(param_1);\n      if (iVar12 == 0) {\n        uVar13 = FUN_0002d2a0(param_1);\n        pcVar25 = "Unable to recognise the format of the input file `%s\'";\n      }\n      else {\n        uVar13 = bfd_get_mach(param_1);\n        uVar14 = bfd_get_arch(param_1);\n        uVar13 = bfd_printable_arch_mach(uVar14,uVar13);\n        pcVar25 = "Output file cannot represent architecture `%s\'";\n      }\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }\n    iVar12 = bfd_get_arch(param_1);\n    iVar31 = bfd_get_arch(param_2);\n    if (iVar12 != iVar31) goto LAB_00018b20;\n  }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n    if ((*(byte *)((int)param_1 + 0x2b) & 4) != 0) {\nLAB_00018b20:\n      iVar12 = bfd_get_arch(param_1);\n      if (iVar12 == 0) {\n        uVar13 = FUN_0002d2a0(param_1);\n        pcVar25 = "Unable to recognise the format of the input file `%s\'";\n      }\n      else {\n        uVar13 = bfd_get_mach(param_1);\n        uVar14 = bfd_get_arch(param_1);\n        uVar13 = bfd_printable_arch_mach(uVar14,uVar13);\n        pcVar25 = "Output file cannot represent architecture `%s\'";\n      }\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }\n    iVar12 = bfd_get_arch(param_1);\n    iVar31 = bfd_get_arch(param_2);\n    if (iVar12 != iVar31) goto LAB_00018b20;\n  }" { (if_statement "if ((*(byte *)((int)param_1 + 0x2b) & 4) != 0) {\nLAB_00018b20:\n      iVar12 = bfd_get_arch(param_1);\n      if (iVar12 == 0) {\n        uVar13 = FUN_0002d2a0(param_1);\n        pcVar25 = "Unable to recognise the format of the input file `%s\'";\n      }\n      else {\n        uVar13 = bfd_get_mach(param_1);\n        uVar14 = bfd_get_arch(param_1);\n        uVar13 = bfd_printable_arch_mach(uVar14,uVar13);\n        pcVar25 = "Output file cannot represent architecture `%s\'";\n      }\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }" if (parenthesized_expression "((*(byte *)((int)param_1 + 0x2b) & 4) != 0)" ( (binary_expression "(*(byte *)((int)param_1 + 0x2b) & 4) != 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x2b) & 4)" ( (binary_expression "*(byte *)((int)param_1 + 0x2b) & 4" (pointer_expression "*(byte *)((int)param_1 + 0x2b)" * (cast_expression "(byte *)((int)param_1 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x2b)" ( (binary_expression "(int)param_1 + 0x2b" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_00018b20:\n      iVar12 = bfd_get_arch(param_1);\n      if (iVar12 == 0) {\n        uVar13 = FUN_0002d2a0(param_1);\n        pcVar25 = "Unable to recognise the format of the input file `%s\'";\n      }\n      else {\n        uVar13 = bfd_get_mach(param_1);\n        uVar14 = bfd_get_arch(param_1);\n        uVar13 = bfd_printable_arch_mach(uVar14,uVar13);\n        pcVar25 = "Output file cannot represent architecture `%s\'";\n      }\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }" { (labeled_statement "LAB_00018b20:\n      iVar12 = bfd_get_arch(param_1);" statement_identifier : (expression_statement "iVar12 = bfd_get_arch(param_1);" (assignment_expression "iVar12 = bfd_get_arch(param_1)" identifier = (call_expression "bfd_get_arch(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;)) (if_statement "if (iVar12 == 0) {\n        uVar13 = FUN_0002d2a0(param_1);\n        pcVar25 = "Unable to recognise the format of the input file `%s\'";\n      }\n      else {\n        uVar13 = bfd_get_mach(param_1);\n        uVar14 = bfd_get_arch(param_1);\n        uVar13 = bfd_printable_arch_mach(uVar14,uVar13);\n        pcVar25 = "Output file cannot represent architecture `%s\'";\n      }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar13 = FUN_0002d2a0(param_1);\n        pcVar25 = "Unable to recognise the format of the input file `%s\'";\n      }" { (expression_statement "uVar13 = FUN_0002d2a0(param_1);" (assignment_expression "uVar13 = FUN_0002d2a0(param_1)" identifier = (call_expression "FUN_0002d2a0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "pcVar25 = "Unable to recognise the format of the input file `%s\'";" (assignment_expression "pcVar25 = "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        uVar13 = bfd_get_mach(param_1);\n        uVar14 = bfd_get_arch(param_1);\n        uVar13 = bfd_printable_arch_mach(uVar14,uVar13);\n        pcVar25 = "Output file cannot represent architecture `%s\'";\n      }" else (compound_statement "{\n        uVar13 = bfd_get_mach(param_1);\n        uVar14 = bfd_get_arch(param_1);\n        uVar13 = bfd_printable_arch_mach(uVar14,uVar13);\n        pcVar25 = "Output file cannot represent architecture `%s\'";\n      }" { (expression_statement "uVar13 = bfd_get_mach(param_1);" (assignment_expression "uVar13 = bfd_get_mach(param_1)" identifier = (call_expression "bfd_get_mach(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "uVar14 = bfd_get_arch(param_1);" (assignment_expression "uVar14 = bfd_get_arch(param_1)" identifier = (call_expression "bfd_get_arch(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "uVar13 = bfd_printable_arch_mach(uVar14,uVar13);" (assignment_expression "uVar13 = bfd_printable_arch_mach(uVar14,uVar13)" identifier = (call_expression "bfd_printable_arch_mach(uVar14,uVar13)" identifier (argument_list "(uVar14,uVar13)" ( identifier , identifier )))) ;) (expression_statement "pcVar25 = "Output file cannot represent architecture `%s\'";" (assignment_expression "pcVar25 = "Output file cannot represent architecture `%s\'"" identifier = (string_literal ""Output file cannot represent architecture `%s\'"" " string_content escape_sequence ")) ;) }))) (expression_statement "uVar14 = dcgettext(0,pcVar25,5);" (assignment_expression "uVar14 = dcgettext(0,pcVar25,5)" identifier = (call_expression "dcgettext(0,pcVar25,5)" identifier (argument_list "(0,pcVar25,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_0002c910(uVar14,uVar13);" (call_expression "FUN_0002c910(uVar14,uVar13)" identifier (argument_list "(uVar14,uVar13)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar12 = bfd_get_arch(param_1);" (assignment_expression "iVar12 = bfd_get_arch(param_1)" identifier = (call_expression "bfd_get_arch(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "iVar31 = bfd_get_arch(param_2);" (assignment_expression "iVar31 = bfd_get_arch(param_2)" identifier = (call_expression "bfd_get_arch(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar12 != iVar31) goto LAB_00018b20;" if (parenthesized_expression "(iVar12 != iVar31)" ( (binary_expression "iVar12 != iVar31" identifier != identifier) )) (goto_statement "goto LAB_00018b20;" goto statement_identifier ;)) })) (expression_statement "iVar12 = bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7);" (assignment_expression "iVar12 = bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7)" identifier = (call_expression "bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7)" identifier (argument_list "(param_2,*(byte *)((int)param_1 + 0x28) & 7)" ( identifier , (binary_expression "*(byte *)((int)param_1 + 0x28) & 7" (pointer_expression "*(byte *)((int)param_1 + 0x28)" * (cast_expression "(byte *)((int)param_1 + 0x28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x28)" ( (binary_expression "(int)param_1 + 0x28" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )))) ;) (if_statement "if (iVar12 == 0) {\nLAB_00018b70:\n    FUN_0002d3a0(0,param_1,0,0);\n    return 0;\n  }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00018b70:\n    FUN_0002d3a0(0,param_1,0,0);\n    return 0;\n  }" { (labeled_statement "LAB_00018b70:\n    FUN_0002d3a0(0,param_1,0,0);" statement_identifier : (expression_statement "FUN_0002d3a0(0,param_1,0,0);" (call_expression "FUN_0002d3a0(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 "uVar39 = ((undefined4 *)((int *)param_2)[1])[1];" (assignment_expression "uVar39 = ((undefined4 *)((int *)param_2)[1])[1]" identifier = (subscript_expression "((undefined4 *)((int *)param_2)[1])[1]" (parenthesized_expression "((undefined4 *)((int *)param_2)[1])" ( (cast_expression "(undefined4 *)((int *)param_2)[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "((int *)param_2)[1]" (parenthesized_expression "((int *)param_2)" ( (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) )) [ number_literal ])) ;) (expression_statement "bVar46 = uVar39 < 2;" (assignment_expression "bVar46 = uVar39 < 2" identifier = (binary_expression "uVar39 < 2" identifier < number_literal)) ;) (expression_statement "bVar47 = uVar39 == 2;" (assignment_expression "bVar47 = uVar39 == 2" identifier = (binary_expression "uVar39 == 2" identifier == number_literal)) ;) (if_statement "if (bVar47) {\n    iVar12 = 4;\n    pbVar36 = *(byte **)((int *)param_2)[1];\n    pbVar41 = &DAT_0002f16a;\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar46 = *pbVar36 < *pbVar41;\n      bVar47 = *pbVar36 == *pbVar41;\n      pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n      pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n    } while (bVar47);\n    if ((!bVar46 && !bVar47) == bVar46) {\n      iVar12 = ((int *)param_2)[0x28];\n      uVar39 = (*(undefined4 **)((int)param_1 + 4))[1];\n      bVar46 = uVar39 < 2;\n      bVar47 = uVar39 == 2;\n      if (bVar47) {\n        iVar31 = 4;\n        pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4);\n        pbVar41 = &DAT_0002f16a;\n        do {\n          if (iVar31 == 0) break;\n          iVar31 = iVar31 + -1;\n          bVar46 = *pbVar36 < *pbVar41;\n          bVar47 = *pbVar36 == *pbVar41;\n          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n        } while (bVar47);\n        if ((!bVar46 && !bVar47) == bVar46) {\n          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);\n          puVar42 = (undefined4 *)(iVar12 + 0x7c);\n          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }\n        }\n      }\n      uVar39 = DAT_000402b4;\n      if ((DAT_000402b4 & DAT_000402b0) == 0xffffffff) {\n        DAT_000402b0 = 0x200;\n        DAT_000402b4 = 0;\n      }\n      else {\n        *(uint *)(iVar12 + 0xb4) = DAT_000402b0;\n        *(uint *)(iVar12 + 0xb8) = uVar39;\n      }\n      uVar39 = DAT_000402ac;\n      if ((DAT_000402ac & DAT_000402a8) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a8;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_000402a4;\n      if ((DAT_000402a4 & DAT_000402a0) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a0;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_0004029c;\n      if ((DAT_0004029c & DAT_00040298) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xa4) = DAT_00040298;\n        *(uint *)(iVar12 + 0xa8) = uVar39;\n      }\n      uVar39 = DAT_00040294;\n      local_64 = (int *)DAT_00040290;\n      if ((DAT_00040290 & DAT_00040294) == 0xffffffff) {\n        DAT_00040290 = 0x1000;\n        uVar39 = 0;\n        DAT_00040294 = 0;\n        local_64 = (int *)0x1000;\n      }\n      else {\n        *(uint *)(iVar12 + 0xac) = DAT_00040290;\n        *(uint *)(iVar12 + 0xb0) = uVar39;\n      }\n      uVar17 = DAT_0004028c;\n      if ((DAT_0004028c & DAT_00040288) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040288;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      uVar17 = DAT_00040284;\n      if ((DAT_00040284 & DAT_00040280) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040280;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      if (DAT_0004027c != -1) {\n        *(short *)(iVar12 + 0xd8) = DAT_0004027c;\n      }\n      if (DAT_0004027a != -1) {\n        *(short *)(iVar12 + 0xc4) = DAT_0004027a;\n      }\n      if (DAT_00040278 != -1) {\n        *(short *)(iVar12 + 0xc6) = DAT_00040278;\n      }\n      if (uVar39 < DAT_000402b4 || uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0)) {\n        sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4);\n        sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294);\n        uVar13 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n        FUN_0002c910(uVar13,&local_4c,&local_34);\n      }\n    }\n  }" if (parenthesized_expression "(bVar47)" ( identifier )) (compound_statement "{\n    iVar12 = 4;\n    pbVar36 = *(byte **)((int *)param_2)[1];\n    pbVar41 = &DAT_0002f16a;\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar46 = *pbVar36 < *pbVar41;\n      bVar47 = *pbVar36 == *pbVar41;\n      pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n      pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n    } while (bVar47);\n    if ((!bVar46 && !bVar47) == bVar46) {\n      iVar12 = ((int *)param_2)[0x28];\n      uVar39 = (*(undefined4 **)((int)param_1 + 4))[1];\n      bVar46 = uVar39 < 2;\n      bVar47 = uVar39 == 2;\n      if (bVar47) {\n        iVar31 = 4;\n        pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4);\n        pbVar41 = &DAT_0002f16a;\n        do {\n          if (iVar31 == 0) break;\n          iVar31 = iVar31 + -1;\n          bVar46 = *pbVar36 < *pbVar41;\n          bVar47 = *pbVar36 == *pbVar41;\n          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n        } while (bVar47);\n        if ((!bVar46 && !bVar47) == bVar46) {\n          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);\n          puVar42 = (undefined4 *)(iVar12 + 0x7c);\n          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }\n        }\n      }\n      uVar39 = DAT_000402b4;\n      if ((DAT_000402b4 & DAT_000402b0) == 0xffffffff) {\n        DAT_000402b0 = 0x200;\n        DAT_000402b4 = 0;\n      }\n      else {\n        *(uint *)(iVar12 + 0xb4) = DAT_000402b0;\n        *(uint *)(iVar12 + 0xb8) = uVar39;\n      }\n      uVar39 = DAT_000402ac;\n      if ((DAT_000402ac & DAT_000402a8) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a8;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_000402a4;\n      if ((DAT_000402a4 & DAT_000402a0) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a0;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_0004029c;\n      if ((DAT_0004029c & DAT_00040298) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xa4) = DAT_00040298;\n        *(uint *)(iVar12 + 0xa8) = uVar39;\n      }\n      uVar39 = DAT_00040294;\n      local_64 = (int *)DAT_00040290;\n      if ((DAT_00040290 & DAT_00040294) == 0xffffffff) {\n        DAT_00040290 = 0x1000;\n        uVar39 = 0;\n        DAT_00040294 = 0;\n        local_64 = (int *)0x1000;\n      }\n      else {\n        *(uint *)(iVar12 + 0xac) = DAT_00040290;\n        *(uint *)(iVar12 + 0xb0) = uVar39;\n      }\n      uVar17 = DAT_0004028c;\n      if ((DAT_0004028c & DAT_00040288) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040288;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      uVar17 = DAT_00040284;\n      if ((DAT_00040284 & DAT_00040280) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040280;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      if (DAT_0004027c != -1) {\n        *(short *)(iVar12 + 0xd8) = DAT_0004027c;\n      }\n      if (DAT_0004027a != -1) {\n        *(short *)(iVar12 + 0xc4) = DAT_0004027a;\n      }\n      if (DAT_00040278 != -1) {\n        *(short *)(iVar12 + 0xc6) = DAT_00040278;\n      }\n      if (uVar39 < DAT_000402b4 || uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0)) {\n        sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4);\n        sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294);\n        uVar13 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n        FUN_0002c910(uVar13,&local_4c,&local_34);\n      }\n    }\n  }" { (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" identifier = number_literal) ;) (expression_statement "pbVar36 = *(byte **)((int *)param_2)[1];" (assignment_expression "pbVar36 = *(byte **)((int *)param_2)[1]" identifier = (pointer_expression "*(byte **)((int *)param_2)[1]" * (cast_expression "(byte **)((int *)param_2)[1]" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "((int *)param_2)[1]" (parenthesized_expression "((int *)param_2)" ( (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])))) ;) (expression_statement "pbVar41 = &DAT_0002f16a;" (assignment_expression "pbVar41 = &DAT_0002f16a" identifier = (pointer_expression "&DAT_0002f16a" & identifier)) ;) (do_statement "do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar46 = *pbVar36 < *pbVar41;\n      bVar47 = *pbVar36 == *pbVar41;\n      pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n      pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n    } while (bVar47);" do (compound_statement "{\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar46 = *pbVar36 < *pbVar41;\n      bVar47 = *pbVar36 == *pbVar41;\n      pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n      pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n    }" { (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "bVar46 = *pbVar36 < *pbVar41;" (assignment_expression "bVar46 = *pbVar36 < *pbVar41" identifier = (binary_expression "*pbVar36 < *pbVar41" (pointer_expression "*pbVar36" * identifier) < (pointer_expression "*pbVar41" * identifier))) ;) (expression_statement "bVar47 = *pbVar36 == *pbVar41;" (assignment_expression "bVar47 = *pbVar36 == *pbVar41" identifier = (binary_expression "*pbVar36 == *pbVar41" (pointer_expression "*pbVar36" * identifier) == (pointer_expression "*pbVar41" * identifier))) ;) (expression_statement "pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;" (assignment_expression "pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1" identifier = (binary_expression "pbVar36 + (uint)bVar48 * -2 + 1" (binary_expression "pbVar36 + (uint)bVar48 * -2" identifier + (binary_expression "(uint)bVar48 * -2" (cast_expression "(uint)bVar48" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;" (assignment_expression "pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1" identifier = (binary_expression "pbVar41 + (uint)bVar48 * -2 + 1" (binary_expression "pbVar41 + (uint)bVar48 * -2" identifier + (binary_expression "(uint)bVar48 * -2" (cast_expression "(uint)bVar48" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar47)" ( identifier )) ;) (if_statement "if ((!bVar46 && !bVar47) == bVar46) {\n      iVar12 = ((int *)param_2)[0x28];\n      uVar39 = (*(undefined4 **)((int)param_1 + 4))[1];\n      bVar46 = uVar39 < 2;\n      bVar47 = uVar39 == 2;\n      if (bVar47) {\n        iVar31 = 4;\n        pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4);\n        pbVar41 = &DAT_0002f16a;\n        do {\n          if (iVar31 == 0) break;\n          iVar31 = iVar31 + -1;\n          bVar46 = *pbVar36 < *pbVar41;\n          bVar47 = *pbVar36 == *pbVar41;\n          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n        } while (bVar47);\n        if ((!bVar46 && !bVar47) == bVar46) {\n          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);\n          puVar42 = (undefined4 *)(iVar12 + 0x7c);\n          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }\n        }\n      }\n      uVar39 = DAT_000402b4;\n      if ((DAT_000402b4 & DAT_000402b0) == 0xffffffff) {\n        DAT_000402b0 = 0x200;\n        DAT_000402b4 = 0;\n      }\n      else {\n        *(uint *)(iVar12 + 0xb4) = DAT_000402b0;\n        *(uint *)(iVar12 + 0xb8) = uVar39;\n      }\n      uVar39 = DAT_000402ac;\n      if ((DAT_000402ac & DAT_000402a8) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a8;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_000402a4;\n      if ((DAT_000402a4 & DAT_000402a0) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a0;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_0004029c;\n      if ((DAT_0004029c & DAT_00040298) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xa4) = DAT_00040298;\n        *(uint *)(iVar12 + 0xa8) = uVar39;\n      }\n      uVar39 = DAT_00040294;\n      local_64 = (int *)DAT_00040290;\n      if ((DAT_00040290 & DAT_00040294) == 0xffffffff) {\n        DAT_00040290 = 0x1000;\n        uVar39 = 0;\n        DAT_00040294 = 0;\n        local_64 = (int *)0x1000;\n      }\n      else {\n        *(uint *)(iVar12 + 0xac) = DAT_00040290;\n        *(uint *)(iVar12 + 0xb0) = uVar39;\n      }\n      uVar17 = DAT_0004028c;\n      if ((DAT_0004028c & DAT_00040288) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040288;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      uVar17 = DAT_00040284;\n      if ((DAT_00040284 & DAT_00040280) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040280;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      if (DAT_0004027c != -1) {\n        *(short *)(iVar12 + 0xd8) = DAT_0004027c;\n      }\n      if (DAT_0004027a != -1) {\n        *(short *)(iVar12 + 0xc4) = DAT_0004027a;\n      }\n      if (DAT_00040278 != -1) {\n        *(short *)(iVar12 + 0xc6) = DAT_00040278;\n      }\n      if (uVar39 < DAT_000402b4 || uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0)) {\n        sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4);\n        sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294);\n        uVar13 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n        FUN_0002c910(uVar13,&local_4c,&local_34);\n      }\n    }" if (parenthesized_expression "((!bVar46 && !bVar47) == bVar46)" ( (binary_expression "(!bVar46 && !bVar47) == bVar46" (parenthesized_expression "(!bVar46 && !bVar47)" ( (binary_expression "!bVar46 && !bVar47" (unary_expression "!bVar46" ! identifier) && (unary_expression "!bVar47" ! identifier)) )) == identifier) )) (compound_statement "{\n      iVar12 = ((int *)param_2)[0x28];\n      uVar39 = (*(undefined4 **)((int)param_1 + 4))[1];\n      bVar46 = uVar39 < 2;\n      bVar47 = uVar39 == 2;\n      if (bVar47) {\n        iVar31 = 4;\n        pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4);\n        pbVar41 = &DAT_0002f16a;\n        do {\n          if (iVar31 == 0) break;\n          iVar31 = iVar31 + -1;\n          bVar46 = *pbVar36 < *pbVar41;\n          bVar47 = *pbVar36 == *pbVar41;\n          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n        } while (bVar47);\n        if ((!bVar46 && !bVar47) == bVar46) {\n          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);\n          puVar42 = (undefined4 *)(iVar12 + 0x7c);\n          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }\n        }\n      }\n      uVar39 = DAT_000402b4;\n      if ((DAT_000402b4 & DAT_000402b0) == 0xffffffff) {\n        DAT_000402b0 = 0x200;\n        DAT_000402b4 = 0;\n      }\n      else {\n        *(uint *)(iVar12 + 0xb4) = DAT_000402b0;\n        *(uint *)(iVar12 + 0xb8) = uVar39;\n      }\n      uVar39 = DAT_000402ac;\n      if ((DAT_000402ac & DAT_000402a8) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a8;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_000402a4;\n      if ((DAT_000402a4 & DAT_000402a0) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a0;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_0004029c;\n      if ((DAT_0004029c & DAT_00040298) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xa4) = DAT_00040298;\n        *(uint *)(iVar12 + 0xa8) = uVar39;\n      }\n      uVar39 = DAT_00040294;\n      local_64 = (int *)DAT_00040290;\n      if ((DAT_00040290 & DAT_00040294) == 0xffffffff) {\n        DAT_00040290 = 0x1000;\n        uVar39 = 0;\n        DAT_00040294 = 0;\n        local_64 = (int *)0x1000;\n      }\n      else {\n        *(uint *)(iVar12 + 0xac) = DAT_00040290;\n        *(uint *)(iVar12 + 0xb0) = uVar39;\n      }\n      uVar17 = DAT_0004028c;\n      if ((DAT_0004028c & DAT_00040288) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040288;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      uVar17 = DAT_00040284;\n      if ((DAT_00040284 & DAT_00040280) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040280;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      if (DAT_0004027c != -1) {\n        *(short *)(iVar12 + 0xd8) = DAT_0004027c;\n      }\n      if (DAT_0004027a != -1) {\n        *(short *)(iVar12 + 0xc4) = DAT_0004027a;\n      }\n      if (DAT_00040278 != -1) {\n        *(short *)(iVar12 + 0xc6) = DAT_00040278;\n      }\n      if (uVar39 < DAT_000402b4 || uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0)) {\n        sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4);\n        sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294);\n        uVar13 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n        FUN_0002c910(uVar13,&local_4c,&local_34);\n      }\n    }" { (expression_statement "iVar12 = ((int *)param_2)[0x28];" (assignment_expression "iVar12 = ((int *)param_2)[0x28]" identifier = (subscript_expression "((int *)param_2)[0x28]" (parenthesized_expression "((int *)param_2)" ( (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;) (expression_statement "uVar39 = (*(undefined4 **)((int)param_1 + 4))[1];" (assignment_expression "uVar39 = (*(undefined4 **)((int)param_1 + 4))[1]" identifier = (subscript_expression "(*(undefined4 **)((int)param_1 + 4))[1]" (parenthesized_expression "(*(undefined4 **)((int)param_1 + 4))" ( (pointer_expression "*(undefined4 **)((int)param_1 + 4)" * (cast_expression "(undefined4 **)((int)param_1 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )) [ number_literal ])) ;) (expression_statement "bVar46 = uVar39 < 2;" (assignment_expression "bVar46 = uVar39 < 2" identifier = (binary_expression "uVar39 < 2" identifier < number_literal)) ;) (expression_statement "bVar47 = uVar39 == 2;" (assignment_expression "bVar47 = uVar39 == 2" identifier = (binary_expression "uVar39 == 2" identifier == number_literal)) ;) (if_statement "if (bVar47) {\n        iVar31 = 4;\n        pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4);\n        pbVar41 = &DAT_0002f16a;\n        do {\n          if (iVar31 == 0) break;\n          iVar31 = iVar31 + -1;\n          bVar46 = *pbVar36 < *pbVar41;\n          bVar47 = *pbVar36 == *pbVar41;\n          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n        } while (bVar47);\n        if ((!bVar46 && !bVar47) == bVar46) {\n          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);\n          puVar42 = (undefined4 *)(iVar12 + 0x7c);\n          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }\n        }\n      }" if (parenthesized_expression "(bVar47)" ( identifier )) (compound_statement "{\n        iVar31 = 4;\n        pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4);\n        pbVar41 = &DAT_0002f16a;\n        do {\n          if (iVar31 == 0) break;\n          iVar31 = iVar31 + -1;\n          bVar46 = *pbVar36 < *pbVar41;\n          bVar47 = *pbVar36 == *pbVar41;\n          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n        } while (bVar47);\n        if ((!bVar46 && !bVar47) == bVar46) {\n          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);\n          puVar42 = (undefined4 *)(iVar12 + 0x7c);\n          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }\n        }\n      }" { (expression_statement "iVar31 = 4;" (assignment_expression "iVar31 = 4" identifier = number_literal) ;) (expression_statement "pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4);" (assignment_expression "pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4)" identifier = (cast_expression "(byte *)**(undefined4 **)((int)param_1 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)((int)param_1 + 4)" * (pointer_expression "*(undefined4 **)((int)param_1 + 4)" * (cast_expression "(undefined4 **)((int)param_1 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))))) ;) (expression_statement "pbVar41 = &DAT_0002f16a;" (assignment_expression "pbVar41 = &DAT_0002f16a" identifier = (pointer_expression "&DAT_0002f16a" & identifier)) ;) (do_statement "do {\n          if (iVar31 == 0) break;\n          iVar31 = iVar31 + -1;\n          bVar46 = *pbVar36 < *pbVar41;\n          bVar47 = *pbVar36 == *pbVar41;\n          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n        } while (bVar47);" do (compound_statement "{\n          if (iVar31 == 0) break;\n          iVar31 = iVar31 + -1;\n          bVar46 = *pbVar36 < *pbVar41;\n          bVar47 = *pbVar36 == *pbVar41;\n          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n        }" { (if_statement "if (iVar31 == 0) break;" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar31 = iVar31 + -1;" (assignment_expression "iVar31 = iVar31 + -1" identifier = (binary_expression "iVar31 + -1" identifier + number_literal)) ;) (expression_statement "bVar46 = *pbVar36 < *pbVar41;" (assignment_expression "bVar46 = *pbVar36 < *pbVar41" identifier = (binary_expression "*pbVar36 < *pbVar41" (pointer_expression "*pbVar36" * identifier) < (pointer_expression "*pbVar41" * identifier))) ;) (expression_statement "bVar47 = *pbVar36 == *pbVar41;" (assignment_expression "bVar47 = *pbVar36 == *pbVar41" identifier = (binary_expression "*pbVar36 == *pbVar41" (pointer_expression "*pbVar36" * identifier) == (pointer_expression "*pbVar41" * identifier))) ;) (expression_statement "pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;" (assignment_expression "pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1" identifier = (binary_expression "pbVar36 + (uint)bVar48 * -2 + 1" (binary_expression "pbVar36 + (uint)bVar48 * -2" identifier + (binary_expression "(uint)bVar48 * -2" (cast_expression "(uint)bVar48" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;" (assignment_expression "pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1" identifier = (binary_expression "pbVar41 + (uint)bVar48 * -2 + 1" (binary_expression "pbVar41 + (uint)bVar48 * -2" identifier + (binary_expression "(uint)bVar48 * -2" (cast_expression "(uint)bVar48" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar47)" ( identifier )) ;) (if_statement "if ((!bVar46 && !bVar47) == bVar46) {\n          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);\n          puVar42 = (undefined4 *)(iVar12 + 0x7c);\n          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }\n        }" if (parenthesized_expression "((!bVar46 && !bVar47) == bVar46)" ( (binary_expression "(!bVar46 && !bVar47) == bVar46" (parenthesized_expression "(!bVar46 && !bVar47)" ( (binary_expression "!bVar46 && !bVar47" (unary_expression "!bVar46" ! identifier) && (unary_expression "!bVar47" ! identifier)) )) == identifier) )) (compound_statement "{\n          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);\n          puVar42 = (undefined4 *)(iVar12 + 0x7c);\n          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }\n        }" { (expression_statement "puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);" (assignment_expression "puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c)" identifier = (cast_expression "(undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)param_1 + 0xa0) + 0x7c)" ( (binary_expression "*(int *)((int)param_1 + 0xa0) + 0x7c" (pointer_expression "*(int *)((int)param_1 + 0xa0)" * (cast_expression "(int *)((int)param_1 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0xa0)" ( (binary_expression "(int)param_1 + 0xa0" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) )))) ;) (expression_statement "puVar42 = (undefined4 *)(iVar12 + 0x7c);" (assignment_expression "puVar42 = (undefined4 *)(iVar12 + 0x7c)" identifier = (cast_expression "(undefined4 *)(iVar12 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x7c)" ( (binary_expression "iVar12 + 0x7c" identifier + number_literal) )))) ;) (for_statement "for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }" for ( (assignment_expression "iVar31 = 0x52" identifier = number_literal) ; (binary_expression "iVar31 != 0" identifier != number_literal) ; (assignment_expression "iVar31 = iVar31 + -1" identifier = (binary_expression "iVar31 + -1" identifier + number_literal)) ) (compound_statement "{\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }" { (expression_statement "*puVar42 = *puVar35;" (assignment_expression "*puVar42 = *puVar35" (pointer_expression "*puVar42" * identifier) = (pointer_expression "*puVar35" * identifier)) ;) (expression_statement "puVar35 = puVar35 + (uint)bVar48 * -2 + 1;" (assignment_expression "puVar35 = puVar35 + (uint)bVar48 * -2 + 1" identifier = (binary_expression "puVar35 + (uint)bVar48 * -2 + 1" (binary_expression "puVar35 + (uint)bVar48 * -2" identifier + (binary_expression "(uint)bVar48 * -2" (cast_expression "(uint)bVar48" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar42 = puVar42 + (uint)bVar48 * -2 + 1;" (assignment_expression "puVar42 = puVar42 + (uint)bVar48 * -2 + 1" identifier = (binary_expression "puVar42 + (uint)bVar48 * -2 + 1" (binary_expression "puVar42 + (uint)bVar48 * -2" identifier + (binary_expression "(uint)bVar48 * -2" (cast_expression "(uint)bVar48" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) })) })) (expression_statement "uVar39 = DAT_000402b4;" (assignment_expression "uVar39 = DAT_000402b4" identifier = identifier) ;) (if_statement "if ((DAT_000402b4 & DAT_000402b0) == 0xffffffff) {\n        DAT_000402b0 = 0x200;\n        DAT_000402b4 = 0;\n      }\n      else {\n        *(uint *)(iVar12 + 0xb4) = DAT_000402b0;\n        *(uint *)(iVar12 + 0xb8) = uVar39;\n      }" if (parenthesized_expression "((DAT_000402b4 & DAT_000402b0) == 0xffffffff)" ( (binary_expression "(DAT_000402b4 & DAT_000402b0) == 0xffffffff" (parenthesized_expression "(DAT_000402b4 & DAT_000402b0)" ( (binary_expression "DAT_000402b4 & DAT_000402b0" identifier & identifier) )) == number_literal) )) (compound_statement "{\n        DAT_000402b0 = 0x200;\n        DAT_000402b4 = 0;\n      }" { (expression_statement "DAT_000402b0 = 0x200;" (assignment_expression "DAT_000402b0 = 0x200" identifier = number_literal) ;) (expression_statement "DAT_000402b4 = 0;" (assignment_expression "DAT_000402b4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        *(uint *)(iVar12 + 0xb4) = DAT_000402b0;\n        *(uint *)(iVar12 + 0xb8) = uVar39;\n      }" else (compound_statement "{\n        *(uint *)(iVar12 + 0xb4) = DAT_000402b0;\n        *(uint *)(iVar12 + 0xb8) = uVar39;\n      }" { (expression_statement "*(uint *)(iVar12 + 0xb4) = DAT_000402b0;" (assignment_expression "*(uint *)(iVar12 + 0xb4) = DAT_000402b0" (pointer_expression "*(uint *)(iVar12 + 0xb4)" * (cast_expression "(uint *)(iVar12 + 0xb4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xb4)" ( (binary_expression "iVar12 + 0xb4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar12 + 0xb8) = uVar39;" (assignment_expression "*(uint *)(iVar12 + 0xb8) = uVar39" (pointer_expression "*(uint *)(iVar12 + 0xb8)" * (cast_expression "(uint *)(iVar12 + 0xb8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xb8)" ( (binary_expression "iVar12 + 0xb8" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "uVar39 = DAT_000402ac;" (assignment_expression "uVar39 = DAT_000402ac" identifier = identifier) ;) (if_statement "if ((DAT_000402ac & DAT_000402a8) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a8;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }" if (parenthesized_expression "((DAT_000402ac & DAT_000402a8) != 0xffffffff)" ( (binary_expression "(DAT_000402ac & DAT_000402a8) != 0xffffffff" (parenthesized_expression "(DAT_000402ac & DAT_000402a8)" ( (binary_expression "DAT_000402ac & DAT_000402a8" identifier & identifier) )) != number_literal) )) (compound_statement "{\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a8;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }" { (expression_statement "*(uint *)(iVar12 + 0xf4) = DAT_000402a8;" (assignment_expression "*(uint *)(iVar12 + 0xf4) = DAT_000402a8" (pointer_expression "*(uint *)(iVar12 + 0xf4)" * (cast_expression "(uint *)(iVar12 + 0xf4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xf4)" ( (binary_expression "iVar12 + 0xf4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar12 + 0xf8) = uVar39;" (assignment_expression "*(uint *)(iVar12 + 0xf8) = uVar39" (pointer_expression "*(uint *)(iVar12 + 0xf8)" * (cast_expression "(uint *)(iVar12 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xf8)" ( (binary_expression "iVar12 + 0xf8" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "uVar39 = DAT_000402a4;" (assignment_expression "uVar39 = DAT_000402a4" identifier = identifier) ;) (if_statement "if ((DAT_000402a4 & DAT_000402a0) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a0;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }" if (parenthesized_expression "((DAT_000402a4 & DAT_000402a0) != 0xffffffff)" ( (binary_expression "(DAT_000402a4 & DAT_000402a0) != 0xffffffff" (parenthesized_expression "(DAT_000402a4 & DAT_000402a0)" ( (binary_expression "DAT_000402a4 & DAT_000402a0" identifier & identifier) )) != number_literal) )) (compound_statement "{\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a0;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }" { (expression_statement "*(uint *)(iVar12 + 0xf4) = DAT_000402a0;" (assignment_expression "*(uint *)(iVar12 + 0xf4) = DAT_000402a0" (pointer_expression "*(uint *)(iVar12 + 0xf4)" * (cast_expression "(uint *)(iVar12 + 0xf4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xf4)" ( (binary_expression "iVar12 + 0xf4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar12 + 0xf8) = uVar39;" (assignment_expression "*(uint *)(iVar12 + 0xf8) = uVar39" (pointer_expression "*(uint *)(iVar12 + 0xf8)" * (cast_expression "(uint *)(iVar12 + 0xf8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xf8)" ( (binary_expression "iVar12 + 0xf8" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "uVar39 = DAT_0004029c;" (assignment_expression "uVar39 = DAT_0004029c" identifier = identifier) ;) (if_statement "if ((DAT_0004029c & DAT_00040298) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xa4) = DAT_00040298;\n        *(uint *)(iVar12 + 0xa8) = uVar39;\n      }" if (parenthesized_expression "((DAT_0004029c & DAT_00040298) != 0xffffffff)" ( (binary_expression "(DAT_0004029c & DAT_00040298) != 0xffffffff" (parenthesized_expression "(DAT_0004029c & DAT_00040298)" ( (binary_expression "DAT_0004029c & DAT_00040298" identifier & identifier) )) != number_literal) )) (compound_statement "{\n        *(uint *)(iVar12 + 0xa4) = DAT_00040298;\n        *(uint *)(iVar12 + 0xa8) = uVar39;\n      }" { (expression_statement "*(uint *)(iVar12 + 0xa4) = DAT_00040298;" (assignment_expression "*(uint *)(iVar12 + 0xa4) = DAT_00040298" (pointer_expression "*(uint *)(iVar12 + 0xa4)" * (cast_expression "(uint *)(iVar12 + 0xa4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xa4)" ( (binary_expression "iVar12 + 0xa4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar12 + 0xa8) = uVar39;" (assignment_expression "*(uint *)(iVar12 + 0xa8) = uVar39" (pointer_expression "*(uint *)(iVar12 + 0xa8)" * (cast_expression "(uint *)(iVar12 + 0xa8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xa8)" ( (binary_expression "iVar12 + 0xa8" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "uVar39 = DAT_00040294;" (assignment_expression "uVar39 = DAT_00040294" identifier = identifier) ;) (expression_statement "local_64 = (int *)DAT_00040290;" (assignment_expression "local_64 = (int *)DAT_00040290" identifier = (cast_expression "(int *)DAT_00040290" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((DAT_00040290 & DAT_00040294) == 0xffffffff) {\n        DAT_00040290 = 0x1000;\n        uVar39 = 0;\n        DAT_00040294 = 0;\n        local_64 = (int *)0x1000;\n      }\n      else {\n        *(uint *)(iVar12 + 0xac) = DAT_00040290;\n        *(uint *)(iVar12 + 0xb0) = uVar39;\n      }" if (parenthesized_expression "((DAT_00040290 & DAT_00040294) == 0xffffffff)" ( (binary_expression "(DAT_00040290 & DAT_00040294) == 0xffffffff" (parenthesized_expression "(DAT_00040290 & DAT_00040294)" ( (binary_expression "DAT_00040290 & DAT_00040294" identifier & identifier) )) == number_literal) )) (compound_statement "{\n        DAT_00040290 = 0x1000;\n        uVar39 = 0;\n        DAT_00040294 = 0;\n        local_64 = (int *)0x1000;\n      }" { (expression_statement "DAT_00040290 = 0x1000;" (assignment_expression "DAT_00040290 = 0x1000" identifier = number_literal) ;) (expression_statement "uVar39 = 0;" (assignment_expression "uVar39 = 0" identifier = number_literal) ;) (expression_statement "DAT_00040294 = 0;" (assignment_expression "DAT_00040294 = 0" identifier = number_literal) ;) (expression_statement "local_64 = (int *)0x1000;" (assignment_expression "local_64 = (int *)0x1000" identifier = (cast_expression "(int *)0x1000" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        *(uint *)(iVar12 + 0xac) = DAT_00040290;\n        *(uint *)(iVar12 + 0xb0) = uVar39;\n      }" else (compound_statement "{\n        *(uint *)(iVar12 + 0xac) = DAT_00040290;\n        *(uint *)(iVar12 + 0xb0) = uVar39;\n      }" { (expression_statement "*(uint *)(iVar12 + 0xac) = DAT_00040290;" (assignment_expression "*(uint *)(iVar12 + 0xac) = DAT_00040290" (pointer_expression "*(uint *)(iVar12 + 0xac)" * (cast_expression "(uint *)(iVar12 + 0xac)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xac)" ( (binary_expression "iVar12 + 0xac" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar12 + 0xb0) = uVar39;" (assignment_expression "*(uint *)(iVar12 + 0xb0) = uVar39" (pointer_expression "*(uint *)(iVar12 + 0xb0)" * (cast_expression "(uint *)(iVar12 + 0xb0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xb0)" ( (binary_expression "iVar12 + 0xb0" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "uVar17 = DAT_0004028c;" (assignment_expression "uVar17 = DAT_0004028c" identifier = identifier) ;) (if_statement "if ((DAT_0004028c & DAT_00040288) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040288;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }" if (parenthesized_expression "((DAT_0004028c & DAT_00040288) != 0xffffffff)" ( (binary_expression "(DAT_0004028c & DAT_00040288) != 0xffffffff" (parenthesized_expression "(DAT_0004028c & DAT_00040288)" ( (binary_expression "DAT_0004028c & DAT_00040288" identifier & identifier) )) != number_literal) )) (compound_statement "{\n        *(uint *)(iVar12 + 0xe4) = DAT_00040288;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }" { (expression_statement "*(uint *)(iVar12 + 0xe4) = DAT_00040288;" (assignment_expression "*(uint *)(iVar12 + 0xe4) = DAT_00040288" (pointer_expression "*(uint *)(iVar12 + 0xe4)" * (cast_expression "(uint *)(iVar12 + 0xe4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe4)" ( (binary_expression "iVar12 + 0xe4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar12 + 0xe8) = uVar17;" (assignment_expression "*(uint *)(iVar12 + 0xe8) = uVar17" (pointer_expression "*(uint *)(iVar12 + 0xe8)" * (cast_expression "(uint *)(iVar12 + 0xe8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe8)" ( (binary_expression "iVar12 + 0xe8" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "uVar17 = DAT_00040284;" (assignment_expression "uVar17 = DAT_00040284" identifier = identifier) ;) (if_statement "if ((DAT_00040284 & DAT_00040280) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040280;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }" if (parenthesized_expression "((DAT_00040284 & DAT_00040280) != 0xffffffff)" ( (binary_expression "(DAT_00040284 & DAT_00040280) != 0xffffffff" (parenthesized_expression "(DAT_00040284 & DAT_00040280)" ( (binary_expression "DAT_00040284 & DAT_00040280" identifier & identifier) )) != number_literal) )) (compound_statement "{\n        *(uint *)(iVar12 + 0xe4) = DAT_00040280;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }" { (expression_statement "*(uint *)(iVar12 + 0xe4) = DAT_00040280;" (assignment_expression "*(uint *)(iVar12 + 0xe4) = DAT_00040280" (pointer_expression "*(uint *)(iVar12 + 0xe4)" * (cast_expression "(uint *)(iVar12 + 0xe4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe4)" ( (binary_expression "iVar12 + 0xe4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar12 + 0xe8) = uVar17;" (assignment_expression "*(uint *)(iVar12 + 0xe8) = uVar17" (pointer_expression "*(uint *)(iVar12 + 0xe8)" * (cast_expression "(uint *)(iVar12 + 0xe8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe8)" ( (binary_expression "iVar12 + 0xe8" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (DAT_0004027c != -1) {\n        *(short *)(iVar12 + 0xd8) = DAT_0004027c;\n      }" if (parenthesized_expression "(DAT_0004027c != -1)" ( (binary_expression "DAT_0004027c != -1" identifier != number_literal) )) (compound_statement "{\n        *(short *)(iVar12 + 0xd8) = DAT_0004027c;\n      }" { (expression_statement "*(short *)(iVar12 + 0xd8) = DAT_0004027c;" (assignment_expression "*(short *)(iVar12 + 0xd8) = DAT_0004027c" (pointer_expression "*(short *)(iVar12 + 0xd8)" * (cast_expression "(short *)(iVar12 + 0xd8)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xd8)" ( (binary_expression "iVar12 + 0xd8" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (DAT_0004027a != -1) {\n        *(short *)(iVar12 + 0xc4) = DAT_0004027a;\n      }" if (parenthesized_expression "(DAT_0004027a != -1)" ( (binary_expression "DAT_0004027a != -1" identifier != number_literal) )) (compound_statement "{\n        *(short *)(iVar12 + 0xc4) = DAT_0004027a;\n      }" { (expression_statement "*(short *)(iVar12 + 0xc4) = DAT_0004027a;" (assignment_expression "*(short *)(iVar12 + 0xc4) = DAT_0004027a" (pointer_expression "*(short *)(iVar12 + 0xc4)" * (cast_expression "(short *)(iVar12 + 0xc4)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc4)" ( (binary_expression "iVar12 + 0xc4" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (DAT_00040278 != -1) {\n        *(short *)(iVar12 + 0xc6) = DAT_00040278;\n      }" if (parenthesized_expression "(DAT_00040278 != -1)" ( (binary_expression "DAT_00040278 != -1" identifier != number_literal) )) (compound_statement "{\n        *(short *)(iVar12 + 0xc6) = DAT_00040278;\n      }" { (expression_statement "*(short *)(iVar12 + 0xc6) = DAT_00040278;" (assignment_expression "*(short *)(iVar12 + 0xc6) = DAT_00040278" (pointer_expression "*(short *)(iVar12 + 0xc6)" * (cast_expression "(short *)(iVar12 + 0xc6)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc6)" ( (binary_expression "iVar12 + 0xc6" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (uVar39 < DAT_000402b4 || uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0)) {\n        sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4);\n        sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294);\n        uVar13 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n        FUN_0002c910(uVar13,&local_4c,&local_34);\n      }" if (parenthesized_expression "(uVar39 < DAT_000402b4 || uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0))" ( (binary_expression "uVar39 < DAT_000402b4 || uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0)" (binary_expression "uVar39 < DAT_000402b4" identifier < identifier) || (binary_expression "uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0)" (binary_expression "uVar39 - DAT_000402b4" identifier - identifier) < (call_expression "(uint)(local_64 < DAT_000402b0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_64 < DAT_000402b0)" ( (binary_expression "local_64 < DAT_000402b0" identifier < identifier) ))))) )) (compound_statement "{\n        sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4);\n        sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294);\n        uVar13 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n        FUN_0002c910(uVar13,&local_4c,&local_34);\n      }" { (expression_statement "sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4);" (call_expression "sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4)" identifier (argument_list "((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4)" ( (cast_expression "(char *)&local_4c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_4c" & identifier)) , (string_literal ""%016llx"" " string_content ") , identifier , identifier ))) ;) (expression_statement "sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294);" (call_expression "sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294)" identifier (argument_list "((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294)" ( (cast_expression "(char *)&local_34" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_34" & identifier)) , (string_literal ""%016llx"" " string_content ") , identifier , identifier ))) ;) (expression_statement "uVar13 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);" (assignment_expression "uVar13 = 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_0002c910(uVar13,&local_4c,&local_34);" (call_expression "FUN_0002c910(uVar13,&local_4c,&local_34)" identifier (argument_list "(uVar13,&local_4c,&local_34)" ( identifier , (pointer_expression "&local_4c" & identifier) , (pointer_expression "&local_34" & identifier) ))) ;) })) })) })) (expression_statement "piVar19 = DAT_00040bdc;" (assignment_expression "piVar19 = DAT_00040bdc" identifier = identifier) ;) (if_statement "if (DAT_00040bdc != (int *)0x0) {\n    free(DAT_00040bdc);\n  }" if (parenthesized_expression "(DAT_00040bdc != (int *)0x0)" ( (binary_expression "DAT_00040bdc != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    free(DAT_00040bdc);\n  }" { (expression_statement "free(DAT_00040bdc);" (call_expression "free(DAT_00040bdc)" identifier (argument_list "(DAT_00040bdc)" ( identifier ))) ;) })) (if_statement "if (piVar19 != DAT_00040bd8) {\n    free(DAT_00040bd8);\n  }" if (parenthesized_expression "(piVar19 != DAT_00040bd8)" ( (binary_expression "piVar19 != DAT_00040bd8" identifier != identifier) )) (compound_statement "{\n    free(DAT_00040bd8);\n  }" { (expression_statement "free(DAT_00040bd8);" (call_expression "free(DAT_00040bd8)" identifier (argument_list "(DAT_00040bd8)" ( identifier ))) ;) })) (expression_statement "DAT_00040bdc = (int *)0x0;" (assignment_expression "DAT_00040bdc = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00040bd8 = (int *)0x0;" (assignment_expression "DAT_00040bd8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar12 = (**(code **)(*(int *)((int)param_1 + 4) + 0x104))(param_1);" (assignment_expression "iVar12 = (**(code **)(*(int *)((int)param_1 + 4) + 0x104))(param_1)" identifier = (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x104))(param_1)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x104))" ( (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x104)" * (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x104)" * (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x104)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x104)" ( (binary_expression "*(int *)((int)param_1 + 4) + 0x104" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) )) (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar12 < 0) goto LAB_00018b70;" if (parenthesized_expression "(iVar12 < 0)" ( (binary_expression "iVar12 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00018b70;" goto statement_identifier ;)) (expression_statement "DAT_00040bd8 = (int *)xmalloc(iVar12);" (assignment_expression "DAT_00040bd8 = (int *)xmalloc(iVar12)" identifier = (cast_expression "(int *)xmalloc(iVar12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar12)" identifier (argument_list "(iVar12)" ( identifier ))))) ;) (expression_statement "DAT_00040bdc = DAT_00040bd8;" (assignment_expression "DAT_00040bdc = DAT_00040bd8" identifier = identifier) ;) (expression_statement "local_8c = (**(code **)(*(int *)((int)param_1 + 4) + 0x108))(param_1,DAT_00040bd8);" (assignment_expression "local_8c = (**(code **)(*(int *)((int)param_1 + 4) + 0x108))(param_1,DAT_00040bd8)" identifier = (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x108))(param_1,DAT_00040bd8)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x108))" ( (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x108)" * (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x108)" * (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x108)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x108)" ( (binary_expression "*(int *)((int)param_1 + 4) + 0x108" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) )) (argument_list "(param_1,DAT_00040bd8)" ( identifier , identifier )))) ;) (if_statement "if (local_8c < 0) goto LAB_00018b70;" if (parenthesized_expression "(local_8c < 0)" ( (binary_expression "local_8c < 0" identifier < number_literal) )) (goto_statement "goto LAB_00018b70;" goto statement_identifier ;)) (if_statement "if (local_8c == 0) {\n    free(DAT_00040bdc);\n    DAT_00040bdc = (int *)0x0;\n    DAT_00040bd8 = (int *)0x0;\n  }" if (parenthesized_expression "(local_8c == 0)" ( (binary_expression "local_8c == 0" identifier == number_literal) )) (compound_statement "{\n    free(DAT_00040bdc);\n    DAT_00040bdc = (int *)0x0;\n    DAT_00040bd8 = (int *)0x0;\n  }" { (expression_statement "free(DAT_00040bdc);" (call_expression "free(DAT_00040bdc)" identifier (argument_list "(DAT_00040bdc)" ( identifier ))) ;) (expression_statement "DAT_00040bdc = (int *)0x0;" (assignment_expression "DAT_00040bdc = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00040bd8 = (int *)0x0;" (assignment_expression "DAT_00040bd8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "bfd_map_over_sections(param_1,FUN_00017af0,param_2);" (call_expression "bfd_map_over_sections(param_1,FUN_00017af0,param_2)" identifier (argument_list "(param_1,FUN_00017af0,param_2)" ( identifier , identifier , identifier ))) ;) (expression_statement "puVar35 = DAT_00040b58;" (assignment_expression "puVar35 = DAT_00040b58" identifier = identifier) ;) (if_statement "if ((DAT_00040aec == 0) &&\n     (iVar12 = (**(code **)(((int *)param_2)[1] + 0xbc))(param_1,param_2), puVar35 = DAT_00040b58,\n     iVar12 == 0)) {\n    DAT_00040bc8 = 1;\n    uVar13 = dcgettext(0,"error in private header data",5);\n    FUN_0002d3a0(0,param_1,0,uVar13);\n    puVar35 = DAT_00040b58;\n  }" if (parenthesized_expression "((DAT_00040aec == 0) &&\n     (iVar12 = (**(code **)(((int *)param_2)[1] + 0xbc))(param_1,param_2), puVar35 = DAT_00040b58,\n     iVar12 == 0))" ( (binary_expression "(DAT_00040aec == 0) &&\n     (iVar12 = (**(code **)(((int *)param_2)[1] + 0xbc))(param_1,param_2), puVar35 = DAT_00040b58,\n     iVar12 == 0)" (parenthesized_expression "(DAT_00040aec == 0)" ( (binary_expression "DAT_00040aec == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar12 = (**(code **)(((int *)param_2)[1] + 0xbc))(param_1,param_2), puVar35 = DAT_00040b58,\n     iVar12 == 0)" ( (comma_expression "iVar12 = (**(code **)(((int *)param_2)[1] + 0xbc))(param_1,param_2), puVar35 = DAT_00040b58,\n     iVar12 == 0" (assignment_expression "iVar12 = (**(code **)(((int *)param_2)[1] + 0xbc))(param_1,param_2)" identifier = (call_expression "(**(code **)(((int *)param_2)[1] + 0xbc))(param_1,param_2)" (parenthesized_expression "(**(code **)(((int *)param_2)[1] + 0xbc))" ( (pointer_expression "**(code **)(((int *)param_2)[1] + 0xbc)" * (pointer_expression "*(code **)(((int *)param_2)[1] + 0xbc)" * (cast_expression "(code **)(((int *)param_2)[1] + 0xbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(((int *)param_2)[1] + 0xbc)" ( (binary_expression "((int *)param_2)[1] + 0xbc" (subscript_expression "((int *)param_2)[1]" (parenthesized_expression "((int *)param_2)" ( (cast_expression "(int *)param_2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1,param_2)" ( identifier , identifier )))) , (comma_expression "puVar35 = DAT_00040b58,\n     iVar12 == 0" (assignment_expression "puVar35 = DAT_00040b58" identifier = identifier) , (binary_expression "iVar12 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n    DAT_00040bc8 = 1;\n    uVar13 = dcgettext(0,"error in private header data",5);\n    FUN_0002d3a0(0,param_1,0,uVar13);\n    puVar35 = DAT_00040b58;\n  }" { (expression_statement "DAT_00040bc8 = 1;" (assignment_expression "DAT_00040bc8 = 1" identifier = number_literal) ;) (expression_statement "uVar13 = dcgettext(0,"error in private header data",5);" (assignment_expression "uVar13 = 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_0002d3a0(0,param_1,0,uVar13);" (call_expression "FUN_0002d3a0(0,param_1,0,uVar13)" identifier (argument_list "(0,param_1,0,uVar13)" ( number_literal , identifier , number_literal , identifier ))) ;) (expression_statement "puVar35 = DAT_00040b58;" (assignment_expression "puVar35 = DAT_00040b58" identifier = identifier) ;) })) (for_statement "for (; puVar42 = DAT_00040b54, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)*puVar35) {\n    uVar39 = 0x128;\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      uVar39 = *(uint *)(iVar12 + 0x20) | 0x100;\n    }\n    iVar12 = bfd_get_section_by_name(param_2,puVar35[1]);\n    if (iVar12 != 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t add section \'%s\'";\nLAB_00019591:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n      return 0;\n    }\n    iVar12 = bfd_make_section_with_flags(param_2,puVar35[1],uVar39 | 0x100000);\n    puVar35[5] = iVar12;\n    if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t create section `%s\'";\n      goto LAB_00019591;\n    }\n    iVar12 = bfd_set_section_size(param_2,iVar12,puVar35[3],0);\n    if (iVar12 == 0) goto LAB_00019d5e;\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x14);\n      uVar14 = *(undefined4 *)(iVar12 + 0x10);\n      *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      *(undefined4 *)(iVar31 + 0x24) = uVar14;\n      *(undefined4 *)(iVar31 + 0x28) = uVar13;\n      *(undefined4 *)(iVar31 + 0x1c) = uVar14;\n      *(undefined4 *)(iVar31 + 0x20) = uVar13;\n    }\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x18);\n      *(undefined4 *)(iVar31 + 0x28) = *(undefined4 *)(iVar12 + 0x1c);\n      *(undefined4 *)(iVar31 + 0x24) = uVar13;\n    }\n  }" for ( ; (comma_expression "puVar42 = DAT_00040b54, puVar35 != (undefined4 *)0x0" (assignment_expression "puVar42 = DAT_00040b54" identifier = identifier) , (binary_expression "puVar35 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "puVar35 = (undefined4 *)*puVar35" identifier = (cast_expression "(undefined4 *)*puVar35" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar35" * identifier))) ) (compound_statement "{\n    uVar39 = 0x128;\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      uVar39 = *(uint *)(iVar12 + 0x20) | 0x100;\n    }\n    iVar12 = bfd_get_section_by_name(param_2,puVar35[1]);\n    if (iVar12 != 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t add section \'%s\'";\nLAB_00019591:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n      return 0;\n    }\n    iVar12 = bfd_make_section_with_flags(param_2,puVar35[1],uVar39 | 0x100000);\n    puVar35[5] = iVar12;\n    if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t create section `%s\'";\n      goto LAB_00019591;\n    }\n    iVar12 = bfd_set_section_size(param_2,iVar12,puVar35[3],0);\n    if (iVar12 == 0) goto LAB_00019d5e;\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x14);\n      uVar14 = *(undefined4 *)(iVar12 + 0x10);\n      *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      *(undefined4 *)(iVar31 + 0x24) = uVar14;\n      *(undefined4 *)(iVar31 + 0x28) = uVar13;\n      *(undefined4 *)(iVar31 + 0x1c) = uVar14;\n      *(undefined4 *)(iVar31 + 0x20) = uVar13;\n    }\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x18);\n      *(undefined4 *)(iVar31 + 0x28) = *(undefined4 *)(iVar12 + 0x1c);\n      *(undefined4 *)(iVar31 + 0x24) = uVar13;\n    }\n  }" { (expression_statement "uVar39 = 0x128;" (assignment_expression "uVar39 = 0x128" identifier = number_literal) ;) (expression_statement "iVar12 = FUN_00016a30();" (assignment_expression "iVar12 = FUN_00016a30()" identifier = (call_expression "FUN_00016a30()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar12 != 0) {\n      uVar39 = *(uint *)(iVar12 + 0x20) | 0x100;\n    }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar39 = *(uint *)(iVar12 + 0x20) | 0x100;\n    }" { (expression_statement "uVar39 = *(uint *)(iVar12 + 0x20) | 0x100;" (assignment_expression "uVar39 = *(uint *)(iVar12 + 0x20) | 0x100" identifier = (binary_expression "*(uint *)(iVar12 + 0x20) | 0x100" (pointer_expression "*(uint *)(iVar12 + 0x20)" * (cast_expression "(uint *)(iVar12 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) )))) | number_literal)) ;) })) (expression_statement "iVar12 = bfd_get_section_by_name(param_2,puVar35[1]);" (assignment_expression "iVar12 = bfd_get_section_by_name(param_2,puVar35[1])" identifier = (call_expression "bfd_get_section_by_name(param_2,puVar35[1])" identifier (argument_list "(param_2,puVar35[1])" ( identifier , (subscript_expression "puVar35[1]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar12 != 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t add section \'%s\'";\nLAB_00019591:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n      return 0;\n    }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t add section \'%s\'";\nLAB_00019591:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n      return 0;\n    }" { (expression_statement "uVar13 = puVar35[1];" (assignment_expression "uVar13 = puVar35[1]" identifier = (subscript_expression "puVar35[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar25 = "can\'t add section \'%s\'";" (assignment_expression "pcVar25 = "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 ")) ;) (labeled_statement "LAB_00019591:\n      uVar14 = dcgettext(0,pcVar25,5);" statement_identifier : (expression_statement "uVar14 = dcgettext(0,pcVar25,5);" (assignment_expression "uVar14 = dcgettext(0,pcVar25,5)" identifier = (call_expression "dcgettext(0,pcVar25,5)" identifier (argument_list "(0,pcVar25,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "FUN_0002d3a0(0,param_2,0,uVar14,uVar13);" (call_expression "FUN_0002d3a0(0,param_2,0,uVar14,uVar13)" identifier (argument_list "(0,param_2,0,uVar14,uVar13)" ( number_literal , identifier , number_literal , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar12 = bfd_make_section_with_flags(param_2,puVar35[1],uVar39 | 0x100000);" (assignment_expression "iVar12 = bfd_make_section_with_flags(param_2,puVar35[1],uVar39 | 0x100000)" identifier = (call_expression "bfd_make_section_with_flags(param_2,puVar35[1],uVar39 | 0x100000)" identifier (argument_list "(param_2,puVar35[1],uVar39 | 0x100000)" ( identifier , (subscript_expression "puVar35[1]" identifier [ number_literal ]) , (binary_expression "uVar39 | 0x100000" identifier | number_literal) )))) ;) (expression_statement "puVar35[5] = iVar12;" (assignment_expression "puVar35[5] = iVar12" (subscript_expression "puVar35[5]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t create section `%s\'";\n      goto LAB_00019591;\n    }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t create section `%s\'";\n      goto LAB_00019591;\n    }" { (expression_statement "uVar13 = puVar35[1];" (assignment_expression "uVar13 = puVar35[1]" identifier = (subscript_expression "puVar35[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar25 = "can\'t create section `%s\'";" (assignment_expression "pcVar25 = "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_00019591;" goto statement_identifier ;) })) (expression_statement "iVar12 = bfd_set_section_size(param_2,iVar12,puVar35[3],0);" (assignment_expression "iVar12 = bfd_set_section_size(param_2,iVar12,puVar35[3],0)" identifier = (call_expression "bfd_set_section_size(param_2,iVar12,puVar35[3],0)" identifier (argument_list "(param_2,iVar12,puVar35[3],0)" ( identifier , identifier , (subscript_expression "puVar35[3]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar12 == 0) goto LAB_00019d5e;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019d5e;" goto statement_identifier ;)) (expression_statement "iVar12 = FUN_00016a30();" (assignment_expression "iVar12 = FUN_00016a30()" identifier = (call_expression "FUN_00016a30()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x14);\n      uVar14 = *(undefined4 *)(iVar12 + 0x10);\n      *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      *(undefined4 *)(iVar31 + 0x24) = uVar14;\n      *(undefined4 *)(iVar31 + 0x28) = uVar13;\n      *(undefined4 *)(iVar31 + 0x1c) = uVar14;\n      *(undefined4 *)(iVar31 + 0x20) = uVar13;\n    }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x14);\n      uVar14 = *(undefined4 *)(iVar12 + 0x10);\n      *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      *(undefined4 *)(iVar31 + 0x24) = uVar14;\n      *(undefined4 *)(iVar31 + 0x28) = uVar13;\n      *(undefined4 *)(iVar31 + 0x1c) = uVar14;\n      *(undefined4 *)(iVar31 + 0x20) = uVar13;\n    }" { (expression_statement "iVar31 = puVar35[5];" (assignment_expression "iVar31 = puVar35[5]" identifier = (subscript_expression "puVar35[5]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = *(undefined4 *)(iVar12 + 0x14);" (assignment_expression "uVar13 = *(undefined4 *)(iVar12 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(iVar12 + 0x14)" * (cast_expression "(undefined4 *)(iVar12 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x14)" ( (binary_expression "iVar12 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = *(undefined4 *)(iVar12 + 0x10);" (assignment_expression "uVar14 = *(undefined4 *)(iVar12 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(iVar12 + 0x10)" * (cast_expression "(undefined4 *)(iVar12 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;" (assignment_expression "*(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1" (pointer_expression "*(byte *)(iVar31 + 0x18)" * (cast_expression "(byte *)(iVar31 + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x18)" ( (binary_expression "iVar31 + 0x18" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar31 + 0x18) | 1" (pointer_expression "*(byte *)(iVar31 + 0x18)" * (cast_expression "(byte *)(iVar31 + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x18)" ( (binary_expression "iVar31 + 0x18" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "*(undefined4 *)(iVar31 + 0x24) = uVar14;" (assignment_expression "*(undefined4 *)(iVar31 + 0x24) = uVar14" (pointer_expression "*(undefined4 *)(iVar31 + 0x24)" * (cast_expression "(undefined4 *)(iVar31 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x24)" ( (binary_expression "iVar31 + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar31 + 0x28) = uVar13;" (assignment_expression "*(undefined4 *)(iVar31 + 0x28) = uVar13" (pointer_expression "*(undefined4 *)(iVar31 + 0x28)" * (cast_expression "(undefined4 *)(iVar31 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x28)" ( (binary_expression "iVar31 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar31 + 0x1c) = uVar14;" (assignment_expression "*(undefined4 *)(iVar31 + 0x1c) = uVar14" (pointer_expression "*(undefined4 *)(iVar31 + 0x1c)" * (cast_expression "(undefined4 *)(iVar31 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x1c)" ( (binary_expression "iVar31 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar31 + 0x20) = uVar13;" (assignment_expression "*(undefined4 *)(iVar31 + 0x20) = uVar13" (pointer_expression "*(undefined4 *)(iVar31 + 0x20)" * (cast_expression "(undefined4 *)(iVar31 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x20)" ( (binary_expression "iVar31 + 0x20" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar12 = FUN_00016a30();" (assignment_expression "iVar12 = FUN_00016a30()" identifier = (call_expression "FUN_00016a30()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x18);\n      *(undefined4 *)(iVar31 + 0x28) = *(undefined4 *)(iVar12 + 0x1c);\n      *(undefined4 *)(iVar31 + 0x24) = uVar13;\n    }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x18);\n      *(undefined4 *)(iVar31 + 0x28) = *(undefined4 *)(iVar12 + 0x1c);\n      *(undefined4 *)(iVar31 + 0x24) = uVar13;\n    }" { (expression_statement "iVar31 = puVar35[5];" (assignment_expression "iVar31 = puVar35[5]" identifier = (subscript_expression "puVar35[5]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = *(undefined4 *)(iVar12 + 0x18);" (assignment_expression "uVar13 = *(undefined4 *)(iVar12 + 0x18)" identifier = (pointer_expression "*(undefined4 *)(iVar12 + 0x18)" * (cast_expression "(undefined4 *)(iVar12 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar31 + 0x28) = *(undefined4 *)(iVar12 + 0x1c);" (assignment_expression "*(undefined4 *)(iVar31 + 0x28) = *(undefined4 *)(iVar12 + 0x1c)" (pointer_expression "*(undefined4 *)(iVar31 + 0x28)" * (cast_expression "(undefined4 *)(iVar31 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x28)" ( (binary_expression "iVar31 + 0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar12 + 0x1c)" * (cast_expression "(undefined4 *)(iVar12 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x1c)" ( (binary_expression "iVar12 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar31 + 0x24) = uVar13;" (assignment_expression "*(undefined4 *)(iVar31 + 0x24) = uVar13" (pointer_expression "*(undefined4 *)(iVar31 + 0x24)" * (cast_expression "(undefined4 *)(iVar31 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x24)" ( (binary_expression "iVar31 + 0x24" identifier + number_literal) )))) = identifier) ;) })) })) (for_statement "for (; local_6c = param_2, puVar42 != (undefined4 *)0x0; puVar42 = (undefined4 *)*puVar42) {\n    iVar12 = bfd_get_section_by_name(param_1,puVar42[1]);\n    puVar42[5] = iVar12;\n    if (iVar12 == 0) {\n      uVar13 = puVar42[1];\n      pcVar25 = "error: %s not found, can\'t be updated";\n      goto LAB_00018f38;\n    }\n    psVar43 = *(size_t **)(iVar12 + 0x54);\n    iVar12 = bfd_set_section_size(param_2,psVar43,puVar42[3],0);\n    if (iVar12 == 0) goto LAB_00019fa0;\n  }" for ( ; (comma_expression "local_6c = param_2, puVar42 != (undefined4 *)0x0" (assignment_expression "local_6c = param_2" identifier = identifier) , (binary_expression "puVar42 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "puVar42 = (undefined4 *)*puVar42" identifier = (cast_expression "(undefined4 *)*puVar42" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar42" * identifier))) ) (compound_statement "{\n    iVar12 = bfd_get_section_by_name(param_1,puVar42[1]);\n    puVar42[5] = iVar12;\n    if (iVar12 == 0) {\n      uVar13 = puVar42[1];\n      pcVar25 = "error: %s not found, can\'t be updated";\n      goto LAB_00018f38;\n    }\n    psVar43 = *(size_t **)(iVar12 + 0x54);\n    iVar12 = bfd_set_section_size(param_2,psVar43,puVar42[3],0);\n    if (iVar12 == 0) goto LAB_00019fa0;\n  }" { (expression_statement "iVar12 = bfd_get_section_by_name(param_1,puVar42[1]);" (assignment_expression "iVar12 = bfd_get_section_by_name(param_1,puVar42[1])" identifier = (call_expression "bfd_get_section_by_name(param_1,puVar42[1])" identifier (argument_list "(param_1,puVar42[1])" ( identifier , (subscript_expression "puVar42[1]" identifier [ number_literal ]) )))) ;) (expression_statement "puVar42[5] = iVar12;" (assignment_expression "puVar42[5] = iVar12" (subscript_expression "puVar42[5]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar12 == 0) {\n      uVar13 = puVar42[1];\n      pcVar25 = "error: %s not found, can\'t be updated";\n      goto LAB_00018f38;\n    }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar13 = puVar42[1];\n      pcVar25 = "error: %s not found, can\'t be updated";\n      goto LAB_00018f38;\n    }" { (expression_statement "uVar13 = puVar42[1];" (assignment_expression "uVar13 = puVar42[1]" identifier = (subscript_expression "puVar42[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar25 = "error: %s not found, can\'t be updated";" (assignment_expression "pcVar25 = "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_00018f38;" goto statement_identifier ;) })) (expression_statement "psVar43 = *(size_t **)(iVar12 + 0x54);" (assignment_expression "psVar43 = *(size_t **)(iVar12 + 0x54)" identifier = (pointer_expression "*(size_t **)(iVar12 + 0x54)" * (cast_expression "(size_t **)(iVar12 + 0x54)" ( (type_descriptor "size_t **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 0x54)" ( (binary_expression "iVar12 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = bfd_set_section_size(param_2,psVar43,puVar42[3],0);" (assignment_expression "iVar12 = bfd_set_section_size(param_2,psVar43,puVar42[3],0)" identifier = (call_expression "bfd_set_section_size(param_2,psVar43,puVar42[3],0)" identifier (argument_list "(param_2,psVar43,puVar42[3],0)" ( identifier , identifier , (subscript_expression "puVar42[3]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar12 == 0) goto LAB_00019fa0;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019fa0;" goto statement_identifier ;)) })) (if_statement "if ((((DAT_00040bc4 != 0) &&\n       (iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0)) &&\n      (DAT_00040bc4 != 0)) &&\n     ((*(int *)(*(int *)((int)param_1 + 4) + 4) == 5 && (iVar31 = FUN_000176d0(), iVar31 != 0)))) {\n    uVar39 = *(uint *)(iVar12 + 0x30);\n    sVar22 = *(size_t *)(iVar12 + 0x2c);\n    if (uVar39 == 0 && sVar22 == 0) {\n      uVar13 = dcgettext(0,"warning: note section is empty",5,sVar22);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n      DAT_00040bc4 = 0;\n    }\n    else {\n      iVar31 = bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22);\n      pvVar6 = DAT_00040bc0;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"warning: could not load note section",5,0);\n        FUN_0002d3a0(0,param_1,iVar12,uVar13);\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n      }\n      else {\n        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);\n        sVar23 = extraout_ECX_01;\n        pvVar26 = param_1;\n        if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar52 = (void *)0x30;\n        sVar53 = sVar23;\n        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);\n        local_74 = (size_t *)xcalloc(uVar13);\n        local_bc = 0;\n        sVar54 = 0;\n        local_b8 = 0;\n        sVar55 = 0;\n        local_84 = (int *)0x0;\n        local_a8 = (size_t *)0x0;\n        local_a4 = 0;\n        pvVar26 = pvVar6;\n        psVar43 = local_74;\n        local_7c = sVar22;\n        local_78 = uVar39;\n        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }\n        if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        DAT_00040bb8 = 0;\n        DAT_00040bbc = 0;\n      }\n    }\n  }" if (parenthesized_expression "((((DAT_00040bc4 != 0) &&\n       (iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0)) &&\n      (DAT_00040bc4 != 0)) &&\n     ((*(int *)(*(int *)((int)param_1 + 4) + 4) == 5 && (iVar31 = FUN_000176d0(), iVar31 != 0))))" ( (binary_expression "(((DAT_00040bc4 != 0) &&\n       (iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0)) &&\n      (DAT_00040bc4 != 0)) &&\n     ((*(int *)(*(int *)((int)param_1 + 4) + 4) == 5 && (iVar31 = FUN_000176d0(), iVar31 != 0)))" (parenthesized_expression "(((DAT_00040bc4 != 0) &&\n       (iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0)) &&\n      (DAT_00040bc4 != 0))" ( (binary_expression "((DAT_00040bc4 != 0) &&\n       (iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0)) &&\n      (DAT_00040bc4 != 0)" (parenthesized_expression "((DAT_00040bc4 != 0) &&\n       (iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0))" ( (binary_expression "(DAT_00040bc4 != 0) &&\n       (iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0)" (parenthesized_expression "(DAT_00040bc4 != 0)" ( (binary_expression "DAT_00040bc4 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0)" ( (comma_expression "iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0" (assignment_expression "iVar12 = 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 "iVar12 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(DAT_00040bc4 != 0)" ( (binary_expression "DAT_00040bc4 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "((*(int *)(*(int *)((int)param_1 + 4) + 4) == 5 && (iVar31 = FUN_000176d0(), iVar31 != 0)))" ( (parenthesized_expression "(*(int *)(*(int *)((int)param_1 + 4) + 4) == 5 && (iVar31 = FUN_000176d0(), iVar31 != 0))" ( (binary_expression "*(int *)(*(int *)((int)param_1 + 4) + 4) == 5 && (iVar31 = FUN_000176d0(), iVar31 != 0)" (binary_expression "*(int *)(*(int *)((int)param_1 + 4) + 4) == 5" (pointer_expression "*(int *)(*(int *)((int)param_1 + 4) + 4)" * (cast_expression "(int *)(*(int *)((int)param_1 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 4)" ( (binary_expression "*(int *)((int)param_1 + 4) + 4" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) )))) == number_literal) && (parenthesized_expression "(iVar31 = FUN_000176d0(), iVar31 != 0)" ( (comma_expression "iVar31 = FUN_000176d0(), iVar31 != 0" (assignment_expression "iVar31 = FUN_000176d0()" identifier = (call_expression "FUN_000176d0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar31 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n    uVar39 = *(uint *)(iVar12 + 0x30);\n    sVar22 = *(size_t *)(iVar12 + 0x2c);\n    if (uVar39 == 0 && sVar22 == 0) {\n      uVar13 = dcgettext(0,"warning: note section is empty",5,sVar22);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n      DAT_00040bc4 = 0;\n    }\n    else {\n      iVar31 = bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22);\n      pvVar6 = DAT_00040bc0;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"warning: could not load note section",5,0);\n        FUN_0002d3a0(0,param_1,iVar12,uVar13);\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n      }\n      else {\n        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);\n        sVar23 = extraout_ECX_01;\n        pvVar26 = param_1;\n        if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar52 = (void *)0x30;\n        sVar53 = sVar23;\n        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);\n        local_74 = (size_t *)xcalloc(uVar13);\n        local_bc = 0;\n        sVar54 = 0;\n        local_b8 = 0;\n        sVar55 = 0;\n        local_84 = (int *)0x0;\n        local_a8 = (size_t *)0x0;\n        local_a4 = 0;\n        pvVar26 = pvVar6;\n        psVar43 = local_74;\n        local_7c = sVar22;\n        local_78 = uVar39;\n        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }\n        if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        DAT_00040bb8 = 0;\n        DAT_00040bbc = 0;\n      }\n    }\n  }" { (expression_statement "uVar39 = *(uint *)(iVar12 + 0x30);" (assignment_expression "uVar39 = *(uint *)(iVar12 + 0x30)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x30)" * (cast_expression "(uint *)(iVar12 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x30)" ( (binary_expression "iVar12 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "sVar22 = *(size_t *)(iVar12 + 0x2c);" (assignment_expression "sVar22 = *(size_t *)(iVar12 + 0x2c)" identifier = (pointer_expression "*(size_t *)(iVar12 + 0x2c)" * (cast_expression "(size_t *)(iVar12 + 0x2c)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2c)" ( (binary_expression "iVar12 + 0x2c" identifier + number_literal) ))))) ;) (if_statement "if (uVar39 == 0 && sVar22 == 0) {\n      uVar13 = dcgettext(0,"warning: note section is empty",5,sVar22);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n      DAT_00040bc4 = 0;\n    }\n    else {\n      iVar31 = bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22);\n      pvVar6 = DAT_00040bc0;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"warning: could not load note section",5,0);\n        FUN_0002d3a0(0,param_1,iVar12,uVar13);\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n      }\n      else {\n        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);\n        sVar23 = extraout_ECX_01;\n        pvVar26 = param_1;\n        if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar52 = (void *)0x30;\n        sVar53 = sVar23;\n        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);\n        local_74 = (size_t *)xcalloc(uVar13);\n        local_bc = 0;\n        sVar54 = 0;\n        local_b8 = 0;\n        sVar55 = 0;\n        local_84 = (int *)0x0;\n        local_a8 = (size_t *)0x0;\n        local_a4 = 0;\n        pvVar26 = pvVar6;\n        psVar43 = local_74;\n        local_7c = sVar22;\n        local_78 = uVar39;\n        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }\n        if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        DAT_00040bb8 = 0;\n        DAT_00040bbc = 0;\n      }\n    }" if (parenthesized_expression "(uVar39 == 0 && sVar22 == 0)" ( (binary_expression "uVar39 == 0 && sVar22 == 0" (binary_expression "uVar39 == 0" identifier == number_literal) && (binary_expression "sVar22 == 0" identifier == number_literal)) )) (compound_statement "{\n      uVar13 = dcgettext(0,"warning: note section is empty",5,sVar22);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n      DAT_00040bc4 = 0;\n    }" { (expression_statement "uVar13 = dcgettext(0,"warning: note section is empty",5,sVar22);" (assignment_expression "uVar13 = dcgettext(0,"warning: note section is empty",5,sVar22)" identifier = (call_expression "dcgettext(0,"warning: note section is empty",5,sVar22)" identifier (argument_list "(0,"warning: note section is empty",5,sVar22)" ( number_literal , (string_literal ""warning: note section is empty"" " string_content ") , number_literal , identifier )))) ;) (expression_statement "FUN_0002d3a0(0,param_1,iVar12,uVar13);" (call_expression "FUN_0002d3a0(0,param_1,iVar12,uVar13)" identifier (argument_list "(0,param_1,iVar12,uVar13)" ( number_literal , identifier , identifier , identifier ))) ;) (expression_statement "DAT_00040bc4 = 0;" (assignment_expression "DAT_00040bc4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      iVar31 = bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22);\n      pvVar6 = DAT_00040bc0;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"warning: could not load note section",5,0);\n        FUN_0002d3a0(0,param_1,iVar12,uVar13);\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n      }\n      else {\n        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);\n        sVar23 = extraout_ECX_01;\n        pvVar26 = param_1;\n        if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar52 = (void *)0x30;\n        sVar53 = sVar23;\n        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);\n        local_74 = (size_t *)xcalloc(uVar13);\n        local_bc = 0;\n        sVar54 = 0;\n        local_b8 = 0;\n        sVar55 = 0;\n        local_84 = (int *)0x0;\n        local_a8 = (size_t *)0x0;\n        local_a4 = 0;\n        pvVar26 = pvVar6;\n        psVar43 = local_74;\n        local_7c = sVar22;\n        local_78 = uVar39;\n        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }\n        if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        DAT_00040bb8 = 0;\n        DAT_00040bbc = 0;\n      }\n    }" else (compound_statement "{\n      iVar31 = bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22);\n      pvVar6 = DAT_00040bc0;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"warning: could not load note section",5,0);\n        FUN_0002d3a0(0,param_1,iVar12,uVar13);\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n      }\n      else {\n        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);\n        sVar23 = extraout_ECX_01;\n        pvVar26 = param_1;\n        if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar52 = (void *)0x30;\n        sVar53 = sVar23;\n        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);\n        local_74 = (size_t *)xcalloc(uVar13);\n        local_bc = 0;\n        sVar54 = 0;\n        local_b8 = 0;\n        sVar55 = 0;\n        local_84 = (int *)0x0;\n        local_a8 = (size_t *)0x0;\n        local_a4 = 0;\n        pvVar26 = pvVar6;\n        psVar43 = local_74;\n        local_7c = sVar22;\n        local_78 = uVar39;\n        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }\n        if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        DAT_00040bb8 = 0;\n        DAT_00040bbc = 0;\n      }\n    }" { (expression_statement "iVar31 = bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22);" (assignment_expression "iVar31 = bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22)" identifier = (call_expression "bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22)" identifier (argument_list "(param_1,iVar12,&DAT_00040bc0,sVar22)" ( identifier , identifier , (pointer_expression "&DAT_00040bc0" & identifier) , identifier )))) ;) (expression_statement "pvVar6 = DAT_00040bc0;" (assignment_expression "pvVar6 = DAT_00040bc0" identifier = identifier) ;) (if_statement "if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"warning: could not load note section",5,0);\n        FUN_0002d3a0(0,param_1,iVar12,uVar13);\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n      }\n      else {\n        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);\n        sVar23 = extraout_ECX_01;\n        pvVar26 = param_1;\n        if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar52 = (void *)0x30;\n        sVar53 = sVar23;\n        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);\n        local_74 = (size_t *)xcalloc(uVar13);\n        local_bc = 0;\n        sVar54 = 0;\n        local_b8 = 0;\n        sVar55 = 0;\n        local_84 = (int *)0x0;\n        local_a8 = (size_t *)0x0;\n        local_a4 = 0;\n        pvVar26 = pvVar6;\n        psVar43 = local_74;\n        local_7c = sVar22;\n        local_78 = uVar39;\n        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }\n        if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        DAT_00040bb8 = 0;\n        DAT_00040bbc = 0;\n      }" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar13 = dcgettext(0,"warning: could not load note section",5,0);\n        FUN_0002d3a0(0,param_1,iVar12,uVar13);\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n      }" { (expression_statement "uVar13 = dcgettext(0,"warning: could not load note section",5,0);" (assignment_expression "uVar13 = dcgettext(0,"warning: could not load note section",5,0)" identifier = (call_expression "dcgettext(0,"warning: could not load note section",5,0)" identifier (argument_list "(0,"warning: could not load note section",5,0)" ( number_literal , (string_literal ""warning: could not load note section"" " string_content ") , number_literal , number_literal )))) ;) (expression_statement "FUN_0002d3a0(0,param_1,iVar12,uVar13);" (call_expression "FUN_0002d3a0(0,param_1,iVar12,uVar13)" identifier (argument_list "(0,param_1,iVar12,uVar13)" ( number_literal , identifier , identifier , identifier ))) ;) (expression_statement "free(DAT_00040bc0);" (call_expression "free(DAT_00040bc0)" identifier (argument_list "(DAT_00040bc0)" ( identifier ))) ;) (expression_statement "DAT_00040bc0 = (void *)0x0;" (assignment_expression "DAT_00040bc0 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00040bc4 = 0;" (assignment_expression "DAT_00040bc4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);\n        sVar23 = extraout_ECX_01;\n        pvVar26 = param_1;\n        if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar52 = (void *)0x30;\n        sVar53 = sVar23;\n        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);\n        local_74 = (size_t *)xcalloc(uVar13);\n        local_bc = 0;\n        sVar54 = 0;\n        local_b8 = 0;\n        sVar55 = 0;\n        local_84 = (int *)0x0;\n        local_a8 = (size_t *)0x0;\n        local_a4 = 0;\n        pvVar26 = pvVar6;\n        psVar43 = local_74;\n        local_7c = sVar22;\n        local_78 = uVar39;\n        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }\n        if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        DAT_00040bb8 = 0;\n        DAT_00040bbc = 0;\n      }" else (compound_statement "{\n        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);\n        sVar23 = extraout_ECX_01;\n        pvVar26 = param_1;\n        if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar52 = (void *)0x30;\n        sVar53 = sVar23;\n        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);\n        local_74 = (size_t *)xcalloc(uVar13);\n        local_bc = 0;\n        sVar54 = 0;\n        local_b8 = 0;\n        sVar55 = 0;\n        local_84 = (int *)0x0;\n        local_a8 = (size_t *)0x0;\n        local_a4 = 0;\n        pvVar26 = pvVar6;\n        psVar43 = local_74;\n        local_7c = sVar22;\n        local_78 = uVar39;\n        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }\n        if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        DAT_00040bb8 = 0;\n        DAT_00040bbc = 0;\n      }" { (expression_statement "iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);" (assignment_expression "iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12)" identifier = (call_expression "bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12)" identifier (argument_list "(param_1,iVar12,iVar12,iVar12)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "sVar23 = extraout_ECX_01;" (assignment_expression "sVar23 = extraout_ECX_01" identifier = identifier) ;) (expression_statement "pvVar26 = param_1;" (assignment_expression "pvVar26 = param_1" identifier = identifier) ;) (if_statement "if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }" if (parenthesized_expression "(0 < iVar31)" ( (binary_expression "0 < iVar31" number_literal < identifier) )) (compound_statement "{\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }" { (expression_statement "pvVar26 = (void *)xmalloc(iVar31);" (assignment_expression "pvVar26 = (void *)xmalloc(iVar31)" identifier = (cast_expression "(void *)xmalloc(iVar31)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar31)" identifier (argument_list "(iVar31)" ( identifier ))))) ;) (expression_statement "iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);" (assignment_expression "iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc)" identifier = (call_expression "bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc)" identifier (argument_list "(param_1,iVar12,pvVar26,DAT_00040bdc)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "free(pvVar26);" (call_expression "free(pvVar26)" identifier (argument_list "(pvVar26)" ( identifier ))) ;) (expression_statement "sVar23 = extraout_ECX_02;" (assignment_expression "sVar23 = extraout_ECX_02" identifier = identifier) ;) (if_statement "if (iVar31 == 0) goto LAB_0001ab09;" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001ab09;" goto statement_identifier ;)) (expression_statement "local_74 = (size_t *)0x0;" (assignment_expression "local_74 = (size_t *)0x0" identifier = (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0001ae41;" goto statement_identifier ;) })) (labeled_statement "LAB_0001ab09:\n        pvVar52 = (void *)0x30;" statement_identifier : (expression_statement "pvVar52 = (void *)0x30;" (assignment_expression "pvVar52 = (void *)0x30" identifier = (cast_expression "(void *)0x30" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "sVar53 = sVar23;" (assignment_expression "sVar53 = sVar23" identifier = identifier) ;) (expression_statement "uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);" (assignment_expression "uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23)" identifier = (call_expression "FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23)" identifier (argument_list "(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23)" ( identifier , identifier , number_literal , number_literal , identifier , number_literal , identifier , identifier )))) ;) (expression_statement "local_74 = (size_t *)xcalloc(uVar13);" (assignment_expression "local_74 = (size_t *)xcalloc(uVar13)" identifier = (cast_expression "(size_t *)xcalloc(uVar13)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xcalloc(uVar13)" identifier (argument_list "(uVar13)" ( identifier ))))) ;) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) (expression_statement "sVar54 = 0;" (assignment_expression "sVar54 = 0" identifier = number_literal) ;) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "sVar55 = 0;" (assignment_expression "sVar55 = 0" identifier = number_literal) ;) (expression_statement "local_84 = (int *)0x0;" (assignment_expression "local_84 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_a8 = (size_t *)0x0;" (assignment_expression "local_a8 = (size_t *)0x0" identifier = (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" identifier = number_literal) ;) (expression_statement "pvVar26 = pvVar6;" (assignment_expression "pvVar26 = pvVar6" identifier = identifier) ;) (expression_statement "psVar43 = local_74;" (assignment_expression "psVar43 = local_74" identifier = identifier) ;) (expression_statement "local_7c = sVar22;" (assignment_expression "local_7c = sVar22" identifier = identifier) ;) (expression_statement "local_78 = uVar39;" (assignment_expression "local_78 = uVar39" identifier = identifier) ;) (while_statement "while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }" while (parenthesized_expression "(local_78 != 0 || -local_78 < (uint)(0xb < local_7c))" ( (binary_expression "local_78 != 0 || -local_78 < (uint)(0xb < local_7c)" (binary_expression "local_78 != 0" identifier != number_literal) || (binary_expression "-local_78 < (uint)(0xb < local_7c)" (unary_expression "-local_78" - identifier) < (call_expression "(uint)(0xb < local_7c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xb < local_7c)" ( (binary_expression "0xb < local_7c" number_literal < identifier) ))))) )) (compound_statement "{\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }" { (expression_statement "iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);" (assignment_expression "iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26)" identifier = (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x28))" ( (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x28)" * (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x28)" * (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x28)" ( (binary_expression "*(int *)((int)param_1 + 4) + 0x28" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) )) (argument_list "(pvVar26)" ( identifier )))) ;) (expression_statement "uVar17 = iVar31 + 3U & 0xfffffffc;" (assignment_expression "uVar17 = iVar31 + 3U & 0xfffffffc" identifier = (binary_expression "iVar31 + 3U & 0xfffffffc" (binary_expression "iVar31 + 3U" identifier + number_literal) & number_literal)) ;) (expression_statement "*psVar43 = uVar17;" (assignment_expression "*psVar43 = uVar17" (pointer_expression "*psVar43" * identifier) = identifier) ;) (expression_statement "iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);" (assignment_expression "iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4)" identifier = (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x28))" ( (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x28)" * (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x28)" * (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x28)" ( (binary_expression "*(int *)((int)param_1 + 4) + 0x28" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) )) (argument_list "((int)pvVar26 + 4)" ( (binary_expression "(int)pvVar26 + 4" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar27 = iVar31 + 3U & 0xfffffffc;" (assignment_expression "uVar27 = iVar31 + 3U & 0xfffffffc" identifier = (binary_expression "iVar31 + 3U & 0xfffffffc" (binary_expression "iVar31 + 3U" identifier + number_literal) & number_literal)) ;) (expression_statement "psVar43[1] = uVar27;" (assignment_expression "psVar43[1] = uVar27" (subscript_expression "psVar43[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);" (assignment_expression "uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8)" identifier = (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x28))" ( (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x28)" * (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x28)" * (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x28)" ( (binary_expression "*(int *)((int)param_1 + 4) + 0x28" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) )) (argument_list "((int)pvVar26 + 8)" ( (binary_expression "(int)pvVar26 + 8" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "sVar30 = (size_t)uVar49;" (assignment_expression "sVar30 = (size_t)uVar49" identifier = (cast_expression "(size_t)uVar49" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (expression_statement "psVar43[2] = sVar30;" (assignment_expression "psVar43[2] = sVar30" (subscript_expression "psVar43[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }" if (parenthesized_expression "(1 < sVar30 - 0x100)" ( (binary_expression "1 < sVar30 - 0x100" number_literal < (binary_expression "sVar30 - 0x100" identifier - number_literal)) )) (compound_statement "{\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }" { (expression_statement "iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));" (assignment_expression "iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20))" identifier = (call_expression "dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20))" identifier (argument_list "(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20))" ( number_literal , (string_literal ""corrupt GNU build attribute note: wrong note type"" " string_content ") , number_literal , (cast_expression "(int)((ulonglong)uVar49 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar49 >> 0x20)" ( (binary_expression "(ulonglong)uVar49 >> 0x20" (cast_expression "(ulonglong)uVar49" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) )))) ;) (goto_statement "goto LAB_0001ae12;" goto statement_identifier ;) })) (expression_statement "uVar37 = uVar17 + 0xc + uVar27;" (assignment_expression "uVar37 = uVar17 + 0xc + uVar27" identifier = (binary_expression "uVar17 + 0xc + uVar27" (binary_expression "uVar17 + 0xc" identifier + number_literal) + identifier)) ;) (expression_statement "iVar31 = local_78 - (local_7c < uVar37);" (assignment_expression "iVar31 = local_78 - (local_7c < uVar37)" identifier = (binary_expression "local_78 - (local_7c < uVar37)" identifier - (parenthesized_expression "(local_7c < uVar37)" ( (binary_expression "local_7c < uVar37" identifier < identifier) )))) ;) (if_statement "if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }" if (parenthesized_expression "(local_78 < (local_7c < uVar37))" ( (binary_expression "local_78 < (local_7c < uVar37)" identifier < (parenthesized_expression "(local_7c < uVar37)" ( (binary_expression "local_7c < uVar37" identifier < identifier) ))) )) (compound_statement "{\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }" { (expression_statement "iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);" (assignment_expression "iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31)" identifier = (call_expression "dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31)" identifier (argument_list "(0,"corrupt GNU build attribute note: note too big",5,iVar31)" ( number_literal , (string_literal ""corrupt GNU build attribute note: note too big"" " string_content ") , number_literal , identifier )))) ;) (goto_statement "goto LAB_0001ae12;" goto statement_identifier ;) })) (if_statement "if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }" if (parenthesized_expression "(uVar17 < 2)" ( (binary_expression "uVar17 < 2" identifier < number_literal) )) (compound_statement "{\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }" { (expression_statement "iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);" (assignment_expression "iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31)" identifier = (call_expression "dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31)" identifier (argument_list "(0,"corrupt GNU build attribute note: name too small",5,iVar31)" ( number_literal , (string_literal ""corrupt GNU build attribute note: name too small"" " string_content ") , number_literal , identifier )))) ;) (goto_statement "goto LAB_0001ae12;" goto statement_identifier ;) })) (expression_statement "psVar43[3] = (int)pvVar26 + 0xc;" (assignment_expression "psVar43[3] = (int)pvVar26 + 0xc" (subscript_expression "psVar43[3]" identifier [ number_literal ]) = (binary_expression "(int)pvVar26 + 0xc" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "sVar28 = (int)pvVar26 + uVar17 + 0xc;" (assignment_expression "sVar28 = (int)pvVar26 + uVar17 + 0xc" identifier = (binary_expression "(int)pvVar26 + uVar17 + 0xc" (binary_expression "(int)pvVar26 + uVar17" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal)) ;) (expression_statement "bVar46 = local_7c < uVar37;" (assignment_expression "bVar46 = local_7c < uVar37" identifier = (binary_expression "local_7c < uVar37" identifier < identifier)) ;) (expression_statement "local_7c = local_7c - uVar37;" (assignment_expression "local_7c = local_7c - uVar37" identifier = (binary_expression "local_7c - uVar37" identifier - identifier)) ;) (expression_statement "local_78 = local_78 - bVar46;" (assignment_expression "local_78 = local_78 - bVar46" identifier = (binary_expression "local_78 - bVar46" identifier - identifier)) ;) (expression_statement "psVar43[4] = sVar28;" (assignment_expression "psVar43[4] = sVar28" (subscript_expression "psVar43[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar3 = *(byte *)((int)pvVar26 + 0xc);" (assignment_expression "bVar3 = *(byte *)((int)pvVar26 + 0xc)" identifier = (pointer_expression "*(byte *)((int)pvVar26 + 0xc)" * (cast_expression "(byte *)((int)pvVar26 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar26 + 0xc)" ( (binary_expression "(int)pvVar26 + 0xc" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar44 = (uint)bVar3;" (assignment_expression "uVar44 = (uint)bVar3" identifier = (cast_expression "(uint)bVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }" if (parenthesized_expression "(bVar3 == 0x24)" ( (binary_expression "bVar3 == 0x24" identifier == number_literal) )) (compound_statement "{\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }" { (if_statement "if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }" if (parenthesized_expression "((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))" ( (binary_expression "(*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1')" (parenthesized_expression "(*(char *)((int)pvVar26 + 0xd) == '\x01')" ( (binary_expression "*(char *)((int)pvVar26 + 0xd) == '\x01'" (pointer_expression "*(char *)((int)pvVar26 + 0xd)" * (cast_expression "(char *)((int)pvVar26 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar26 + 0xd)" ( (binary_expression "(int)pvVar26 + 0xd" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\x01'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)((int)pvVar26 + 0xe) == '1')" ( (binary_expression "*(char *)((int)pvVar26 + 0xe) == '1'" (pointer_expression "*(char *)((int)pvVar26 + 0xe)" * (cast_expression "(char *)((int)pvVar26 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar26 + 0xe)" ( (binary_expression "(int)pvVar26 + 0xe" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'1'" ' character ')) ))) )) (compound_statement "{\n              local_a4 = local_a4 + 1;\n            }" { (expression_statement "local_a4 = local_a4 + 1;" (assignment_expression "local_a4 = local_a4 + 1" identifier = (binary_expression "local_a4 + 1" identifier + number_literal)) ;) })) }) (else_clause "else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }" else (if_statement "if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }" if (parenthesized_expression "((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01'))))" ( (binary_expression "(((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))" (parenthesized_expression "(((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A'))" ( (binary_expression "((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')" (parenthesized_expression "((4 < uVar17) && (bVar3 == 0x47))" ( (binary_expression "(4 < uVar17) && (bVar3 == 0x47)" (parenthesized_expression "(4 < uVar17)" ( (binary_expression "4 < uVar17" number_literal < identifier) )) && (parenthesized_expression "(bVar3 == 0x47)" ( (binary_expression "bVar3 == 0x47" identifier == number_literal) ))) )) && (parenthesized_expression "(*(char *)((int)pvVar26 + 0xd) == 'A')" ( (binary_expression "*(char *)((int)pvVar26 + 0xd) == 'A'" (pointer_expression "*(char *)((int)pvVar26 + 0xd)" * (cast_expression "(char *)((int)pvVar26 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar26 + 0xd)" ( (binary_expression "(int)pvVar26 + 0xd" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'A'" ' character ')) ))) )) && (parenthesized_expression "((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))" ( (parenthesized_expression "(*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01'))" ( (binary_expression "*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')" (binary_expression "*(char *)((int)pvVar26 + 0xe) == '$'" (pointer_expression "*(char *)((int)pvVar26 + 0xe)" * (cast_expression "(char *)((int)pvVar26 + 0xe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar26 + 0xe)" ( (binary_expression "(int)pvVar26 + 0xe" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'$'" ' character ')) && (parenthesized_expression "(*(char *)((int)pvVar26 + 0xf) == '\x01')" ( (binary_expression "*(char *)((int)pvVar26 + 0xf) == '\x01'" (pointer_expression "*(char *)((int)pvVar26 + 0xf)" * (cast_expression "(char *)((int)pvVar26 + 0xf)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar26 + 0xf)" ( (binary_expression "(int)pvVar26 + 0xf" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\x01'" ' escape_sequence ')) ))) )) ))) )) (compound_statement "{\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }" { (expression_statement "bVar3 = *(byte *)((int)pvVar26 + 0x10);" (assignment_expression "bVar3 = *(byte *)((int)pvVar26 + 0x10)" identifier = (pointer_expression "*(byte *)((int)pvVar26 + 0x10)" * (cast_expression "(byte *)((int)pvVar26 + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar26 + 0x10)" ( (binary_expression "(int)pvVar26 + 0x10" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar44 = (uint)bVar3;" (assignment_expression "uVar44 = (uint)bVar3" identifier = (cast_expression "(uint)bVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }" if (parenthesized_expression "(bVar3 == 0x32)" ( (binary_expression "bVar3 == 0x32" identifier == number_literal) )) (compound_statement "{\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }" { (expression_statement "local_a8 = (size_t *)((int)local_a8 + 1);" (assignment_expression "local_a8 = (size_t *)((int)local_a8 + 1)" identifier = (cast_expression "(size_t *)((int)local_a8 + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + 1)" ( (binary_expression "(int)local_a8 + 1" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) (else_clause "else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }" else (compound_statement "{\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }" { (if_statement "if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }" if (parenthesized_expression "(bVar3 != 0x33)" ( (binary_expression "bVar3 != 0x33" identifier != number_literal) )) (compound_statement "{\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }" { (expression_statement "iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);" (assignment_expression "iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44)" identifier = (call_expression "dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44)" identifier (argument_list "(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44)" ( number_literal , (string_literal ""corrupt GNU build attribute note: unsupported version"" " string_content ") , number_literal , identifier )))) ;) (goto_statement "goto LAB_0001ae12;" goto statement_identifier ;) })) (expression_statement "local_84 = (int *)((int)local_84 + 1);" (assignment_expression "local_84 = (int *)((int)local_84 + 1)" identifier = (cast_expression "(int *)((int)local_84 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_84 + 1)" ( (binary_expression "(int)local_84 + 1" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) })))) (if_statement "if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }" if (parenthesized_expression "(uVar27 == 4)" ( (binary_expression "uVar27 == 4" identifier == number_literal) )) (compound_statement "{\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }" { (expression_statement "lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);" (assignment_expression "lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28)" identifier = (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x28))" ( (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x28)" * (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x28)" * (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x28)" ( (binary_expression "*(int *)((int)param_1 + 4) + 0x28" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) )) (argument_list "(sVar28)" ( identifier )))) ;) (labeled_statement "LAB_0001ade8:\n            lVar51 = -1;" statement_identifier : (expression_statement "lVar51 = -1;" (assignment_expression "lVar51 = -1" identifier = number_literal) ;)) }) (else_clause "else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }" else (if_statement "if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }" if (parenthesized_expression "(uVar27 < 5)" ( (binary_expression "uVar27 < 5" identifier < number_literal) )) (compound_statement "{\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }" { (if_statement "if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }" if (parenthesized_expression "(uVar27 != 0)" ( (binary_expression "uVar27 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }" { (labeled_statement "LAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );" statement_identifier : (expression_statement "iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );" (assignment_expression "iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                )" identifier = (call_expression "dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                )" identifier (argument_list "(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                )" ( number_literal , (string_literal ""corrupt GNU build attribute note: bad description size"" " string_content ") , number_literal , identifier )))) ;)) (goto_statement "goto LAB_0001ae12;" goto statement_identifier ;) })) (expression_statement "lVar51 = 0;" (assignment_expression "lVar51 = 0" identifier = number_literal) ;) (expression_statement "lVar50 = 0;" (assignment_expression "lVar50 = 0" identifier = number_literal) ;) }) (else_clause "else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }" else (if_statement "if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }" if (parenthesized_expression "(uVar27 == 8)" ( (binary_expression "uVar27 == 8" identifier == number_literal) )) (compound_statement "{\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }" { (expression_statement "iVar31 = *(int *)((int)param_1 + 4);" (assignment_expression "iVar31 = *(int *)((int)param_1 + 4)" identifier = (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }" if (parenthesized_expression "((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02'))" ( (binary_expression "(*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')" (parenthesized_expression "(*(int *)(iVar31 + 4) == 5)" ( (binary_expression "*(int *)(iVar31 + 4) == 5" (pointer_expression "*(int *)(iVar31 + 4)" * (cast_expression "(int *)(iVar31 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 4)" ( (binary_expression "iVar31 + 4" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')" ( (binary_expression "*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02'" (pointer_expression "*(char *)(*(int *)((int)param_1 + 0xa0) + 4)" * (cast_expression "(char *)(*(int *)((int)param_1 + 0xa0) + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)param_1 + 0xa0) + 4)" ( (binary_expression "*(int *)((int)param_1 + 0xa0) + 4" (pointer_expression "*(int *)((int)param_1 + 0xa0)" * (cast_expression "(int *)((int)param_1 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0xa0)" ( (binary_expression "(int)param_1 + 0xa0" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) )))) == (char_literal "'\x02'" ' escape_sequence ')) ))) )) (compound_statement "{\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }" { (expression_statement "lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);" (assignment_expression "lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28)" identifier = (call_expression "(**(code **)(iVar31 + 0x1c))(sVar28)" (parenthesized_expression "(**(code **)(iVar31 + 0x1c))" ( (pointer_expression "**(code **)(iVar31 + 0x1c)" * (pointer_expression "*(code **)(iVar31 + 0x1c)" * (cast_expression "(code **)(iVar31 + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar31 + 0x1c)" ( (binary_expression "iVar31 + 0x1c" identifier + number_literal) ))))) )) (argument_list "(sVar28)" ( identifier )))) ;) (goto_statement "goto LAB_0001ade8;" goto statement_identifier ;) })) (expression_statement "lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);" (assignment_expression "lVar50 = (**(code **)(iVar31 + 0x28))(sVar28)" identifier = (call_expression "(**(code **)(iVar31 + 0x28))(sVar28)" (parenthesized_expression "(**(code **)(iVar31 + 0x28))" ( (pointer_expression "**(code **)(iVar31 + 0x28)" * (pointer_expression "*(code **)(iVar31 + 0x28)" * (cast_expression "(code **)(iVar31 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar31 + 0x28)" ( (binary_expression "iVar31 + 0x28" identifier + number_literal) ))))) )) (argument_list "(sVar28)" ( identifier )))) ;) (expression_statement "lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);" (assignment_expression "lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4)" identifier = (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x28))" ( (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x28)" * (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x28)" * (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x28)" ( (binary_expression "*(int *)((int)param_1 + 4) + 0x28" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) )) (argument_list "(sVar28 + 4)" ( (binary_expression "sVar28 + 4" identifier + number_literal) )))) ;) }) (else_clause "else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }" else (compound_statement "{\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }" { (expression_statement "uVar44 = uVar27;" (assignment_expression "uVar44 = uVar27" identifier = identifier) ;) (if_statement "if (uVar27 != 0x10) goto LAB_0001ae8d;" if (parenthesized_expression "(uVar27 != 0x10)" ( (binary_expression "uVar27 != 0x10" identifier != number_literal) )) (goto_statement "goto LAB_0001ae8d;" goto statement_identifier ;)) (expression_statement "lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);" (assignment_expression "lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28)" identifier = (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x1c))" ( (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x1c)" * (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x1c)" * (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x1c)" ( (binary_expression "*(int *)((int)param_1 + 4) + 0x1c" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) )) (argument_list "(sVar28)" ( identifier )))) ;) (expression_statement "lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);" (assignment_expression "lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8)" identifier = (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x1c))" ( (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x1c)" * (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x1c)" * (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x1c)" ( (binary_expression "*(int *)((int)param_1 + 4) + 0x1c" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) )) (argument_list "(sVar28 + 8)" ( (binary_expression "sVar28 + 8" identifier + number_literal) )))) ;) }))))))) (if_statement "if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }" if (parenthesized_expression "(sVar30 == 0x100)" ( (binary_expression "sVar30 == 0x100" identifier == number_literal) )) (compound_statement "{\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }" { (expression_statement "sVar30 = (size_t)lVar50;" (assignment_expression "sVar30 = (size_t)lVar50" identifier = (cast_expression "(size_t)lVar50" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (if_statement "if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }" if (parenthesized_expression "(lVar50 == 0)" ( (binary_expression "lVar50 == 0" identifier == number_literal) )) (compound_statement "{\n              sVar30 = local_b8;\n            }" { (expression_statement "sVar30 = local_b8;" (assignment_expression "sVar30 = local_b8" identifier = identifier) ;) })) (expression_statement "sVar28 = (size_t)lVar51;" (assignment_expression "sVar28 = (size_t)lVar51" identifier = (cast_expression "(size_t)lVar51" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (if_statement "if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }" if (parenthesized_expression "(lVar51 == 0)" ( (binary_expression "lVar51 == 0" identifier == number_literal) )) (compound_statement "{\n              sVar28 = local_bc;\n            }" { (expression_statement "sVar28 = local_bc;" (assignment_expression "sVar28 = local_bc" identifier = identifier) ;) })) (expression_statement "psVar43[8] = 0;" (assignment_expression "psVar43[8] = 0" (subscript_expression "psVar43[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "psVar43[7] = sVar30;" (assignment_expression "psVar43[7] = sVar30" (subscript_expression "psVar43[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "psVar43[9] = sVar28;" (assignment_expression "psVar43[9] = sVar28" (subscript_expression "psVar43[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "psVar43[10] = 0;" (assignment_expression "psVar43[10] = 0" (subscript_expression "psVar43[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_bc = sVar28;" (assignment_expression "local_bc = sVar28" identifier = identifier) ;) (expression_statement "local_b8 = sVar30;" (assignment_expression "local_b8 = sVar30" identifier = identifier) ;) }) (else_clause "else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }" else (compound_statement "{\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }" { (expression_statement "sVar30 = (size_t)lVar50;" (assignment_expression "sVar30 = (size_t)lVar50" identifier = (cast_expression "(size_t)lVar50" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (if_statement "if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }" if (parenthesized_expression "(lVar50 == 0)" ( (binary_expression "lVar50 == 0" identifier == number_literal) )) (compound_statement "{\n              sVar30 = sVar55;\n            }" { (expression_statement "sVar30 = sVar55;" (assignment_expression "sVar30 = sVar55" identifier = identifier) ;) })) (expression_statement "sVar55 = (size_t)lVar51;" (assignment_expression "sVar55 = (size_t)lVar51" identifier = (cast_expression "(size_t)lVar51" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (if_statement "if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }" if (parenthesized_expression "(lVar51 == 0)" ( (binary_expression "lVar51 == 0" identifier == number_literal) )) (compound_statement "{\n              sVar55 = sVar54;\n            }" { (expression_statement "sVar55 = sVar54;" (assignment_expression "sVar55 = sVar54" identifier = identifier) ;) })) (expression_statement "psVar43[8] = 0;" (assignment_expression "psVar43[8] = 0" (subscript_expression "psVar43[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "psVar43[7] = sVar30;" (assignment_expression "psVar43[7] = sVar30" (subscript_expression "psVar43[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "psVar43[9] = sVar55;" (assignment_expression "psVar43[9] = sVar55" (subscript_expression "psVar43[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "psVar43[10] = 0;" (assignment_expression "psVar43[10] = 0" (subscript_expression "psVar43[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "sVar54 = sVar55;" (assignment_expression "sVar54 = sVar55" identifier = identifier) ;) (expression_statement "sVar55 = sVar30;" (assignment_expression "sVar55 = sVar30" identifier = identifier) ;) }))) (if_statement "if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }" if (parenthesized_expression "(*(char *)((psVar43[3] - 1) + *psVar43) != '\0')" ( (binary_expression "*(char *)((psVar43[3] - 1) + *psVar43) != '\0'" (pointer_expression "*(char *)((psVar43[3] - 1) + *psVar43)" * (cast_expression "(char *)((psVar43[3] - 1) + *psVar43)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((psVar43[3] - 1) + *psVar43)" ( (binary_expression "(psVar43[3] - 1) + *psVar43" (parenthesized_expression "(psVar43[3] - 1)" ( (binary_expression "psVar43[3] - 1" (subscript_expression "psVar43[3]" identifier [ number_literal ]) - number_literal) )) + (pointer_expression "*psVar43" * identifier)) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }" { (expression_statement "iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);" (assignment_expression "iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43)" identifier = (call_expression "dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43)" identifier (argument_list "(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43)" ( number_literal , (string_literal ""corrupt GNU build attribute note: name not NUL terminated"" " string_content ") , number_literal , (pointer_expression "*psVar43" * identifier) )))) ;) (goto_statement "goto LAB_0001ae12;" goto statement_identifier ;) })) (expression_statement "psVar43 = psVar43 + 0xc;" (assignment_expression "psVar43 = psVar43 + 0xc" identifier = (binary_expression "psVar43 + 0xc" identifier + number_literal)) ;) (expression_statement "pvVar26 = (void *)(uVar37 + (int)pvVar26);" (assignment_expression "pvVar26 = (void *)(uVar37 + (int)pvVar26)" identifier = (cast_expression "(void *)(uVar37 + (int)pvVar26)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar37 + (int)pvVar26)" ( (binary_expression "uVar37 + (int)pvVar26" identifier + (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (if_statement "if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }" if (parenthesized_expression "(local_78 == 0 && local_7c == 0)" ( (binary_expression "local_78 == 0 && local_7c == 0" (binary_expression "local_78 == 0" identifier == number_literal) && (binary_expression "local_7c == 0" identifier == number_literal)) )) (compound_statement "{\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }" { (if_statement "if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }" if (parenthesized_expression "(local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0))" ( (binary_expression "local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)" (binary_expression "local_a4 == 0" identifier == number_literal) && (parenthesized_expression "(local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)" ( (binary_expression "local_a8 == (size_t *)0x0 && local_84 == (int *)0x0" (binary_expression "local_a8 == (size_t *)0x0" identifier == (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "local_84 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }" { (expression_statement "iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));" (assignment_expression "iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c))" identifier = (call_expression "dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c))" identifier (argument_list "(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c))" ( number_literal , (string_literal ""bad GNU build attribute notes: no known versions detected"" " string_content ") , number_literal , (binary_expression "-local_78 - (uint)(0xb < local_7c)" (unary_expression "-local_78" - identifier) - (call_expression "(uint)(0xb < local_7c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xb < local_7c)" ( (binary_expression "0xb < local_7c" number_literal < identifier) )))) )))) ;) (goto_statement "goto LAB_0001ae12;" goto statement_identifier ;) })) (if_statement "if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }" if (parenthesized_expression "(((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0))))" ( (binary_expression "((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))" (parenthesized_expression "((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0))" ( (binary_expression "(local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)" (parenthesized_expression "(local_a4 != 0)" ( (binary_expression "local_a4 != 0" identifier != number_literal) )) && (parenthesized_expression "(local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)" ( (binary_expression "local_a8 != (size_t *)0x0 || local_84 != (int *)0x0" (binary_expression "local_a8 != (size_t *)0x0" identifier != (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "local_84 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) || (parenthesized_expression "((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))" ( (parenthesized_expression "(local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0))" ( (binary_expression "local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)" (binary_expression "local_a8 != (size_t *)0x0" identifier != (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(local_84 != (int *)0x0)" ( (binary_expression "local_84 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) ))) )) (compound_statement "{\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }" { (expression_statement "iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);" (assignment_expression "iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43)" identifier = (call_expression "dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43)" identifier (argument_list "(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43)" ( number_literal , (string_literal ""bad GNU build attribute notes: multiple different versions"" " string_content ") , number_literal , identifier )))) ;) (goto_statement "goto LAB_0001ae12;" goto statement_identifier ;) })) (if_statement "if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;" if (parenthesized_expression "((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))" ( (binary_expression "(local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1)" (parenthesized_expression "(local_a4 == 1 || local_a8 == (size_t *)0x1)" ( (binary_expression "local_a4 == 1 || local_a8 == (size_t *)0x1" (binary_expression "local_a4 == 1" identifier == number_literal) || (binary_expression "local_a8 == (size_t *)0x1" identifier == (cast_expression "(size_t *)0x1" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) || (parenthesized_expression "(local_84 == (int *)0x1)" ( (binary_expression "local_84 == (int *)0x1" identifier == (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_0001ae41;" goto statement_identifier ;)) (expression_statement "uVar17 = -(uint)(local_a4 == 0) & 2;" (assignment_expression "uVar17 = -(uint)(local_a4 == 0) & 2" identifier = (binary_expression "-(uint)(local_a4 == 0) & 2" (unary_expression "-(uint)(local_a4 == 0)" - (call_expression "(uint)(local_a4 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_a4 == 0)" ( (binary_expression "local_a4 == 0" identifier == number_literal) )))) & number_literal)) ;) (expression_statement "iVar31 = uVar17 + 1;" (assignment_expression "iVar31 = uVar17 + 1" identifier = (binary_expression "uVar17 + 1" identifier + number_literal)) ;) (if_statement "if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }" if (parenthesized_expression "(*(char *)(local_74[3] + iVar31) != '\x01')" ( (binary_expression "*(char *)(local_74[3] + iVar31) != '\x01'" (pointer_expression "*(char *)(local_74[3] + iVar31)" * (cast_expression "(char *)(local_74[3] + iVar31)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_74[3] + iVar31)" ( (binary_expression "local_74[3] + iVar31" (subscript_expression "local_74[3]" identifier [ number_literal ]) + identifier) )))) != (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }" { (expression_statement "iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);" (assignment_expression "iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31)" identifier = (call_expression "dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31)" identifier (argument_list "(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31)" ( number_literal , (string_literal ""bad GNU build attribute notes: first note not version note"" " string_content ") , number_literal , identifier )))) ;) (goto_statement "goto LAB_0001ae12;" goto statement_identifier ;) })) (expression_statement "bVar46 = false;" (assignment_expression "bVar46 = false" identifier = false) ;) (expression_statement "iVar18 = uVar17 + 2;" (assignment_expression "iVar18 = uVar17 + 2" identifier = (binary_expression "uVar17 + 2" identifier + number_literal)) ;) (expression_statement "psVar38 = local_74;" (assignment_expression "psVar38 = local_74" identifier = identifier) ;) (labeled_statement "LAB_0001afd1:\n          psVar9 = psVar38;" statement_identifier : (expression_statement "psVar9 = psVar38;" (assignment_expression "psVar9 = psVar38" identifier = identifier) ;)) (expression_statement "local_6c = psVar9 + 0xc;" (assignment_expression "local_6c = psVar9 + 0xc" identifier = (binary_expression "psVar9 + 0xc" identifier + number_literal)) ;) (expression_statement "psVar38 = local_6c;" (assignment_expression "psVar38 = local_6c" identifier = identifier) ;) (if_statement "if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }" if (parenthesized_expression "(local_6c < psVar43)" ( (binary_expression "local_6c < psVar43" identifier < identifier) )) (compound_statement "{\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }" { (if_statement "if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }" if (parenthesized_expression "(psVar9[0xe] == 0x100)" ( (binary_expression "psVar9[0xe] == 0x100" (subscript_expression "psVar9[0xe]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }" { (expression_statement "local_a8 = (size_t *)0x0;" (assignment_expression "local_a8 = (size_t *)0x0" identifier = (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pvVar26 = (void *)psVar9[0xf];" (assignment_expression "pvVar26 = (void *)psVar9[0xf]" identifier = (cast_expression "(void *)psVar9[0xf]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "psVar9[0xf]" identifier [ number_literal ]))) ;) (expression_statement "local_6c = psVar9;" (assignment_expression "local_6c = psVar9" identifier = identifier) ;) (while_statement "while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }" while (parenthesized_expression "(psVar10 = local_6c, local_74 <= local_6c)" ( (comma_expression "psVar10 = local_6c, local_74 <= local_6c" (assignment_expression "psVar10 = local_6c" identifier = identifier) , (binary_expression "local_74 <= local_6c" identifier <= identifier)) )) (compound_statement "{\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }" { (expression_statement "pvVar32 = (void *)local_6c[3];" (assignment_expression "pvVar32 = (void *)local_6c[3]" identifier = (cast_expression "(void *)local_6c[3]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_6c[3]" identifier [ number_literal ]))) ;) (expression_statement "psVar11 = local_a8;" (assignment_expression "psVar11 = local_a8" identifier = identifier) ;) (if_statement "if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }" if (parenthesized_expression "((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100))))" ( (binary_expression "(((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))" (parenthesized_expression "(((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101))" ( (binary_expression "((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)" (parenthesized_expression "((local_a8 != (size_t *)0x0) || (local_6c[1] == 0))" ( (binary_expression "(local_a8 != (size_t *)0x0) || (local_6c[1] == 0)" (parenthesized_expression "(local_a8 != (size_t *)0x0)" ( (binary_expression "local_a8 != (size_t *)0x0" identifier != (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(local_6c[1] == 0)" ( (binary_expression "local_6c[1] == 0" (subscript_expression "local_6c[1]" identifier [ number_literal ]) == number_literal) ))) )) || (parenthesized_expression "(psVar11 = local_6c, local_6c[2] != 0x101)" ( (comma_expression "psVar11 = local_6c, local_6c[2] != 0x101" (assignment_expression "psVar11 = local_6c" identifier = identifier) , (binary_expression "local_6c[2] != 0x101" (subscript_expression "local_6c[2]" identifier [ number_literal ]) != number_literal)) ))) )) && (parenthesized_expression "((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))" ( (parenthesized_expression "(local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100))" ( (comma_expression "local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)" (assignment_expression "local_a8 = psVar11" identifier = identifier) , (binary_expression "*(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)" (binary_expression "*(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31)" (pointer_expression "*(char *)((int)pvVar26 + iVar31)" * (cast_expression "(char *)((int)pvVar26 + iVar31)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar26 + iVar31)" ( (binary_expression "(int)pvVar26 + iVar31" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) == (pointer_expression "*(char *)((int)pvVar32 + iVar31)" * (cast_expression "(char *)((int)pvVar32 + iVar31)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar32 + iVar31)" ( (binary_expression "(int)pvVar32 + iVar31" (cast_expression "(int)pvVar32" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) && (parenthesized_expression "(local_6c[2] == 0x100)" ( (binary_expression "local_6c[2] == 0x100" (subscript_expression "local_6c[2]" identifier [ number_literal ]) == number_literal) )))) )) ))) )) (compound_statement "{\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }" { (expression_statement "sVar54 = *psVar38;" (assignment_expression "sVar54 = *psVar38" identifier = (pointer_expression "*psVar38" * identifier)) ;) (if_statement "if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }" if (parenthesized_expression "(*(char *)((int)pvVar32 + iVar31) != '\x04')" ( (binary_expression "*(char *)((int)pvVar32 + iVar31) != '\x04'" (pointer_expression "*(char *)((int)pvVar32 + iVar31)" * (cast_expression "(char *)((int)pvVar32 + iVar31)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar32 + iVar31)" ( (binary_expression "(int)pvVar32 + iVar31" (cast_expression "(int)pvVar32" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) != (char_literal "'\x04'" ' escape_sequence ')) )) (compound_statement "{\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }" { (expression_statement "sVar55 = *local_6c;" (assignment_expression "sVar55 = *local_6c" identifier = (pointer_expression "*local_6c" * identifier)) ;) (if_statement "if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }" if (parenthesized_expression "((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0))" ( (binary_expression "(sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)" (parenthesized_expression "(sVar55 == sVar54)" ( (binary_expression "sVar55 == sVar54" identifier == identifier) )) && (parenthesized_expression "(iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)" ( (comma_expression "iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0" (assignment_expression "iVar21 = memcmp(pvVar32,pvVar26,sVar55)" identifier = (call_expression "memcmp(pvVar32,pvVar26,sVar55)" identifier (argument_list "(pvVar32,pvVar26,sVar55)" ( identifier , identifier , identifier )))) , (comma_expression "pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0" (assignment_expression "pvVar52 = pvVar26" identifier = identifier) , (comma_expression "sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0" (assignment_expression "sVar23 = sVar55" identifier = identifier) , (comma_expression "sVar53 = sVar54, iVar21 == 0" (assignment_expression "sVar53 = sVar54" identifier = identifier) , (binary_expression "iVar21 == 0" identifier == number_literal))))) ))) )) (compound_statement "{\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }" { (expression_statement "uVar17 = local_6c[10];" (assignment_expression "uVar17 = local_6c[10]" identifier = (subscript_expression "local_6c[10]" identifier [ number_literal ])) ;) (expression_statement "uVar27 = local_6c[9];" (assignment_expression "uVar27 = local_6c[9]" identifier = (subscript_expression "local_6c[9]" identifier [ number_literal ])) ;) (if_statement "if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }" if (parenthesized_expression "(uVar17 != 0 || uVar27 != 0)" ( (binary_expression "uVar17 != 0 || uVar27 != 0" (binary_expression "uVar17 != 0" identifier != number_literal) || (binary_expression "uVar27 != 0" identifier != number_literal)) )) (compound_statement "{\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }" { (expression_statement "uVar37 = psVar9[0x15];" (assignment_expression "uVar37 = psVar9[0x15]" identifier = (subscript_expression "psVar9[0x15]" identifier [ number_literal ])) ;) (expression_statement "uVar44 = psVar9[0x16];" (assignment_expression "uVar44 = psVar9[0x16]" identifier = (subscript_expression "psVar9[0x16]" identifier [ number_literal ])) ;) (if_statement "if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }" if (parenthesized_expression "((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14]))))" ( (binary_expression "(uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))" (parenthesized_expression "(uVar44 != 0 || uVar37 != 0)" ( (binary_expression "uVar44 != 0 || uVar37 != 0" (binary_expression "uVar44 != 0" identifier != number_literal) || (binary_expression "uVar37 != 0" identifier != number_literal)) )) && (parenthesized_expression "((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))" ( (parenthesized_expression "(-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14]))" ( (binary_expression "-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])" (binary_expression "-uVar17 - 1 < (uint)(0xfffffff0 < uVar27)" (binary_expression "-uVar17 - 1" (unary_expression "-uVar17" - identifier) - number_literal) < (call_expression "(uint)(0xfffffff0 < uVar27)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffffff0 < uVar27)" ( (binary_expression "0xfffffff0 < uVar27" number_literal < identifier) )))) || (parenthesized_expression "(uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])" ( (comma_expression "uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14]" (assignment_expression "uVar33 = uVar17 + (0xfffffff0 < uVar27)" identifier = (binary_expression "uVar17 + (0xfffffff0 < uVar27)" identifier + (parenthesized_expression "(0xfffffff0 < uVar27)" ( (binary_expression "0xfffffff0 < uVar27" number_literal < identifier) )))) , (binary_expression "psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14]" (binary_expression "psVar9[0x14] <= uVar33" (subscript_expression "psVar9[0x14]" identifier [ number_literal ]) <= identifier) && (binary_expression "(uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14]" (call_expression "(uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13])" ( (binary_expression "(uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]" (parenthesized_expression "(uVar27 + 0xf & 0xfffffff0)" ( (binary_expression "uVar27 + 0xf & 0xfffffff0" (binary_expression "uVar27 + 0xf" identifier + number_literal) & number_literal) )) < (subscript_expression "psVar9[0x13]" identifier [ number_literal ])) ))) <= (binary_expression "uVar33 - psVar9[0x14]" identifier - (subscript_expression "psVar9[0x14]" identifier [ number_literal ]))))) ))) )) ))) )) (compound_statement "{\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }" { (expression_statement "psVar9[0xe] = 0;" (assignment_expression "psVar9[0xe] = 0" (subscript_expression "psVar9[0xe]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }" if (parenthesized_expression "(uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37))" ( (binary_expression "uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)" (binary_expression "uVar17 < uVar44" identifier < identifier) || (binary_expression "uVar17 - uVar44 < (uint)(uVar27 < uVar37)" (binary_expression "uVar17 - uVar44" identifier - identifier) < (call_expression "(uint)(uVar27 < uVar37)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar27 < uVar37)" ( (binary_expression "uVar27 < uVar37" identifier < identifier) ))))) )) (compound_statement "{\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }" { (expression_statement "local_6c[9] = uVar37;" (assignment_expression "local_6c[9] = uVar37" (subscript_expression "local_6c[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_6c[10] = uVar44;" (assignment_expression "local_6c[10] = uVar44" (subscript_expression "local_6c[10]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "bVar46 = true;" (assignment_expression "bVar46 = true" identifier = true) ;) (if_statement "if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }" if (parenthesized_expression "(local_84 != (int *)0x0)" ( (binary_expression "local_84 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                            local_6c[0xb] = 1;\n                          }" { (expression_statement "local_6c[0xb] = 1;" (assignment_expression "local_6c[0xb] = 1" (subscript_expression "local_6c[0xb]" identifier [ number_literal ]) = number_literal) ;) })) (break_statement "break;" break ;) })) })) })) (if_statement "if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }" if (parenthesized_expression "(local_84 == (int *)0x0)" ( (binary_expression "local_84 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }" { (if_statement "if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }" if (parenthesized_expression "(((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))" ( (binary_expression "((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0)" (parenthesized_expression "((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0))" ( (binary_expression "(psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)" (parenthesized_expression "(psVar9[0xd] == 0)" ( (binary_expression "psVar9[0xd] == 0" (subscript_expression "psVar9[0xd]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(local_a8 != (size_t *)0x0)" ( (binary_expression "local_a8 != (size_t *)0x0" identifier != (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(local_a8[2] == 0)" ( (binary_expression "local_a8[2] == 0" (subscript_expression "local_a8[2]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n                        local_a8[2] = 0x100;\n                      }" { (expression_statement "local_a8[2] = 0x100;" (assignment_expression "local_a8[2] = 0x100" (subscript_expression "local_a8[2]" identifier [ number_literal ]) = number_literal) ;) })) }) (else_clause "else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }" else (compound_statement "{\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }" { (expression_statement "psVar9[0x17] = 1;" (assignment_expression "psVar9[0x17] = 1" (subscript_expression "psVar9[0x17]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "psVar9[0xe] = 0x101;" (assignment_expression "psVar9[0xe] = 0x101" (subscript_expression "psVar9[0xe]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_6c[0xb] = 1;" (assignment_expression "local_6c[0xb] = 1" (subscript_expression "local_6c[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_6c[2] = 0x101;" (assignment_expression "local_6c[2] = 0x101" (subscript_expression "local_6c[2]" identifier [ number_literal ]) = number_literal) ;) }))) (break_statement "break;" break ;) })) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (for_statement "for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }" for ( (assignment_expression "iVar21 = 0" identifier = number_literal) ; (binary_expression "sVar54 - iVar18 != iVar21" (binary_expression "sVar54 - iVar18" identifier - identifier) != identifier) ; (assignment_expression "iVar21 = iVar21 + 1" identifier = (binary_expression "iVar21 + 1" identifier + number_literal)) ) (compound_statement "{\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }" { (expression_statement "uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);" (assignment_expression "uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU)" identifier = (binary_expression "uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU)" identifier | (binary_expression "(uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU)" (binary_expression "(uint)*(byte *)((int)pvVar26 + iVar21 + iVar18)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)pvVar26 + iVar21 + iVar18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar26 + iVar21 + iVar18)" ( (binary_expression "(int)pvVar26 + iVar21 + iVar18" (binary_expression "(int)pvVar26 + iVar21" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + identifier) )))) << (parenthesized_expression "((char)iVar21 * '\b' & 0x1fU)" ( (binary_expression "(char)iVar21 * '\b' & 0x1fU" (binary_expression "(char)iVar21 * '\b'" (cast_expression "(char)iVar21" ( (type_descriptor "char" primitive_type) ) identifier) * (char_literal "'\b'" ' escape_sequence ')) & number_literal) ))))) ;) })) (expression_statement "local_6c = (size_t *)0x0;" (assignment_expression "local_6c = (size_t *)0x0" identifier = (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sVar54 = *psVar10;" (assignment_expression "sVar54 = *psVar10" identifier = (pointer_expression "*psVar10" * identifier)) ;) (for_statement "for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }" for ( (assignment_expression "uVar27 = 0" identifier = number_literal) ; (binary_expression "sVar54 - iVar18 != uVar27" (binary_expression "sVar54 - iVar18" identifier - identifier) != identifier) ; (assignment_expression "uVar27 = uVar27 + 1" identifier = (binary_expression "uVar27 + 1" identifier + number_literal)) ) (compound_statement "{\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }" { (expression_statement "local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));" (assignment_expression "local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU))" identifier = (cast_expression "(size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU))" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU))" ( (binary_expression "(uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU)" (cast_expression "(uint)local_6c" ( (type_descriptor "uint" type_identifier) ) identifier) | (binary_expression "(uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU)" (subscript_expression "(uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27]" (call_expression "(uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(byte)" ( identifier ))) (argument_list "((undefined1 *)((int)pvVar32 + iVar18))" ( (cast_expression "(undefined1 *)((int)pvVar32 + iVar18)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar32 + iVar18)" ( (binary_expression "(int)pvVar32 + iVar18" (cast_expression "(int)pvVar32" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))) ))) [ identifier ]) << (parenthesized_expression "((char)uVar27 * '\b' & 0x1fU)" ( (binary_expression "(char)uVar27 * '\b' & 0x1fU" (binary_expression "(char)uVar27 * '\b'" (cast_expression "(char)uVar27" ( (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 "uVar17 = (int)local_6c + uVar17;" (assignment_expression "uVar17 = (int)local_6c + uVar17" identifier = (binary_expression "(int)local_6c + uVar17" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (for_statement "for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }" for ( (assignment_expression "uVar37 = uVar17" identifier = identifier) ; (binary_expression "uVar37 != 0" identifier != number_literal) ; (assignment_expression "uVar37 = uVar37 >> 8" identifier = (binary_expression "uVar37 >> 8" identifier >> number_literal)) ) (compound_statement "{\n                    uVar44 = uVar44 + 1;\n                  }" { (expression_statement "uVar44 = uVar44 + 1;" (assignment_expression "uVar44 = uVar44 + 1" identifier = (binary_expression "uVar44 + 1" identifier + number_literal)) ;) })) (if_statement "if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }" if (parenthesized_expression "(uVar44 < uVar27)" ( (binary_expression "uVar44 < uVar27" identifier < identifier) )) (compound_statement "{\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }" { (expression_statement "puVar45 = (undefined1 *)((int)pvVar32 + iVar18);" (assignment_expression "puVar45 = (undefined1 *)((int)pvVar32 + iVar18)" identifier = (cast_expression "(undefined1 *)((int)pvVar32 + iVar18)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar32 + iVar18)" ( (binary_expression "(int)pvVar32 + iVar18" (cast_expression "(int)pvVar32" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (goto_statement "goto LAB_0001b1a6;" goto statement_identifier ;) })) })) (expression_statement "local_6c = psVar10 + -0xc;" (assignment_expression "local_6c = psVar10 + -0xc" identifier = (binary_expression "psVar10 + -0xc" identifier + number_literal)) ;) })) })) (goto_statement "goto LAB_0001afd1;" goto statement_identifier ;) })) (expression_statement "local_6c = param_2;" (assignment_expression "local_6c = param_2" identifier = identifier) ;) (if_statement "if (!bVar46) goto LAB_0001ae41;" if (parenthesized_expression "(!bVar46)" ( (unary_expression "!bVar46" ! identifier) )) (goto_statement "goto LAB_0001ae41;" goto statement_identifier ;)) (expression_statement "pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);" (assignment_expression "pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53)" identifier = (cast_expression "(void *)xmalloc(sVar22,pvVar52,sVar23,sVar53)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar22,pvVar52,sVar23,sVar53)" identifier (argument_list "(sVar22,pvVar52,sVar23,sVar53)" ( identifier , identifier , identifier , identifier ))))) ;) (expression_statement "pvVar26 = pvVar52;" (assignment_expression "pvVar26 = pvVar52" identifier = identifier) ;) (expression_statement "sVar53 = local_78;" (assignment_expression "sVar53 = local_78" identifier = identifier) ;) (expression_statement "sVar23 = local_7c;" (assignment_expression "sVar23 = local_7c" identifier = identifier) ;) (expression_statement "local_a8 = (size_t *)pvVar6;" (assignment_expression "local_a8 = (size_t *)pvVar6" identifier = (cast_expression "(size_t *)pvVar6" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (for_statement "for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }" for ( (assignment_expression "psVar38 = local_74" identifier = identifier) ; (binary_expression "psVar38 < psVar43" identifier < identifier) ; (assignment_expression "psVar38 = psVar38 + 0xc" identifier = (binary_expression "psVar38 + 0xc" identifier + number_literal)) ) (compound_statement "{\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }" { (expression_statement "sVar55 = *psVar38;" (assignment_expression "sVar55 = *psVar38" identifier = (pointer_expression "*psVar38" * identifier)) ;) (expression_statement "sVar30 = psVar38[2];" (assignment_expression "sVar30 = psVar38[2]" identifier = (subscript_expression "psVar38[2]" identifier [ number_literal ])) ;) (expression_statement "sVar54 = sVar55 + psVar38[1] + 0xc;" (assignment_expression "sVar54 = sVar55 + psVar38[1] + 0xc" identifier = (binary_expression "sVar55 + psVar38[1] + 0xc" (binary_expression "sVar55 + psVar38[1]" identifier + (subscript_expression "psVar38[1]" identifier [ number_literal ])) + number_literal)) ;) (expression_statement "pvVar32 = pvVar26;" (assignment_expression "pvVar32 = pvVar26" identifier = identifier) ;) (if_statement "if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }" if (parenthesized_expression "(sVar30 != 0)" ( (binary_expression "sVar30 != 0" identifier != number_literal) )) (compound_statement "{\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }" { (if_statement "if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }" if (parenthesized_expression "(psVar38[0xb] == 0)" ( (binary_expression "psVar38[0xb] == 0" (subscript_expression "psVar38[0xb]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }" { (expression_statement "memcpy(pvVar26,local_a8,sVar54);" (call_expression "memcpy(pvVar26,local_a8,sVar54)" identifier (argument_list "(pvVar26,local_a8,sVar54)" ( identifier , identifier , identifier ))) ;) (expression_statement "pvVar32 = (void *)((int)pvVar26 + sVar54);" (assignment_expression "pvVar32 = (void *)((int)pvVar26 + sVar54)" identifier = (cast_expression "(void *)((int)pvVar26 + sVar54)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar26 + sVar54)" ( (binary_expression "(int)pvVar26 + sVar54" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }" else (compound_statement "{\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }" { (expression_statement "sVar28 = psVar38[8];" (assignment_expression "sVar28 = psVar38[8]" identifier = (subscript_expression "psVar38[8]" identifier [ number_literal ])) ;) (expression_statement "sVar7 = psVar38[7];" (assignment_expression "sVar7 = psVar38[7]" identifier = (subscript_expression "psVar38[7]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (expression_statement "pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);" (assignment_expression "pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30)" identifier = (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x30)" * (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x30)" ( (binary_expression "*(int *)((int)param_1 + 4) + 0x30" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar31 = (int)pvVar26 + 4;" (assignment_expression "iVar31 = (int)pvVar26 + 4" identifier = (binary_expression "(int)pvVar26 + 4" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "iVar18 = (int)pvVar26 + 8;" (assignment_expression "iVar18 = (int)pvVar26 + 8" identifier = (binary_expression "(int)pvVar26 + 8" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "__dest = (void *)((int)pvVar26 + 0xc);" (assignment_expression "__dest = (void *)((int)pvVar26 + 0xc)" identifier = (cast_expression "(void *)((int)pvVar26 + 0xc)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar26 + 0xc)" ( (binary_expression "(int)pvVar26 + 0xc" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pvVar32 = (void *)((int)__dest + sVar55);" (assignment_expression "pvVar32 = (void *)((int)__dest + sVar55)" identifier = (cast_expression "(void *)((int)__dest + sVar55)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__dest + sVar55)" ( (binary_expression "(int)__dest + sVar55" (cast_expression "(int)__dest" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "sVar29 = sVar28;" (assignment_expression "sVar29 = sVar28" identifier = identifier) ;) (if_statement "if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }" if (parenthesized_expression "(((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23))))" ( (binary_expression "((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))" (parenthesized_expression "((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c))" ( (binary_expression "(sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)" (parenthesized_expression "(sVar28 == local_78)" ( (binary_expression "sVar28 == local_78" identifier == identifier) )) && (parenthesized_expression "(sVar29 = local_7c, sVar7 == local_7c)" ( (comma_expression "sVar29 = local_7c, sVar7 == local_7c" (assignment_expression "sVar29 = local_7c" identifier = identifier) , (binary_expression "sVar7 == local_7c" identifier == identifier)) ))) )) && (parenthesized_expression "((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))" ( (parenthesized_expression "(sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23))" ( (comma_expression "sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)" (assignment_expression "sVar29 = sVar53" identifier = identifier) , (binary_expression "psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)" (binary_expression "psVar38[10] == sVar53" (subscript_expression "psVar38[10]" identifier [ number_literal ]) == identifier) && (parenthesized_expression "(sVar29 = sVar23, psVar38[9] == sVar23)" ( (comma_expression "sVar29 = sVar23, psVar38[9] == sVar23" (assignment_expression "sVar29 = sVar23" identifier = identifier) , (binary_expression "psVar38[9] == sVar23" (subscript_expression "psVar38[9]" identifier [ number_literal ]) == identifier)) )))) )) ))) )) (compound_statement "{\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }" { (expression_statement "(*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);" (call_expression "(*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18)" ( identifier , number_literal , identifier , identifier , identifier , identifier , identifier , number_literal , identifier , identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);" (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))" ( (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x30)" * (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x30)" * (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x30)" ( (binary_expression "*(int *)((int)param_1 + 4) + 0x30" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) )) (argument_list "(0,0,iVar31)" ( number_literal , number_literal , identifier ))) ;) (expression_statement "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);" (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))" ( (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x30)" * (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x30)" * (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x30)" ( (binary_expression "*(int *)((int)param_1 + 4) + 0x30" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) )) (argument_list "(sVar30,uVar13,iVar18)" ( identifier , identifier , identifier ))) ;) (expression_statement "memcpy(__dest,(void *)psVar38[3],sVar55);" (call_expression "memcpy(__dest,(void *)psVar38[3],sVar55)" identifier (argument_list "(__dest,(void *)psVar38[3],sVar55)" ( identifier , (cast_expression "(void *)psVar38[3]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "psVar38[3]" identifier [ number_literal ])) , identifier ))) ;) }) (else_clause "else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }" else (compound_statement "{\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }" { (expression_statement "(*pcVar8)(sVar55,0,pvVar26,sVar29);" (call_expression "(*pcVar8)(sVar55,0,pvVar26,sVar29)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(sVar55,0,pvVar26,sVar29)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "uVar14 = 8;" (assignment_expression "uVar14 = 8" identifier = number_literal) ;) (expression_statement "iVar21 = *(int *)((int)param_1 + 4);" (assignment_expression "iVar21 = *(int *)((int)param_1 + 4)" identifier = (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "puVar35 = (undefined4 *)(iVar21 + 0x30);" (assignment_expression "puVar35 = (undefined4 *)(iVar21 + 0x30)" identifier = (cast_expression "(undefined4 *)(iVar21 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x30)" ( (binary_expression "iVar21 + 0x30" identifier + number_literal) )))) ;) (if_statement "if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }" if (parenthesized_expression "((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02'))" ( (binary_expression "(*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')" (parenthesized_expression "(*(int *)(iVar21 + 4) == 5)" ( (binary_expression "*(int *)(iVar21 + 4) == 5" (pointer_expression "*(int *)(iVar21 + 4)" * (cast_expression "(int *)(iVar21 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 4)" ( (binary_expression "iVar21 + 4" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')" ( (comma_expression "iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02'" (assignment_expression "iVar21 = *(int *)((int)param_1 + 0xa0)" identifier = (pointer_expression "*(int *)((int)param_1 + 0xa0)" * (cast_expression "(int *)((int)param_1 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0xa0)" ( (binary_expression "(int)param_1 + 0xa0" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) , (binary_expression "*(char *)(iVar21 + 4) == '\x02'" (pointer_expression "*(char *)(iVar21 + 4)" * (cast_expression "(char *)(iVar21 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 4)" ( (binary_expression "iVar21 + 4" identifier + number_literal) )))) == (char_literal "'\x02'" ' escape_sequence '))) ))) )) (compound_statement "{\n                    uVar14 = 0x10;\n                  }" { (expression_statement "uVar14 = 0x10;" (assignment_expression "uVar14 = 0x10" identifier = number_literal) ;) })) (expression_statement "(*(code *)*puVar35)(uVar14,0,iVar31,iVar21);" (call_expression "(*(code *)*puVar35)(uVar14,0,iVar31,iVar21)" (parenthesized_expression "(*(code *)*puVar35)" ( (pointer_expression "*(code *)*puVar35" * (cast_expression "(code *)*puVar35" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar35" * identifier))) )) (argument_list "(uVar14,0,iVar31,iVar21)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);" (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))" ( (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x30)" * (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x30)" * (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x30)" ( (binary_expression "*(int *)((int)param_1 + 4) + 0x30" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) )) (argument_list "(sVar30,uVar13,iVar18)" ( identifier , identifier , identifier ))) ;) (expression_statement "memcpy(__dest,(void *)psVar38[3],sVar55);" (call_expression "memcpy(__dest,(void *)psVar38[3],sVar55)" identifier (argument_list "(__dest,(void *)psVar38[3],sVar55)" ( identifier , (cast_expression "(void *)psVar38[3]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "psVar38[3]" identifier [ number_literal ])) , identifier ))) ;) (expression_statement "iVar31 = *(int *)((int)param_1 + 4);" (assignment_expression "iVar31 = *(int *)((int)param_1 + 4)" identifier = (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pvVar26 = pvVar32;" (assignment_expression "pvVar26 = pvVar32" identifier = identifier) ;) (if_statement "if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }" if (parenthesized_expression "((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02'))" ( (binary_expression "(*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')" (parenthesized_expression "(*(int *)(iVar31 + 4) == 5)" ( (binary_expression "*(int *)(iVar31 + 4) == 5" (pointer_expression "*(int *)(iVar31 + 4)" * (cast_expression "(int *)(iVar31 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 4)" ( (binary_expression "iVar31 + 4" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')" ( (comma_expression "pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02'" (assignment_expression "pvVar26 = *(void **)((int)param_1 + 0xa0)" identifier = (pointer_expression "*(void **)((int)param_1 + 0xa0)" * (cast_expression "(void **)((int)param_1 + 0xa0)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)param_1 + 0xa0)" ( (binary_expression "(int)param_1 + 0xa0" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) , (binary_expression "*(char *)((int)pvVar26 + 4) == '\x02'" (pointer_expression "*(char *)((int)pvVar26 + 4)" * (cast_expression "(char *)((int)pvVar26 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar26 + 4)" ( (binary_expression "(int)pvVar26 + 4" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\x02'" ' escape_sequence '))) ))) )) (compound_statement "{\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }" { (expression_statement "(**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);" (call_expression "(**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1)" (parenthesized_expression "(**(code **)(iVar31 + 0x24))" ( (pointer_expression "**(code **)(iVar31 + 0x24)" * (pointer_expression "*(code **)(iVar31 + 0x24)" * (cast_expression "(code **)(iVar31 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar31 + 0x24)" ( (binary_expression "iVar31 + 0x24" identifier + number_literal) ))))) )) (argument_list "(sVar7,sVar28,pvVar32,param_1)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));" (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8))" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x24))" ( (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x24)" * (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x24)" * (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x24)" ( (binary_expression "*(int *)((int)param_1 + 4) + 0x24" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) )) (argument_list "(psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8))" ( (subscript_expression "psVar38[9]" identifier [ number_literal ]) , (subscript_expression "psVar38[10]" identifier [ number_literal ]) , (cast_expression "(void *)((int)pvVar32 + 8)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar32 + 8)" ( (binary_expression "(int)pvVar32 + 8" (cast_expression "(int)pvVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ))) ;) (expression_statement "pvVar32 = (void *)((int)pvVar32 + 0x10);" (assignment_expression "pvVar32 = (void *)((int)pvVar32 + 0x10)" identifier = (cast_expression "(void *)((int)pvVar32 + 0x10)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar32 + 0x10)" ( (binary_expression "(int)pvVar32 + 0x10" (cast_expression "(int)pvVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) (else_clause "else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }" else (compound_statement "{\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }" { (expression_statement "(**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);" (call_expression "(**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26)" (parenthesized_expression "(**(code **)(iVar31 + 0x30))" ( (pointer_expression "**(code **)(iVar31 + 0x30)" * (pointer_expression "*(code **)(iVar31 + 0x30)" * (cast_expression "(code **)(iVar31 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar31 + 0x30)" ( (binary_expression "iVar31 + 0x30" identifier + number_literal) ))))) )) (argument_list "(sVar7,sVar28,pvVar32,pvVar26)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);" (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))" ( (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x30)" * (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x30)" * (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x30)" ( (binary_expression "*(int *)((int)param_1 + 4) + 0x30" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) )) (argument_list "(psVar38[9],psVar38[10],(int)pvVar32 + 4)" ( (subscript_expression "psVar38[9]" identifier [ number_literal ]) , (subscript_expression "psVar38[10]" identifier [ number_literal ]) , (binary_expression "(int)pvVar32 + 4" (cast_expression "(int)pvVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ;) (expression_statement "pvVar32 = (void *)((int)pvVar32 + 8);" (assignment_expression "pvVar32 = (void *)((int)pvVar32 + 8)" identifier = (cast_expression "(void *)((int)pvVar32 + 8)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar32 + 8)" ( (binary_expression "(int)pvVar32 + 8" (cast_expression "(int)pvVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) }))) }))) (expression_statement "local_7c = psVar38[7];" (assignment_expression "local_7c = psVar38[7]" identifier = (subscript_expression "psVar38[7]" identifier [ number_literal ])) ;) (expression_statement "local_78 = psVar38[8];" (assignment_expression "local_78 = psVar38[8]" identifier = (subscript_expression "psVar38[8]" identifier [ number_literal ])) ;) (expression_statement "sVar23 = psVar38[9];" (assignment_expression "sVar23 = psVar38[9]" identifier = (subscript_expression "psVar38[9]" identifier [ number_literal ])) ;) (expression_statement "sVar53 = psVar38[10];" (assignment_expression "sVar53 = psVar38[10]" identifier = (subscript_expression "psVar38[10]" identifier [ number_literal ])) ;) })) (expression_statement "local_a8 = (size_t *)((int)local_a8 + sVar54);" (assignment_expression "local_a8 = (size_t *)((int)local_a8 + sVar54)" identifier = (cast_expression "(size_t *)((int)local_a8 + sVar54)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a8 + sVar54)" ( (binary_expression "(int)local_a8 + sVar54" (cast_expression "(int)local_a8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "pvVar26 = pvVar32;" (assignment_expression "pvVar26 = pvVar32" identifier = identifier) ;) })) (expression_statement "sVar23 = (int)pvVar26 - (int)pvVar52;" (assignment_expression "sVar23 = (int)pvVar26 - (int)pvVar52" identifier = (binary_expression "(int)pvVar26 - (int)pvVar52" (cast_expression "(int)pvVar26" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pvVar52" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar17 = (int)sVar23 >> 0x1f;" (assignment_expression "uVar17 = (int)sVar23 >> 0x1f" identifier = (binary_expression "(int)sVar23 >> 0x1f" (cast_expression "(int)sVar23" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "memcpy(pvVar6,pvVar52,sVar23);" (call_expression "memcpy(pvVar6,pvVar52,sVar23)" identifier (argument_list "(pvVar6,pvVar52,sVar23)" ( identifier , identifier , identifier ))) ;) (expression_statement "free(pvVar52);" (call_expression "free(pvVar52)" identifier (argument_list "(pvVar52)" ( identifier ))) ;) (expression_statement "free(local_74);" (call_expression "free(local_74)" identifier (argument_list "(local_74)" ( identifier ))) ;) (expression_statement "local_6c = param_2;" (assignment_expression "local_6c = param_2" identifier = identifier) ;) (expression_statement "DAT_00040bb8 = sVar23;" (assignment_expression "DAT_00040bb8 = sVar23" identifier = identifier) ;) (expression_statement "DAT_00040bbc = uVar17;" (assignment_expression "DAT_00040bbc = uVar17" identifier = identifier) ;) (if_statement "if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }" if (parenthesized_expression "((uVar39 != uVar17) || (sVar22 != sVar23))" ( (binary_expression "(uVar39 != uVar17) || (sVar22 != sVar23)" (parenthesized_expression "(uVar39 != uVar17)" ( (binary_expression "uVar39 != uVar17" identifier != identifier) )) || (parenthesized_expression "(sVar22 != sVar23)" ( (binary_expression "sVar22 != sVar23" identifier != identifier) ))) )) (compound_statement "{\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }" { (expression_statement "iVar31 = *(int *)(iVar12 + 0x54);" (assignment_expression "iVar31 = *(int *)(iVar12 + 0x54)" identifier = (pointer_expression "*(int *)(iVar12 + 0x54)" * (cast_expression "(int *)(iVar12 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x54)" ( (binary_expression "iVar12 + 0x54" identifier + number_literal) ))))) ;) (if_statement "if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;" if (parenthesized_expression "((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))" ( (binary_expression "(iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0)" (parenthesized_expression "(iVar31 != 0)" ( (binary_expression "iVar31 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0)" ( (comma_expression "iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0" (assignment_expression "iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17)" identifier = (call_expression "bfd_set_section_size(param_2,iVar31,sVar23,uVar17)" identifier (argument_list "(param_2,iVar31,sVar23,uVar17)" ( identifier , identifier , identifier , identifier )))) , (binary_expression "iVar31 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00018e0e;" goto statement_identifier ;)) (expression_statement "uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);" (assignment_expression "uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31)" identifier = (call_expression "dcgettext(0,"warning: failed to set merged notes size",5,iVar31)" identifier (argument_list "(0,"warning: failed to set merged notes size",5,iVar31)" ( number_literal , (string_literal ""warning: failed to set merged notes size"" " string_content ") , number_literal , identifier )))) ;) (expression_statement "FUN_0002d3a0(0,param_2,iVar12,uVar13);" (call_expression "FUN_0002d3a0(0,param_2,iVar12,uVar13)" identifier (argument_list "(0,param_2,iVar12,uVar13)" ( number_literal , identifier , identifier , identifier ))) ;) })) }) (else_clause "else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }" else (compound_statement "{\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }" { (expression_statement "iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);" (assignment_expression "iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c)" identifier = (call_expression "dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c)" identifier (argument_list "(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c)" ( number_literal , (string_literal ""corrupt GNU build attribute notes: excess data at end"" " string_content ") , number_literal , identifier )))) ;) (labeled_statement "LAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }" statement_identifier : (if_statement "if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }" if (parenthesized_expression "(iVar31 != 0)" ( (binary_expression "iVar31 != 0" identifier != number_literal) )) (compound_statement "{\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }" { (expression_statement "bfd_set_error(0x11);" (call_expression "bfd_set_error(0x11)" identifier (argument_list "(0x11)" ( number_literal ))) ;) (expression_statement "FUN_0002d3a0(0,param_1,iVar12,iVar31);" (call_expression "FUN_0002d3a0(0,param_1,iVar12,iVar31)" identifier (argument_list "(0,param_1,iVar12,iVar31)" ( number_literal , identifier , identifier , identifier ))) ;) (expression_statement "DAT_00040bc8 = 1;" (assignment_expression "DAT_00040bc8 = 1" identifier = number_literal) ;) }))) (labeled_statement "LAB_0001ae41:\n          free(local_74);" statement_identifier : (expression_statement "free(local_74);" (call_expression "free(local_74)" identifier (argument_list "(local_74)" ( identifier ))) ;)) }))) (expression_statement "free(DAT_00040bc0);" (call_expression "free(DAT_00040bc0)" identifier (argument_list "(DAT_00040bc0)" ( identifier ))) ;) (expression_statement "DAT_00040bc0 = (void *)0x0;" (assignment_expression "DAT_00040bc0 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00040bc4 = 0;" (assignment_expression "DAT_00040bc4 = 0" identifier = number_literal) ;) (expression_statement "DAT_00040bb8 = 0;" (assignment_expression "DAT_00040bb8 = 0" identifier = number_literal) ;) (expression_statement "DAT_00040bbc = 0;" (assignment_expression "DAT_00040bbc = 0" identifier = number_literal) ;) }))) }))) })) (labeled_statement "LAB_00018e0e:\n  param_2 = local_6c;" statement_identifier : (expression_statement "param_2 = local_6c;" (assignment_expression "param_2 = local_6c" identifier = identifier) ;)) (expression_statement "iVar31 = DAT_00040b4c;" (assignment_expression "iVar31 = DAT_00040b4c" identifier = identifier) ;) (for_statement "for (puVar35 = DAT_00040b50; DAT_00040b4c = iVar31, puVar35 != (undefined4 *)0x0;\n      puVar35 = (undefined4 *)*puVar35) {\n    iVar12 = bfd_get_section_by_name(param_1,puVar35[1]);\n    if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      uVar14 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n      FUN_0002d3a0(0,param_1,0,uVar14,uVar13);\n    }\n    else {\n      if ((*(byte *)(iVar12 + 0x15) & 1) == 0) {\n        pcVar25 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar22 = *(size_t *)(iVar12 + 0x2c);\n        iVar31 = *(int *)(iVar12 + 0x30);\n        if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar25 = "can\'t dump section - it is empty";\n      }\n      uVar13 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n    }\nLAB_00018eb1:\n    iVar31 = DAT_00040b4c;\n  }" for ( (assignment_expression "puVar35 = DAT_00040b50" identifier = identifier) ; (comma_expression "DAT_00040b4c = iVar31, puVar35 != (undefined4 *)0x0" (assignment_expression "DAT_00040b4c = iVar31" identifier = identifier) , (binary_expression "puVar35 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "puVar35 = (undefined4 *)*puVar35" identifier = (cast_expression "(undefined4 *)*puVar35" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar35" * identifier))) ) (compound_statement "{\n    iVar12 = bfd_get_section_by_name(param_1,puVar35[1]);\n    if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      uVar14 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n      FUN_0002d3a0(0,param_1,0,uVar14,uVar13);\n    }\n    else {\n      if ((*(byte *)(iVar12 + 0x15) & 1) == 0) {\n        pcVar25 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar22 = *(size_t *)(iVar12 + 0x2c);\n        iVar31 = *(int *)(iVar12 + 0x30);\n        if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar25 = "can\'t dump section - it is empty";\n      }\n      uVar13 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n    }\nLAB_00018eb1:\n    iVar31 = DAT_00040b4c;\n  }" { (expression_statement "iVar12 = bfd_get_section_by_name(param_1,puVar35[1]);" (assignment_expression "iVar12 = bfd_get_section_by_name(param_1,puVar35[1])" identifier = (call_expression "bfd_get_section_by_name(param_1,puVar35[1])" identifier (argument_list "(param_1,puVar35[1])" ( identifier , (subscript_expression "puVar35[1]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      uVar14 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n      FUN_0002d3a0(0,param_1,0,uVar14,uVar13);\n    }\n    else {\n      if ((*(byte *)(iVar12 + 0x15) & 1) == 0) {\n        pcVar25 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar22 = *(size_t *)(iVar12 + 0x2c);\n        iVar31 = *(int *)(iVar12 + 0x30);\n        if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar25 = "can\'t dump section - it is empty";\n      }\n      uVar13 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n    }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar13 = puVar35[1];\n      uVar14 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n      FUN_0002d3a0(0,param_1,0,uVar14,uVar13);\n    }" { (expression_statement "uVar13 = puVar35[1];" (assignment_expression "uVar13 = puVar35[1]" identifier = (subscript_expression "puVar35[1]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);" (assignment_expression "uVar14 = 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_0002d3a0(0,param_1,0,uVar14,uVar13);" (call_expression "FUN_0002d3a0(0,param_1,0,uVar14,uVar13)" identifier (argument_list "(0,param_1,0,uVar14,uVar13)" ( number_literal , identifier , number_literal , identifier , identifier ))) ;) }) (else_clause "else {\n      if ((*(byte *)(iVar12 + 0x15) & 1) == 0) {\n        pcVar25 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar22 = *(size_t *)(iVar12 + 0x2c);\n        iVar31 = *(int *)(iVar12 + 0x30);\n        if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar25 = "can\'t dump section - it is empty";\n      }\n      uVar13 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n    }" else (compound_statement "{\n      if ((*(byte *)(iVar12 + 0x15) & 1) == 0) {\n        pcVar25 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar22 = *(size_t *)(iVar12 + 0x2c);\n        iVar31 = *(int *)(iVar12 + 0x30);\n        if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar25 = "can\'t dump section - it is empty";\n      }\n      uVar13 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n    }" { (if_statement "if ((*(byte *)(iVar12 + 0x15) & 1) == 0) {\n        pcVar25 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar22 = *(size_t *)(iVar12 + 0x2c);\n        iVar31 = *(int *)(iVar12 + 0x30);\n        if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar25 = "can\'t dump section - it is empty";\n      }" if (parenthesized_expression "((*(byte *)(iVar12 + 0x15) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar12 + 0x15) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar12 + 0x15) & 1)" ( (binary_expression "*(byte *)(iVar12 + 0x15) & 1" (pointer_expression "*(byte *)(iVar12 + 0x15)" * (cast_expression "(byte *)(iVar12 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x15)" ( (binary_expression "iVar12 + 0x15" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        pcVar25 = "can\'t dump section - it has no contents";\n      }" { (expression_statement "pcVar25 = "can\'t dump section - it has no contents";" (assignment_expression "pcVar25 = "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 ")) ;) }) (else_clause "else {\n        sVar22 = *(size_t *)(iVar12 + 0x2c);\n        iVar31 = *(int *)(iVar12 + 0x30);\n        if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar25 = "can\'t dump section - it is empty";\n      }" else (compound_statement "{\n        sVar22 = *(size_t *)(iVar12 + 0x2c);\n        iVar31 = *(int *)(iVar12 + 0x30);\n        if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar25 = "can\'t dump section - it is empty";\n      }" { (expression_statement "sVar22 = *(size_t *)(iVar12 + 0x2c);" (assignment_expression "sVar22 = *(size_t *)(iVar12 + 0x2c)" identifier = (pointer_expression "*(size_t *)(iVar12 + 0x2c)" * (cast_expression "(size_t *)(iVar12 + 0x2c)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2c)" ( (binary_expression "iVar12 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "iVar31 = *(int *)(iVar12 + 0x30);" (assignment_expression "iVar31 = *(int *)(iVar12 + 0x30)" identifier = (pointer_expression "*(int *)(iVar12 + 0x30)" * (cast_expression "(int *)(iVar12 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x30)" ( (binary_expression "iVar12 + 0x30" identifier + number_literal) ))))) ;) (if_statement "if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }" if (parenthesized_expression "(iVar31 != 0 || sVar22 != 0)" ( (binary_expression "iVar31 != 0 || sVar22 != 0" (binary_expression "iVar31 != 0" identifier != number_literal) || (binary_expression "sVar22 != 0" identifier != number_literal)) )) (compound_statement "{\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }" { (expression_statement "__s = fopen64((char *)puVar35[2],"w");" (assignment_expression "__s = fopen64((char *)puVar35[2],"w")" identifier = (call_expression "fopen64((char *)puVar35[2],"w")" identifier (argument_list "((char *)puVar35[2],"w")" ( (cast_expression "(char *)puVar35[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[2]" identifier [ number_literal ])) , (string_literal ""w"" " string_content ") )))) ;) (if_statement "if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\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            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }" { (expression_statement "uVar13 = dcgettext(0,"could not open section dump file",5);" (assignment_expression "uVar13 = 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_0002d3a0(puVar35[2],0,0,uVar13);" (call_expression "FUN_0002d3a0(puVar35[2],0,0,uVar13)" identifier (argument_list "(puVar35[2],0,0,uVar13)" ( (subscript_expression "puVar35[2]" identifier [ number_literal ]) , number_literal , number_literal , identifier ))) ;) }) (else_clause "else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }" else (compound_statement "{\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }" { (expression_statement "iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);" (assignment_expression "iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34)" identifier = (call_expression "bfd_malloc_and_get_section(param_1,iVar12,&local_34)" identifier (argument_list "(param_1,iVar12,&local_34)" ( identifier , identifier , (pointer_expression "&local_34" & identifier) )))) ;) (if_statement "if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }" { (expression_statement "uVar13 = dcgettext(0,"could not retrieve section contents",5);" (assignment_expression "uVar13 = 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_0002d3a0(0,param_1,iVar12,uVar13);" (call_expression "FUN_0002d3a0(0,param_1,iVar12,uVar13)" identifier (argument_list "(0,param_1,iVar12,uVar13)" ( number_literal , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }" else (compound_statement "{\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }" { (expression_statement "sVar23 = fwrite(local_34,1,sVar22,__s);" (assignment_expression "sVar23 = fwrite(local_34,1,sVar22,__s)" identifier = (call_expression "fwrite(local_34,1,sVar22,__s)" identifier (argument_list "(local_34,1,sVar22,__s)" ( identifier , number_literal , identifier , identifier )))) ;) (if_statement "if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }" if (parenthesized_expression "(iVar31 != 0 || sVar22 != sVar23)" ( (binary_expression "iVar31 != 0 || sVar22 != sVar23" (binary_expression "iVar31 != 0" identifier != number_literal) || (binary_expression "sVar22 != sVar23" identifier != identifier)) )) (compound_statement "{\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }" { (expression_statement "piVar19 = __errno_location();" (assignment_expression "piVar19 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar25 = strerror(*piVar19);" (assignment_expression "pcVar25 = strerror(*piVar19)" identifier = (call_expression "strerror(*piVar19)" identifier (argument_list "(*piVar19)" ( (pointer_expression "*piVar19" * identifier) )))) ;) (expression_statement "uVar13 = puVar35[2];" (assignment_expression "uVar13 = puVar35[2]" identifier = (subscript_expression "puVar35[2]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);" (assignment_expression "uVar14 = 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_0002c910(uVar14,uVar13,pcVar25);" (call_expression "FUN_0002c910(uVar14,uVar13,pcVar25)" identifier (argument_list "(uVar14,uVar13,pcVar25)" ( identifier , identifier , identifier ))) ;) (expression_statement "free(local_34);" (call_expression "free(local_34)" identifier (argument_list "(local_34)" ( 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_34);" (call_expression "free(local_34)" identifier (argument_list "(local_34)" ( identifier ))) ;) }))) (goto_statement "goto LAB_00018eb1;" goto statement_identifier ;) })) (expression_statement "pcVar25 = "can\'t dump section - it is empty";" (assignment_expression "pcVar25 = "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 "uVar13 = dcgettext(0,pcVar25,5);" (assignment_expression "uVar13 = dcgettext(0,pcVar25,5)" identifier = (call_expression "dcgettext(0,pcVar25,5)" identifier (argument_list "(0,pcVar25,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_0002d3a0(0,param_1,iVar12,uVar13);" (call_expression "FUN_0002d3a0(0,param_1,iVar12,uVar13)" identifier (argument_list "(0,param_1,iVar12,uVar13)" ( number_literal , identifier , identifier , identifier ))) ;) }))) (labeled_statement "LAB_00018eb1:\n    iVar31 = DAT_00040b4c;" statement_identifier : (expression_statement "iVar31 = DAT_00040b4c;" (assignment_expression "iVar31 = DAT_00040b4c" identifier = identifier) ;)) })) (if_statement "if (iVar31 != 0) {\n    iVar12 = bfd_get_section_by_name(local_6c,".gnu_debuglink");\n    if (iVar12 == 0) {\n      iVar31 = bfd_create_gnu_debuglink_section(local_6c,DAT_00040b4c);\n      iVar12 = DAT_00040b4c;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,local_6c,0,uVar13,iVar12);\n        return 0;\n      }\n      if (*(int *)(local_6c[1] + 4) == 2) {\n        iVar12 = local_6c[0x18];\n        iVar18 = 0;\n        if (iVar12 == 0) {\nLAB_0001aa69:\n          uVar39 = 0x1000;\n          iVar12 = 0;\n        }\n        else {\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(iVar31 + 0x24) = uVar39;\n        *(int *)(iVar31 + 0x28) = iVar12;\n        *(uint *)(iVar31 + 0x1c) = uVar39;\n        *(int *)(iVar31 + 0x20) = iVar12;\n        *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      }\n    }\n    else {\n      iVar12 = *local_6c;\n      uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n      FUN_0002c910(uVar13,iVar12);\n      DAT_00040b4c = 0;\n      iVar31 = 0;\n    }\n  }" if (parenthesized_expression "(iVar31 != 0)" ( (binary_expression "iVar31 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar12 = bfd_get_section_by_name(local_6c,".gnu_debuglink");\n    if (iVar12 == 0) {\n      iVar31 = bfd_create_gnu_debuglink_section(local_6c,DAT_00040b4c);\n      iVar12 = DAT_00040b4c;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,local_6c,0,uVar13,iVar12);\n        return 0;\n      }\n      if (*(int *)(local_6c[1] + 4) == 2) {\n        iVar12 = local_6c[0x18];\n        iVar18 = 0;\n        if (iVar12 == 0) {\nLAB_0001aa69:\n          uVar39 = 0x1000;\n          iVar12 = 0;\n        }\n        else {\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(iVar31 + 0x24) = uVar39;\n        *(int *)(iVar31 + 0x28) = iVar12;\n        *(uint *)(iVar31 + 0x1c) = uVar39;\n        *(int *)(iVar31 + 0x20) = iVar12;\n        *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      }\n    }\n    else {\n      iVar12 = *local_6c;\n      uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n      FUN_0002c910(uVar13,iVar12);\n      DAT_00040b4c = 0;\n      iVar31 = 0;\n    }\n  }" { (expression_statement "iVar12 = bfd_get_section_by_name(local_6c,".gnu_debuglink");" (assignment_expression "iVar12 = bfd_get_section_by_name(local_6c,".gnu_debuglink")" identifier = (call_expression "bfd_get_section_by_name(local_6c,".gnu_debuglink")" identifier (argument_list "(local_6c,".gnu_debuglink")" ( identifier , (string_literal "".gnu_debuglink"" " string_content ") )))) ;) (if_statement "if (iVar12 == 0) {\n      iVar31 = bfd_create_gnu_debuglink_section(local_6c,DAT_00040b4c);\n      iVar12 = DAT_00040b4c;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,local_6c,0,uVar13,iVar12);\n        return 0;\n      }\n      if (*(int *)(local_6c[1] + 4) == 2) {\n        iVar12 = local_6c[0x18];\n        iVar18 = 0;\n        if (iVar12 == 0) {\nLAB_0001aa69:\n          uVar39 = 0x1000;\n          iVar12 = 0;\n        }\n        else {\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(iVar31 + 0x24) = uVar39;\n        *(int *)(iVar31 + 0x28) = iVar12;\n        *(uint *)(iVar31 + 0x1c) = uVar39;\n        *(int *)(iVar31 + 0x20) = iVar12;\n        *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      }\n    }\n    else {\n      iVar12 = *local_6c;\n      uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n      FUN_0002c910(uVar13,iVar12);\n      DAT_00040b4c = 0;\n      iVar31 = 0;\n    }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar31 = bfd_create_gnu_debuglink_section(local_6c,DAT_00040b4c);\n      iVar12 = DAT_00040b4c;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,local_6c,0,uVar13,iVar12);\n        return 0;\n      }\n      if (*(int *)(local_6c[1] + 4) == 2) {\n        iVar12 = local_6c[0x18];\n        iVar18 = 0;\n        if (iVar12 == 0) {\nLAB_0001aa69:\n          uVar39 = 0x1000;\n          iVar12 = 0;\n        }\n        else {\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(iVar31 + 0x24) = uVar39;\n        *(int *)(iVar31 + 0x28) = iVar12;\n        *(uint *)(iVar31 + 0x1c) = uVar39;\n        *(int *)(iVar31 + 0x20) = iVar12;\n        *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      }\n    }" { (expression_statement "iVar31 = bfd_create_gnu_debuglink_section(local_6c,DAT_00040b4c);" (assignment_expression "iVar31 = bfd_create_gnu_debuglink_section(local_6c,DAT_00040b4c)" identifier = (call_expression "bfd_create_gnu_debuglink_section(local_6c,DAT_00040b4c)" identifier (argument_list "(local_6c,DAT_00040b4c)" ( identifier , identifier )))) ;) (expression_statement "iVar12 = DAT_00040b4c;" (assignment_expression "iVar12 = DAT_00040b4c" identifier = identifier) ;) (if_statement "if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,local_6c,0,uVar13,iVar12);\n        return 0;\n      }" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,local_6c,0,uVar13,iVar12);\n        return 0;\n      }" { (expression_statement "uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0);" (assignment_expression "uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0)" identifier = (call_expression "dcgettext(0,"cannot create debug link section `%s\'",5,0)" identifier (argument_list "(0,"cannot create debug link section `%s\'",5,0)" ( number_literal , (string_literal ""cannot create debug link section `%s\'"" " string_content escape_sequence ") , number_literal , number_literal )))) ;) (expression_statement "FUN_0002d3a0(0,local_6c,0,uVar13,iVar12);" (call_expression "FUN_0002d3a0(0,local_6c,0,uVar13,iVar12)" identifier (argument_list "(0,local_6c,0,uVar13,iVar12)" ( number_literal , identifier , number_literal , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*(int *)(local_6c[1] + 4) == 2) {\n        iVar12 = local_6c[0x18];\n        iVar18 = 0;\n        if (iVar12 == 0) {\nLAB_0001aa69:\n          uVar39 = 0x1000;\n          iVar12 = 0;\n        }\n        else {\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(iVar31 + 0x24) = uVar39;\n        *(int *)(iVar31 + 0x28) = iVar12;\n        *(uint *)(iVar31 + 0x1c) = uVar39;\n        *(int *)(iVar31 + 0x20) = iVar12;\n        *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      }" if (parenthesized_expression "(*(int *)(local_6c[1] + 4) == 2)" ( (binary_expression "*(int *)(local_6c[1] + 4) == 2" (pointer_expression "*(int *)(local_6c[1] + 4)" * (cast_expression "(int *)(local_6c[1] + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_6c[1] + 4)" ( (binary_expression "local_6c[1] + 4" (subscript_expression "local_6c[1]" identifier [ number_literal ]) + number_literal) )))) == number_literal) )) (compound_statement "{\n        iVar12 = local_6c[0x18];\n        iVar18 = 0;\n        if (iVar12 == 0) {\nLAB_0001aa69:\n          uVar39 = 0x1000;\n          iVar12 = 0;\n        }\n        else {\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(iVar31 + 0x24) = uVar39;\n        *(int *)(iVar31 + 0x28) = iVar12;\n        *(uint *)(iVar31 + 0x1c) = uVar39;\n        *(int *)(iVar31 + 0x20) = iVar12;\n        *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      }" { (expression_statement "iVar12 = local_6c[0x18];" (assignment_expression "iVar12 = local_6c[0x18]" identifier = (subscript_expression "local_6c[0x18]" identifier [ number_literal ])) ;) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (if_statement "if (iVar12 == 0) {\nLAB_0001aa69:\n          uVar39 = 0x1000;\n          iVar12 = 0;\n        }\n        else {\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0001aa69:\n          uVar39 = 0x1000;\n          iVar12 = 0;\n        }" { (labeled_statement "LAB_0001aa69:\n          uVar39 = 0x1000;" statement_identifier : (expression_statement "uVar39 = 0x1000;" (assignment_expression "uVar39 = 0x1000" identifier = number_literal) ;)) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }" else (compound_statement "{\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }" { (do_statement "do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);" do (compound_statement "{\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          }" { (expression_statement "uVar39 = *(uint *)(iVar12 + 0x20);" (assignment_expression "uVar39 = *(uint *)(iVar12 + 0x20)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x20)" * (cast_expression "(uint *)(iVar12 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x20)" ( (binary_expression "iVar12 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "iVar21 = iVar18;" (assignment_expression "iVar21 = iVar18" identifier = identifier) ;) (if_statement "if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }" if (parenthesized_expression "(((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c))))" ( (binary_expression "((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))" (parenthesized_expression "((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))" ( (binary_expression "(uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0)" (parenthesized_expression "(uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0)" ( (binary_expression "uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0" (binary_expression "uVar39 != 0" identifier != number_literal) || (binary_expression "*(uint *)(iVar12 + 0x1c) != 0" (pointer_expression "*(uint *)(iVar12 + 0x1c)" * (cast_expression "(uint *)(iVar12 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x1c)" ( (binary_expression "iVar12 + 0x1c" identifier + number_literal) )))) != number_literal)) )) && (parenthesized_expression "(iVar21 = iVar12, iVar18 != 0)" ( (comma_expression "iVar21 = iVar12, iVar18 != 0" (assignment_expression "iVar21 = iVar12" identifier = identifier) , (binary_expression "iVar18 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))" ( (comma_expression "iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c))" (assignment_expression "iVar21 = iVar18" identifier = identifier) , (binary_expression "*(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c))" (binary_expression "*(uint *)(iVar18 + 0x20) < uVar39" (pointer_expression "*(uint *)(iVar18 + 0x20)" * (cast_expression "(uint *)(iVar18 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x20)" ( (binary_expression "iVar18 + 0x20" identifier + number_literal) )))) < identifier) || (binary_expression "*(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c))" (binary_expression "*(uint *)(iVar18 + 0x20) - uVar39" (pointer_expression "*(uint *)(iVar18 + 0x20)" * (cast_expression "(uint *)(iVar18 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x20)" ( (binary_expression "iVar18 + 0x20" identifier + number_literal) )))) - identifier) < (call_expression "(uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c))" ( (binary_expression "*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)" (pointer_expression "*(uint *)(iVar18 + 0x1c)" * (cast_expression "(uint *)(iVar18 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x1c)" ( (binary_expression "iVar18 + 0x1c" identifier + number_literal) )))) < (pointer_expression "*(uint *)(iVar12 + 0x1c)" * (cast_expression "(uint *)(iVar12 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x1c)" ( (binary_expression "iVar12 + 0x1c" identifier + number_literal) ))))) )))))) ))) )) (compound_statement "{\n              iVar21 = iVar12;\n            }" { (expression_statement "iVar21 = iVar12;" (assignment_expression "iVar21 = iVar12" identifier = identifier) ;) })) (expression_statement "iVar12 = *(int *)(iVar12 + 0xc);" (assignment_expression "iVar12 = *(int *)(iVar12 + 0xc)" identifier = (pointer_expression "*(int *)(iVar12 + 0xc)" * (cast_expression "(int *)(iVar12 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xc)" ( (binary_expression "iVar12 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = iVar21;" (assignment_expression "iVar18 = iVar21" identifier = identifier) ;) }) while (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) ;) (if_statement "if (iVar21 == 0) goto LAB_0001aa69;" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001aa69;" goto statement_identifier ;)) (expression_statement "uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);" (assignment_expression "uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c)" identifier = (binary_expression "*(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c)" (pointer_expression "*(uint *)(iVar21 + 0x2c)" * (cast_expression "(uint *)(iVar21 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x2c)" ( (binary_expression "iVar21 + 0x2c" identifier + number_literal) )))) + (pointer_expression "*(uint *)(iVar21 + 0x1c)" * (cast_expression "(uint *)(iVar21 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x1c)" ( (binary_expression "iVar21 + 0x1c" identifier + number_literal) )))))) ;) (expression_statement "iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));" (assignment_expression "iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c))" identifier = (binary_expression "*(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c))" (binary_expression "*(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20)" (pointer_expression "*(int *)(iVar21 + 0x30)" * (cast_expression "(int *)(iVar21 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x30)" ( (binary_expression "iVar21 + 0x30" identifier + number_literal) )))) + (pointer_expression "*(int *)(iVar21 + 0x20)" * (cast_expression "(int *)(iVar21 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x20)" ( (binary_expression "iVar21 + 0x20" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c))" identifier (argument_list "(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c))" ( (pointer_expression "*(uint *)(iVar21 + 0x2c)" * (cast_expression "(uint *)(iVar21 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x2c)" ( (binary_expression "iVar21 + 0x2c" identifier + number_literal) )))) , (pointer_expression "*(uint *)(iVar21 + 0x1c)" * (cast_expression "(uint *)(iVar21 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x1c)" ( (binary_expression "iVar21 + 0x1c" identifier + number_literal) )))) )))))) ;) (if_statement "if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }" if (parenthesized_expression "(-iVar12 - 1U < (uint)(0xfffff000 < uVar39))" ( (binary_expression "-iVar12 - 1U < (uint)(0xfffff000 < uVar39)" (binary_expression "-iVar12 - 1U" (unary_expression "-iVar12" - identifier) - number_literal) < (call_expression "(uint)(0xfffff000 < uVar39)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffff000 < uVar39)" ( (binary_expression "0xfffff000 < uVar39" number_literal < identifier) )))) )) (compound_statement "{\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }" { (expression_statement "uVar39 = 0xffffffff;" (assignment_expression "uVar39 = 0xffffffff" identifier = number_literal) ;) (expression_statement "iVar12 = -1;" (assignment_expression "iVar12 = -1" identifier = number_literal) ;) }) (else_clause "else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }" else (compound_statement "{\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }" { (expression_statement "iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);" (assignment_expression "iVar12 = iVar12 + (uint)(0xfffff000 < uVar39)" identifier = (binary_expression "iVar12 + (uint)(0xfffff000 < uVar39)" identifier + (call_expression "(uint)(0xfffff000 < uVar39)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffff000 < uVar39)" ( (binary_expression "0xfffff000 < uVar39" number_literal < identifier) ))))) ;) (expression_statement "uVar39 = uVar39 + 0xfff & 0xfffff000;" (assignment_expression "uVar39 = uVar39 + 0xfff & 0xfffff000" identifier = (binary_expression "uVar39 + 0xfff & 0xfffff000" (binary_expression "uVar39 + 0xfff" identifier + number_literal) & number_literal)) ;) }))) }))) (expression_statement "*(uint *)(iVar31 + 0x24) = uVar39;" (assignment_expression "*(uint *)(iVar31 + 0x24) = uVar39" (pointer_expression "*(uint *)(iVar31 + 0x24)" * (cast_expression "(uint *)(iVar31 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x24)" ( (binary_expression "iVar31 + 0x24" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar31 + 0x28) = iVar12;" (assignment_expression "*(int *)(iVar31 + 0x28) = iVar12" (pointer_expression "*(int *)(iVar31 + 0x28)" * (cast_expression "(int *)(iVar31 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x28)" ( (binary_expression "iVar31 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar31 + 0x1c) = uVar39;" (assignment_expression "*(uint *)(iVar31 + 0x1c) = uVar39" (pointer_expression "*(uint *)(iVar31 + 0x1c)" * (cast_expression "(uint *)(iVar31 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x1c)" ( (binary_expression "iVar31 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar31 + 0x20) = iVar12;" (assignment_expression "*(int *)(iVar31 + 0x20) = iVar12" (pointer_expression "*(int *)(iVar31 + 0x20)" * (cast_expression "(int *)(iVar31 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x20)" ( (binary_expression "iVar31 + 0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;" (assignment_expression "*(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1" (pointer_expression "*(byte *)(iVar31 + 0x18)" * (cast_expression "(byte *)(iVar31 + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x18)" ( (binary_expression "iVar31 + 0x18" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar31 + 0x18) | 1" (pointer_expression "*(byte *)(iVar31 + 0x18)" * (cast_expression "(byte *)(iVar31 + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar31 + 0x18)" ( (binary_expression "iVar31 + 0x18" identifier + number_literal) )))) | number_literal)) ;) })) }) (else_clause "else {\n      iVar12 = *local_6c;\n      uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n      FUN_0002c910(uVar13,iVar12);\n      DAT_00040b4c = 0;\n      iVar31 = 0;\n    }" else (compound_statement "{\n      iVar12 = *local_6c;\n      uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n      FUN_0002c910(uVar13,iVar12);\n      DAT_00040b4c = 0;\n      iVar31 = 0;\n    }" { (expression_statement "iVar12 = *local_6c;" (assignment_expression "iVar12 = *local_6c" identifier = (pointer_expression "*local_6c" * 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_0002c910(uVar13,iVar12);" (call_expression "FUN_0002c910(uVar13,iVar12)" identifier (argument_list "(uVar13,iVar12)" ( identifier , identifier ))) ;) (expression_statement "DAT_00040b4c = 0;" (assignment_expression "DAT_00040b4c = 0" identifier = number_literal) ;) (expression_statement "iVar31 = 0;" (assignment_expression "iVar31 = 0" identifier = number_literal) ;) }))) })) (expression_statement "sVar22 = local_6c[0x1a];" (assignment_expression "sVar22 = local_6c[0x1a]" identifier = (subscript_expression "local_6c[0x1a]" identifier [ number_literal ])) ;) (if_statement "if ((sVar22 == 0) || (DAT_00040b78 == 0 && DAT_00040b70 == 0)) {\n    local_b8 = 0;\n    local_bc = 0;\n    local_b4 = (void *)0x0;\n    local_a8 = (size_t *)0x0;\n    uVar39 = local_bc;\n    uVar17 = local_b8;\n  }\n  else {\n    local_a8 = (size_t *)xmalloc(sVar22 * 4);\n    local_34 = (int *)local_a8;\n    bfd_map_over_sections(local_6c,FUN_00016800,&local_34);\n    qsort(local_a8,sVar22,4,FUN_00016820);\n    sVar23 = sVar22 * 8;\n    local_b4 = (void *)xmalloc(sVar23);\n    memset(local_b4,0,sVar23);\n    if ((DAT_00040b78 == 0) || (sVar22 == 1)) {\n      local_b8 = 0;\n      local_bc = 0;\n    }\n    else {\n      local_b8 = 0;\n      local_bc = 0;\n      local_6c = (size_t *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (size_t *)((int)local_6c + 1);\n        iVar12 = *local_64;\n        uVar39 = local_bc;\n        uVar17 = local_b8;\n        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }\n        local_b8 = uVar17;\n        local_bc = uVar39;\n        local_64 = local_64 + 1;\n      } while ((size_t *)(sVar22 - 1) != local_6c);\n    }\n    uVar39 = local_bc;\n    uVar17 = local_b8;\n    if (DAT_00040b70 != 0) {\n      iVar12 = ((int *)local_a8)[sVar22 - 1];\n      uVar27 = *(uint *)(iVar12 + 0x24);\n      uVar37 = uVar27 + *(uint *)(iVar12 + 0x2c);\n      uVar44 = *(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +\n               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c));\n      if (uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)) {\n        iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           );\n        if (iVar12 == 0) {\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }\n        else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "((sVar22 == 0) || (DAT_00040b78 == 0 && DAT_00040b70 == 0))" ( (binary_expression "(sVar22 == 0) || (DAT_00040b78 == 0 && DAT_00040b70 == 0)" (parenthesized_expression "(sVar22 == 0)" ( (binary_expression "sVar22 == 0" identifier == number_literal) )) || (parenthesized_expression "(DAT_00040b78 == 0 && DAT_00040b70 == 0)" ( (binary_expression "DAT_00040b78 == 0 && DAT_00040b70 == 0" (binary_expression "DAT_00040b78 == 0" identifier == number_literal) && (binary_expression "DAT_00040b70 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    local_b8 = 0;\n    local_bc = 0;\n    local_b4 = (void *)0x0;\n    local_a8 = (size_t *)0x0;\n    uVar39 = local_bc;\n    uVar17 = local_b8;\n  }" { (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) (expression_statement "local_b4 = (void *)0x0;" (assignment_expression "local_b4 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_a8 = (size_t *)0x0;" (assignment_expression "local_a8 = (size_t *)0x0" identifier = (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar39 = local_bc;" (assignment_expression "uVar39 = local_bc" identifier = identifier) ;) (expression_statement "uVar17 = local_b8;" (assignment_expression "uVar17 = local_b8" identifier = identifier) ;) }) (else_clause "else {\n    local_a8 = (size_t *)xmalloc(sVar22 * 4);\n    local_34 = (int *)local_a8;\n    bfd_map_over_sections(local_6c,FUN_00016800,&local_34);\n    qsort(local_a8,sVar22,4,FUN_00016820);\n    sVar23 = sVar22 * 8;\n    local_b4 = (void *)xmalloc(sVar23);\n    memset(local_b4,0,sVar23);\n    if ((DAT_00040b78 == 0) || (sVar22 == 1)) {\n      local_b8 = 0;\n      local_bc = 0;\n    }\n    else {\n      local_b8 = 0;\n      local_bc = 0;\n      local_6c = (size_t *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (size_t *)((int)local_6c + 1);\n        iVar12 = *local_64;\n        uVar39 = local_bc;\n        uVar17 = local_b8;\n        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }\n        local_b8 = uVar17;\n        local_bc = uVar39;\n        local_64 = local_64 + 1;\n      } while ((size_t *)(sVar22 - 1) != local_6c);\n    }\n    uVar39 = local_bc;\n    uVar17 = local_b8;\n    if (DAT_00040b70 != 0) {\n      iVar12 = ((int *)local_a8)[sVar22 - 1];\n      uVar27 = *(uint *)(iVar12 + 0x24);\n      uVar37 = uVar27 + *(uint *)(iVar12 + 0x2c);\n      uVar44 = *(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +\n               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c));\n      if (uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)) {\n        iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           );\n        if (iVar12 == 0) {\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }\n        else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }\n      }\n    }\n  }" else (compound_statement "{\n    local_a8 = (size_t *)xmalloc(sVar22 * 4);\n    local_34 = (int *)local_a8;\n    bfd_map_over_sections(local_6c,FUN_00016800,&local_34);\n    qsort(local_a8,sVar22,4,FUN_00016820);\n    sVar23 = sVar22 * 8;\n    local_b4 = (void *)xmalloc(sVar23);\n    memset(local_b4,0,sVar23);\n    if ((DAT_00040b78 == 0) || (sVar22 == 1)) {\n      local_b8 = 0;\n      local_bc = 0;\n    }\n    else {\n      local_b8 = 0;\n      local_bc = 0;\n      local_6c = (size_t *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (size_t *)((int)local_6c + 1);\n        iVar12 = *local_64;\n        uVar39 = local_bc;\n        uVar17 = local_b8;\n        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }\n        local_b8 = uVar17;\n        local_bc = uVar39;\n        local_64 = local_64 + 1;\n      } while ((size_t *)(sVar22 - 1) != local_6c);\n    }\n    uVar39 = local_bc;\n    uVar17 = local_b8;\n    if (DAT_00040b70 != 0) {\n      iVar12 = ((int *)local_a8)[sVar22 - 1];\n      uVar27 = *(uint *)(iVar12 + 0x24);\n      uVar37 = uVar27 + *(uint *)(iVar12 + 0x2c);\n      uVar44 = *(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +\n               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c));\n      if (uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)) {\n        iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           );\n        if (iVar12 == 0) {\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }\n        else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }\n      }\n    }\n  }" { (expression_statement "local_a8 = (size_t *)xmalloc(sVar22 * 4);" (assignment_expression "local_a8 = (size_t *)xmalloc(sVar22 * 4)" identifier = (cast_expression "(size_t *)xmalloc(sVar22 * 4)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar22 * 4)" identifier (argument_list "(sVar22 * 4)" ( (binary_expression "sVar22 * 4" identifier * number_literal) ))))) ;) (expression_statement "local_34 = (int *)local_a8;" (assignment_expression "local_34 = (int *)local_a8" identifier = (cast_expression "(int *)local_a8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bfd_map_over_sections(local_6c,FUN_00016800,&local_34);" (call_expression "bfd_map_over_sections(local_6c,FUN_00016800,&local_34)" identifier (argument_list "(local_6c,FUN_00016800,&local_34)" ( identifier , identifier , (pointer_expression "&local_34" & identifier) ))) ;) (expression_statement "qsort(local_a8,sVar22,4,FUN_00016820);" (call_expression "qsort(local_a8,sVar22,4,FUN_00016820)" identifier (argument_list "(local_a8,sVar22,4,FUN_00016820)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "sVar23 = sVar22 * 8;" (assignment_expression "sVar23 = sVar22 * 8" identifier = (binary_expression "sVar22 * 8" identifier * number_literal)) ;) (expression_statement "local_b4 = (void *)xmalloc(sVar23);" (assignment_expression "local_b4 = (void *)xmalloc(sVar23)" identifier = (cast_expression "(void *)xmalloc(sVar23)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar23)" identifier (argument_list "(sVar23)" ( identifier ))))) ;) (expression_statement "memset(local_b4,0,sVar23);" (call_expression "memset(local_b4,0,sVar23)" identifier (argument_list "(local_b4,0,sVar23)" ( identifier , number_literal , identifier ))) ;) (if_statement "if ((DAT_00040b78 == 0) || (sVar22 == 1)) {\n      local_b8 = 0;\n      local_bc = 0;\n    }\n    else {\n      local_b8 = 0;\n      local_bc = 0;\n      local_6c = (size_t *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (size_t *)((int)local_6c + 1);\n        iVar12 = *local_64;\n        uVar39 = local_bc;\n        uVar17 = local_b8;\n        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }\n        local_b8 = uVar17;\n        local_bc = uVar39;\n        local_64 = local_64 + 1;\n      } while ((size_t *)(sVar22 - 1) != local_6c);\n    }" if (parenthesized_expression "((DAT_00040b78 == 0) || (sVar22 == 1))" ( (binary_expression "(DAT_00040b78 == 0) || (sVar22 == 1)" (parenthesized_expression "(DAT_00040b78 == 0)" ( (binary_expression "DAT_00040b78 == 0" identifier == number_literal) )) || (parenthesized_expression "(sVar22 == 1)" ( (binary_expression "sVar22 == 1" identifier == number_literal) ))) )) (compound_statement "{\n      local_b8 = 0;\n      local_bc = 0;\n    }" { (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) }) (else_clause "else {\n      local_b8 = 0;\n      local_bc = 0;\n      local_6c = (size_t *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (size_t *)((int)local_6c + 1);\n        iVar12 = *local_64;\n        uVar39 = local_bc;\n        uVar17 = local_b8;\n        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }\n        local_b8 = uVar17;\n        local_bc = uVar39;\n        local_64 = local_64 + 1;\n      } while ((size_t *)(sVar22 - 1) != local_6c);\n    }" else (compound_statement "{\n      local_b8 = 0;\n      local_bc = 0;\n      local_6c = (size_t *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (size_t *)((int)local_6c + 1);\n        iVar12 = *local_64;\n        uVar39 = local_bc;\n        uVar17 = local_b8;\n        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }\n        local_b8 = uVar17;\n        local_bc = uVar39;\n        local_64 = local_64 + 1;\n      } while ((size_t *)(sVar22 - 1) != local_6c);\n    }" { (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" identifier = number_literal) ;) (expression_statement "local_6c = (size_t *)0x0;" (assignment_expression "local_6c = (size_t *)0x0" identifier = (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_64 = (int *)local_a8;" (assignment_expression "local_64 = (int *)local_a8" identifier = (cast_expression "(int *)local_a8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n        local_6c = (size_t *)((int)local_6c + 1);\n        iVar12 = *local_64;\n        uVar39 = local_bc;\n        uVar17 = local_b8;\n        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }\n        local_b8 = uVar17;\n        local_bc = uVar39;\n        local_64 = local_64 + 1;\n      } while ((size_t *)(sVar22 - 1) != local_6c);" do (compound_statement "{\n        local_6c = (size_t *)((int)local_6c + 1);\n        iVar12 = *local_64;\n        uVar39 = local_bc;\n        uVar17 = local_b8;\n        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }\n        local_b8 = uVar17;\n        local_bc = uVar39;\n        local_64 = local_64 + 1;\n      }" { (expression_statement "local_6c = (size_t *)((int)local_6c + 1);" (assignment_expression "local_6c = (size_t *)((int)local_6c + 1)" identifier = (cast_expression "(size_t *)((int)local_6c + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_6c + 1)" ( (binary_expression "(int)local_6c + 1" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar12 = *local_64;" (assignment_expression "iVar12 = *local_64" identifier = (pointer_expression "*local_64" * identifier)) ;) (expression_statement "uVar39 = local_bc;" (assignment_expression "uVar39 = local_bc" identifier = identifier) ;) (expression_statement "uVar17 = local_b8;" (assignment_expression "uVar17 = local_b8" identifier = identifier) ;) (if_statement "if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }" if (parenthesized_expression "((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102)" ( (binary_expression "(*(uint *)(iVar12 + 0x14) & 0x102) == 0x102" (parenthesized_expression "(*(uint *)(iVar12 + 0x14) & 0x102)" ( (binary_expression "*(uint *)(iVar12 + 0x14) & 0x102" (pointer_expression "*(uint *)(iVar12 + 0x14)" * (cast_expression "(uint *)(iVar12 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x14)" ( (binary_expression "iVar12 + 0x14" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }" { (expression_statement "uVar27 = *(uint *)(iVar12 + 0x2c);" (assignment_expression "uVar27 = *(uint *)(iVar12 + 0x2c)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x2c)" * (cast_expression "(uint *)(iVar12 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2c)" ( (binary_expression "iVar12 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "uVar37 = *(uint *)(local_64[1] + 0x28);" (assignment_expression "uVar37 = *(uint *)(local_64[1] + 0x28)" identifier = (pointer_expression "*(uint *)(local_64[1] + 0x28)" * (cast_expression "(uint *)(local_64[1] + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_64[1] + 0x28)" ( (binary_expression "local_64[1] + 0x28" (subscript_expression "local_64[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "uVar44 = *(uint *)(local_64[1] + 0x24);" (assignment_expression "uVar44 = *(uint *)(local_64[1] + 0x24)" identifier = (pointer_expression "*(uint *)(local_64[1] + 0x24)" * (cast_expression "(uint *)(local_64[1] + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_64[1] + 0x24)" ( (binary_expression "local_64[1] + 0x24" (subscript_expression "local_64[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);" (assignment_expression "uVar33 = uVar27 + *(uint *)(iVar12 + 0x24)" identifier = (binary_expression "uVar27 + *(uint *)(iVar12 + 0x24)" identifier + (pointer_expression "*(uint *)(iVar12 + 0x24)" * (cast_expression "(uint *)(iVar12 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) )))))) ;) (expression_statement "uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));" (assignment_expression "uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24))" identifier = (binary_expression "*(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24))" (binary_expression "*(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28)" (pointer_expression "*(int *)(iVar12 + 0x30)" * (cast_expression "(int *)(iVar12 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x30)" ( (binary_expression "iVar12 + 0x30" identifier + number_literal) )))) + (pointer_expression "*(int *)(iVar12 + 0x28)" * (cast_expression "(int *)(iVar12 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x28)" ( (binary_expression "iVar12 + 0x28" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar27,*(uint *)(iVar12 + 0x24))" identifier (argument_list "(uVar27,*(uint *)(iVar12 + 0x24))" ( identifier , (pointer_expression "*(uint *)(iVar12 + 0x24)" * (cast_expression "(uint *)(iVar12 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) )))) )))))) ;) (if_statement "if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }" if (parenthesized_expression "(uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44))" ( (binary_expression "uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)" (binary_expression "uVar40 < uVar37" identifier < identifier) || (binary_expression "uVar40 - uVar37 < (uint)(uVar33 < uVar44)" (binary_expression "uVar40 - uVar37" identifier - identifier) < (call_expression "(uint)(uVar33 < uVar44)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar33 < uVar44)" ( (binary_expression "uVar33 < uVar44" identifier < identifier) ))))) )) (compound_statement "{\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }" { (expression_statement "uVar17 = uVar44 - uVar33;" (assignment_expression "uVar17 = uVar44 - uVar33" identifier = (binary_expression "uVar44 - uVar33" identifier - identifier)) ;) (expression_statement "uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);" (assignment_expression "uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33)" identifier = (binary_expression "(uVar37 - uVar40) - (uint)(uVar44 < uVar33)" (parenthesized_expression "(uVar37 - uVar40)" ( (binary_expression "uVar37 - uVar40" identifier - identifier) )) - (call_expression "(uint)(uVar44 < uVar33)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar44 < uVar33)" ( (binary_expression "uVar44 < uVar33" identifier < identifier) ))))) ;) (expression_statement "iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));" (assignment_expression "iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17))" identifier = (call_expression "bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17))" identifier (argument_list "(param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17))" ( identifier , identifier , (binary_expression "uVar27 + uVar17" identifier + identifier) , (binary_expression "*(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17)" (binary_expression "*(int *)(iVar12 + 0x30) + uVar39" (pointer_expression "*(int *)(iVar12 + 0x30)" * (cast_expression "(int *)(iVar12 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x30)" ( (binary_expression "iVar12 + 0x30" identifier + number_literal) )))) + identifier) + (cast_expression "(uint)CARRY4(uVar27,uVar17)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar27,uVar17)" identifier (argument_list "(uVar27,uVar17)" ( identifier , identifier ))))) )))) ;) (if_statement "if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }" { (expression_statement "uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);" (assignment_expression "uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0)" identifier = (call_expression "dcgettext(0,"Can\'t fill gap after section",5,0)" identifier (argument_list "(0,"Can\'t fill gap after section",5,0)" ( number_literal , (string_literal ""Can\'t fill gap after section"" " string_content escape_sequence string_content ") , number_literal , number_literal )))) ;) (expression_statement "FUN_0002d3a0(0,param_2,*local_64,uVar13);" (call_expression "FUN_0002d3a0(0,param_2,*local_64,uVar13)" identifier (argument_list "(0,param_2,*local_64,uVar13)" ( number_literal , identifier , (pointer_expression "*local_64" * identifier) , identifier ))) ;) (expression_statement "DAT_00040bc8 = 1;" (assignment_expression "DAT_00040bc8 = 1" identifier = number_literal) ;) (break_statement "break;" break ;) })) (expression_statement "*(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;" (assignment_expression "*(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17" (pointer_expression "*(uint *)((int)local_b4 + (int)local_6c * 8 + -8)" * (cast_expression "(uint *)((int)local_b4 + (int)local_6c * 8 + -8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + (int)local_6c * 8 + -8)" ( (binary_expression "(int)local_b4 + (int)local_6c * 8 + -8" (binary_expression "(int)local_b4 + (int)local_6c * 8" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_6c * 8" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;" (assignment_expression "*(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39" (pointer_expression "*(uint *)((int)local_b4 + (int)local_6c * 8 + -4)" * (cast_expression "(uint *)((int)local_b4 + (int)local_6c * 8 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + (int)local_6c * 8 + -4)" ( (binary_expression "(int)local_b4 + (int)local_6c * 8 + -4" (binary_expression "(int)local_b4 + (int)local_6c * 8" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_6c * 8" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) = identifier) ;) (if_statement "if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }" if (parenthesized_expression "(uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39)" ( (binary_expression "uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39" (binary_expression "uVar39 <= local_bc" identifier <= identifier) && (binary_expression "(uint)(local_b8 < uVar17) <= local_bc - uVar39" (call_expression "(uint)(local_b8 < uVar17)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_b8 < uVar17)" ( (binary_expression "local_b8 < uVar17" identifier < identifier) ))) <= (binary_expression "local_bc - uVar39" identifier - identifier))) )) (compound_statement "{\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }" { (expression_statement "uVar39 = local_bc;" (assignment_expression "uVar39 = local_bc" identifier = identifier) ;) (expression_statement "uVar17 = local_b8;" (assignment_expression "uVar17 = local_b8" identifier = identifier) ;) })) })) })) (expression_statement "local_b8 = uVar17;" (assignment_expression "local_b8 = uVar17" identifier = identifier) ;) (expression_statement "local_bc = uVar39;" (assignment_expression "local_bc = uVar39" identifier = identifier) ;) (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((size_t *)(sVar22 - 1) != local_6c)" ( (binary_expression "(size_t *)(sVar22 - 1) != local_6c" (cast_expression "(size_t *)(sVar22 - 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(sVar22 - 1)" ( (binary_expression "sVar22 - 1" identifier - number_literal) ))) != identifier) )) ;) }))) (expression_statement "uVar39 = local_bc;" (assignment_expression "uVar39 = local_bc" identifier = identifier) ;) (expression_statement "uVar17 = local_b8;" (assignment_expression "uVar17 = local_b8" identifier = identifier) ;) (if_statement "if (DAT_00040b70 != 0) {\n      iVar12 = ((int *)local_a8)[sVar22 - 1];\n      uVar27 = *(uint *)(iVar12 + 0x24);\n      uVar37 = uVar27 + *(uint *)(iVar12 + 0x2c);\n      uVar44 = *(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +\n               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c));\n      if (uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)) {\n        iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           );\n        if (iVar12 == 0) {\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }\n        else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }\n      }\n    }" if (parenthesized_expression "(DAT_00040b70 != 0)" ( (binary_expression "DAT_00040b70 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar12 = ((int *)local_a8)[sVar22 - 1];\n      uVar27 = *(uint *)(iVar12 + 0x24);\n      uVar37 = uVar27 + *(uint *)(iVar12 + 0x2c);\n      uVar44 = *(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +\n               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c));\n      if (uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)) {\n        iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           );\n        if (iVar12 == 0) {\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }\n        else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }\n      }\n    }" { (expression_statement "iVar12 = ((int *)local_a8)[sVar22 - 1];" (assignment_expression "iVar12 = ((int *)local_a8)[sVar22 - 1]" identifier = (subscript_expression "((int *)local_a8)[sVar22 - 1]" (parenthesized_expression "((int *)local_a8)" ( (cast_expression "(int *)local_a8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ (binary_expression "sVar22 - 1" identifier - number_literal) ])) ;) (expression_statement "uVar27 = *(uint *)(iVar12 + 0x24);" (assignment_expression "uVar27 = *(uint *)(iVar12 + 0x24)" identifier = (pointer_expression "*(uint *)(iVar12 + 0x24)" * (cast_expression "(uint *)(iVar12 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x24)" ( (binary_expression "iVar12 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "uVar37 = uVar27 + *(uint *)(iVar12 + 0x2c);" (assignment_expression "uVar37 = uVar27 + *(uint *)(iVar12 + 0x2c)" identifier = (binary_expression "uVar27 + *(uint *)(iVar12 + 0x2c)" identifier + (pointer_expression "*(uint *)(iVar12 + 0x2c)" * (cast_expression "(uint *)(iVar12 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2c)" ( (binary_expression "iVar12 + 0x2c" identifier + number_literal) )))))) ;) (expression_statement "uVar44 = *(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +\n               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c));" (assignment_expression "uVar44 = *(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +\n               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c))" identifier = (binary_expression "*(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +\n               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c))" (binary_expression "*(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30)" (pointer_expression "*(int *)(iVar12 + 0x28)" * (cast_expression "(int *)(iVar12 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x28)" ( (binary_expression "iVar12 + 0x28" identifier + number_literal) )))) + (pointer_expression "*(int *)(iVar12 + 0x30)" * (cast_expression "(int *)(iVar12 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x30)" ( (binary_expression "iVar12 + 0x30" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar27,*(uint *)(iVar12 + 0x2c))" identifier (argument_list "(uVar27,*(uint *)(iVar12 + 0x2c))" ( identifier , (pointer_expression "*(uint *)(iVar12 + 0x2c)" * (cast_expression "(uint *)(iVar12 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2c)" ( (binary_expression "iVar12 + 0x2c" identifier + number_literal) )))) )))))) ;) (if_statement "if (uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)) {\n        iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           );\n        if (iVar12 == 0) {\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }\n        else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }\n      }" if (parenthesized_expression "(uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68))" ( (binary_expression "uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)" (binary_expression "uVar44 < DAT_00040b6c" identifier < identifier) || (binary_expression "uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)" (binary_expression "uVar44 - DAT_00040b6c" identifier - identifier) < (call_expression "(uint)(uVar37 < DAT_00040b68)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar37 < DAT_00040b68)" ( (binary_expression "uVar37 < DAT_00040b68" identifier < identifier) ))))) )) (compound_statement "{\n        iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           );\n        if (iVar12 == 0) {\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }\n        else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }\n      }" { (expression_statement "iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           );" (assignment_expression "iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           )" identifier = (call_expression "bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           )" identifier (argument_list "(param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           )" ( identifier , identifier , (binary_expression "DAT_00040b68 - uVar27" identifier - identifier) , (binary_expression "(DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)" (parenthesized_expression "(DAT_00040b6c - *(int *)(iVar12 + 0x28))" ( (binary_expression "DAT_00040b6c - *(int *)(iVar12 + 0x28)" identifier - (pointer_expression "*(int *)(iVar12 + 0x28)" * (cast_expression "(int *)(iVar12 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x28)" ( (binary_expression "iVar12 + 0x28" identifier + number_literal) ))))) )) - (call_expression "(uint)(DAT_00040b68 < uVar27)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(DAT_00040b68 < uVar27)" ( (binary_expression "DAT_00040b68 < uVar27" identifier < identifier) )))) )))) ;) (if_statement "if (iVar12 == 0) {\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }\n        else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }" { (expression_statement "uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);" (assignment_expression "uVar13 = dcgettext(0,"can\'t add padding",5,uVar37)" identifier = (call_expression "dcgettext(0,"can\'t add padding",5,uVar37)" identifier (argument_list "(0,"can\'t add padding",5,uVar37)" ( number_literal , (string_literal ""can\'t add padding"" " string_content escape_sequence string_content ") , number_literal , identifier )))) ;) (expression_statement "FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);" (call_expression "FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13)" identifier (argument_list "(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13)" ( number_literal , identifier , (subscript_expression "((int *)local_a8)[sVar22 - 1]" (parenthesized_expression "((int *)local_a8)" ( (cast_expression "(int *)local_a8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ (binary_expression "sVar22 - 1" identifier - number_literal) ]) , identifier ))) ;) (expression_statement "DAT_00040bc8 = 1;" (assignment_expression "DAT_00040bc8 = 1" identifier = number_literal) ;) }) (else_clause "else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }" else (compound_statement "{\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }" { (expression_statement "uVar17 = DAT_00040b68 - uVar37;" (assignment_expression "uVar17 = DAT_00040b68 - uVar37" identifier = (binary_expression "DAT_00040b68 - uVar37" identifier - identifier)) ;) (expression_statement "uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);" (assignment_expression "uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37)" identifier = (binary_expression "(DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37)" (parenthesized_expression "(DAT_00040b6c - uVar44)" ( (binary_expression "DAT_00040b6c - uVar44" identifier - identifier) )) - (call_expression "(uint)(DAT_00040b68 < uVar37)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(DAT_00040b68 < uVar37)" ( (binary_expression "DAT_00040b68 < uVar37" identifier < identifier) ))))) ;) (expression_statement "*(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;" (assignment_expression "*(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17" (pointer_expression "*(uint *)((int)local_b4 + (sVar23 - 8))" * (cast_expression "(uint *)((int)local_b4 + (sVar23 - 8))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + (sVar23 - 8))" ( (binary_expression "(int)local_b4 + (sVar23 - 8)" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(sVar23 - 8)" ( (binary_expression "sVar23 - 8" identifier - number_literal) ))) )))) = identifier) ;) (expression_statement "*(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;" (assignment_expression "*(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39" (pointer_expression "*(uint *)((int)local_b4 + (sVar23 - 4))" * (cast_expression "(uint *)((int)local_b4 + (sVar23 - 4))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + (sVar23 - 4))" ( (binary_expression "(int)local_b4 + (sVar23 - 4)" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(sVar23 - 4)" ( (binary_expression "sVar23 - 4" identifier - number_literal) ))) )))) = identifier) ;) (if_statement "if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }" if (parenthesized_expression "(uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39)" ( (binary_expression "uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39" (binary_expression "uVar39 <= local_bc" identifier <= identifier) && (binary_expression "(uint)(local_b8 < uVar17) <= local_bc - uVar39" (call_expression "(uint)(local_b8 < uVar17)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_b8 < uVar17)" ( (binary_expression "local_b8 < uVar17" identifier < identifier) ))) <= (binary_expression "local_bc - uVar39" identifier - identifier))) )) (compound_statement "{\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }" { (expression_statement "uVar39 = local_bc;" (assignment_expression "uVar39 = local_bc" identifier = identifier) ;) (expression_statement "uVar17 = local_b8;" (assignment_expression "uVar17 = local_b8" identifier = identifier) ;) })) }))) })) })) }))) (expression_statement "local_b8 = uVar17;" (assignment_expression "local_b8 = uVar17" identifier = identifier) ;) (expression_statement "local_bc = uVar39;" (assignment_expression "local_bc = uVar39" identifier = identifier) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (if_statement "if (DAT_00040b48 != 0) {\n    iVar12 = FUN_0001c9c0(param_1,DAT_00040bdc,local_8c,0);\n  }" if (parenthesized_expression "(DAT_00040b48 != 0)" ( (binary_expression "DAT_00040b48 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar12 = FUN_0001c9c0(param_1,DAT_00040bdc,local_8c,0);\n  }" { (expression_statement "iVar12 = FUN_0001c9c0(param_1,DAT_00040bdc,local_8c,0);" (assignment_expression "iVar12 = FUN_0001c9c0(param_1,DAT_00040bdc,local_8c,0)" identifier = (call_expression "FUN_0001c9c0(param_1,DAT_00040bdc,local_8c,0)" identifier (argument_list "(param_1,DAT_00040bdc,local_8c,0)" ( identifier , identifier , identifier , number_literal )))) ;) })) (if_statement "if (DAT_00040bb0 - 2U < 6) {\nLAB_0001962a:\n    if (DAT_00040bb0 != 7) goto LAB_0001962f;\n  }\n  else {\n    if (DAT_00040b30 == 0 && DAT_00040bac == 0) {\n      iVar18 = htab_elements(DAT_00040b2c);\n      if ((((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&\n         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))))\n      goto LAB_00019e4d;\n      goto LAB_0001962a;\n    }\nLAB_0001962f:\n    bfd_set_error(0);\n    bfd_map_over_sections(param_1,FUN_000187a0,DAT_00040bdc);\n    iVar18 = bfd_get_error();\n    if (iVar18 != 0) {\n      DAT_00040bc8 = 1;\n      return 0;\n    }\n  }" if (parenthesized_expression "(DAT_00040bb0 - 2U < 6)" ( (binary_expression "DAT_00040bb0 - 2U < 6" (binary_expression "DAT_00040bb0 - 2U" identifier - number_literal) < number_literal) )) (compound_statement "{\nLAB_0001962a:\n    if (DAT_00040bb0 != 7) goto LAB_0001962f;\n  }" { (labeled_statement "LAB_0001962a:\n    if (DAT_00040bb0 != 7) goto LAB_0001962f;" statement_identifier : (if_statement "if (DAT_00040bb0 != 7) goto LAB_0001962f;" if (parenthesized_expression "(DAT_00040bb0 != 7)" ( (binary_expression "DAT_00040bb0 != 7" identifier != number_literal) )) (goto_statement "goto LAB_0001962f;" goto statement_identifier ;))) }) (else_clause "else {\n    if (DAT_00040b30 == 0 && DAT_00040bac == 0) {\n      iVar18 = htab_elements(DAT_00040b2c);\n      if ((((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&\n         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))))\n      goto LAB_00019e4d;\n      goto LAB_0001962a;\n    }\nLAB_0001962f:\n    bfd_set_error(0);\n    bfd_map_over_sections(param_1,FUN_000187a0,DAT_00040bdc);\n    iVar18 = bfd_get_error();\n    if (iVar18 != 0) {\n      DAT_00040bc8 = 1;\n      return 0;\n    }\n  }" else (compound_statement "{\n    if (DAT_00040b30 == 0 && DAT_00040bac == 0) {\n      iVar18 = htab_elements(DAT_00040b2c);\n      if ((((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&\n         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))))\n      goto LAB_00019e4d;\n      goto LAB_0001962a;\n    }\nLAB_0001962f:\n    bfd_set_error(0);\n    bfd_map_over_sections(param_1,FUN_000187a0,DAT_00040bdc);\n    iVar18 = bfd_get_error();\n    if (iVar18 != 0) {\n      DAT_00040bc8 = 1;\n      return 0;\n    }\n  }" { (if_statement "if (DAT_00040b30 == 0 && DAT_00040bac == 0) {\n      iVar18 = htab_elements(DAT_00040b2c);\n      if ((((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&\n         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))))\n      goto LAB_00019e4d;\n      goto LAB_0001962a;\n    }" if (parenthesized_expression "(DAT_00040b30 == 0 && DAT_00040bac == 0)" ( (binary_expression "DAT_00040b30 == 0 && DAT_00040bac == 0" (binary_expression "DAT_00040b30 == 0" identifier == number_literal) && (binary_expression "DAT_00040bac == 0" identifier == number_literal)) )) (compound_statement "{\n      iVar18 = htab_elements(DAT_00040b2c);\n      if ((((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&\n         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))))\n      goto LAB_00019e4d;\n      goto LAB_0001962a;\n    }" { (expression_statement "iVar18 = htab_elements(DAT_00040b2c);" (assignment_expression "iVar18 = htab_elements(DAT_00040b2c)" identifier = (call_expression "htab_elements(DAT_00040b2c)" identifier (argument_list "(DAT_00040b2c)" ( identifier )))) ;) (if_statement "if ((((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&\n         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))))\n      goto LAB_00019e4d;" if (parenthesized_expression "((((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&\n         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))))" ( (binary_expression "(((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&\n         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0)))" (parenthesized_expression "(((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0))" ( (binary_expression "((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)" (parenthesized_expression "((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0))))" ( (binary_expression "(((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))" (parenthesized_expression "(((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0))" ( (binary_expression "((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)" (parenthesized_expression "((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0))" ( (binary_expression "(iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)" (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)" ( (comma_expression "iVar18 = htab_elements(DAT_00040b24), iVar18 == 0" (assignment_expression "iVar18 = htab_elements(DAT_00040b24)" identifier = (call_expression "htab_elements(DAT_00040b24)" identifier (argument_list "(DAT_00040b24)" ( identifier )))) , (binary_expression "iVar18 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)" ( (comma_expression "iVar18 = htab_elements(DAT_00040b20), iVar18 == 0" (assignment_expression "iVar18 = htab_elements(DAT_00040b20)" identifier = (call_expression "htab_elements(DAT_00040b20)" identifier (argument_list "(DAT_00040b20)" ( identifier )))) , (binary_expression "iVar18 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))" ( (parenthesized_expression "(iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0))" ( (comma_expression "iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)" (assignment_expression "iVar18 = htab_elements(DAT_00040b1c)" identifier = (call_expression "htab_elements(DAT_00040b1c)" identifier (argument_list "(DAT_00040b1c)" ( identifier )))) , (binary_expression "iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)" (binary_expression "iVar18 == 0" identifier == number_literal) && (parenthesized_expression "(iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)" ( (comma_expression "iVar18 = htab_elements(DAT_00040b18), iVar18 == 0" (assignment_expression "iVar18 = htab_elements(DAT_00040b18)" identifier = (call_expression "htab_elements(DAT_00040b18)" identifier (argument_list "(DAT_00040b18)" ( identifier )))) , (binary_expression "iVar18 == 0" identifier == number_literal)) )))) )) ))) )) && (parenthesized_expression "(iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)" ( (comma_expression "iVar18 = htab_elements(DAT_00040b14), iVar18 == 0" (assignment_expression "iVar18 = htab_elements(DAT_00040b14)" identifier = (call_expression "htab_elements(DAT_00040b14)" identifier (argument_list "(DAT_00040b14)" ( identifier )))) , (binary_expression "iVar18 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0)))" ( (parenthesized_expression "((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))" ( (binary_expression "(iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0)" (parenthesized_expression "(iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0))" ( (comma_expression "iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)" (assignment_expression "iVar18 = htab_elements(DAT_00040b10)" identifier = (call_expression "htab_elements(DAT_00040b10)" identifier (argument_list "(DAT_00040b10)" ( identifier )))) , (binary_expression "DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)" (binary_expression "DAT_00040af8 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(DAT_00040be0 == (undefined4 *)0x0)" ( (binary_expression "DAT_00040be0 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )))) )) && (parenthesized_expression "(((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0)" ( (binary_expression "((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0" (parenthesized_expression "((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0)" ( (binary_expression "(((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0" (parenthesized_expression "(((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0)" ( (binary_expression "((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0" (parenthesized_expression "((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0)" ( (binary_expression "(((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0" (parenthesized_expression "(((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)" ( (binary_expression "((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0" (parenthesized_expression "((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0)" ( (binary_expression "(DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0" (parenthesized_expression "(DAT_00040ba4 == 0 && DAT_00040ba0 == 0)" ( (binary_expression "DAT_00040ba4 == 0 && DAT_00040ba0 == 0" (binary_expression "DAT_00040ba4 == 0" identifier == number_literal) && (binary_expression "DAT_00040ba0 == 0" identifier == number_literal)) )) && (binary_expression "DAT_00040b48 == 0" identifier == number_literal)) )) && (binary_expression "DAT_00040b3c == 0" identifier == number_literal)) )) && (binary_expression "DAT_00040b38 == 0" identifier == number_literal)) )) && (binary_expression "DAT_00040b00 == 0" identifier == number_literal)) )) && (binary_expression "DAT_00040b04 == 0" identifier == number_literal)) )) && (binary_expression "iVar18 == 0" identifier == number_literal)) ))) )) ))) )) (goto_statement "goto LAB_00019e4d;" goto statement_identifier ;)) (goto_statement "goto LAB_0001962a;" goto statement_identifier ;) })) (labeled_statement "LAB_0001962f:\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_000187a0,DAT_00040bdc);" (call_expression "bfd_map_over_sections(param_1,FUN_000187a0,DAT_00040bdc)" identifier (argument_list "(param_1,FUN_000187a0,DAT_00040bdc)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar18 = bfd_get_error();" (assignment_expression "iVar18 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar18 != 0) {\n      DAT_00040bc8 = 1;\n      return 0;\n    }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n      DAT_00040bc8 = 1;\n      return 0;\n    }" { (expression_statement "DAT_00040bc8 = 1;" (assignment_expression "DAT_00040bc8 = 1" identifier = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) }))) (expression_statement "piVar19 = (int *)xmalloc((DAT_00040b04 + local_8c) * 4 + 4);" (assignment_expression "piVar19 = (int *)xmalloc((DAT_00040b04 + local_8c) * 4 + 4)" identifier = (cast_expression "(int *)xmalloc((DAT_00040b04 + local_8c) * 4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc((DAT_00040b04 + local_8c) * 4 + 4)" identifier (argument_list "((DAT_00040b04 + local_8c) * 4 + 4)" ( (binary_expression "(DAT_00040b04 + local_8c) * 4 + 4" (binary_expression "(DAT_00040b04 + local_8c) * 4" (parenthesized_expression "(DAT_00040b04 + local_8c)" ( (binary_expression "DAT_00040b04 + local_8c" identifier + identifier) )) * number_literal) + number_literal) ))))) ;) (expression_statement "local_84 = DAT_00040bdc;" (assignment_expression "local_84 = DAT_00040bdc" identifier = identifier) ;) (expression_statement "uVar39 = *(uint *)((int)param_1 + 0x28);" (assignment_expression "uVar39 = *(uint *)((int)param_1 + 0x28)" identifier = (pointer_expression "*(uint *)((int)param_1 + 0x28)" * (cast_expression "(uint *)((int)param_1 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x28)" ( (binary_expression "(int)param_1 + 0x28" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "DAT_00040bd8 = piVar19;" (assignment_expression "DAT_00040bd8 = piVar19" identifier = identifier) ;) (if_statement "if (local_8c != 0) {\n    piVar1 = DAT_00040bdc + local_8c;\n    local_8c = 0;\n    puVar20 = PTR__bfd_std_section_0003ffc8 + 0xc0;\n    do {\n      iVar18 = DAT_00040b04;\n      piVar4 = (int *)*local_84;\n      uVar17 = piVar4[4];\n      piVar24 = (int *)piVar4[1];\n      puVar5 = (undefined *)piVar4[5];\n      if (((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) &&\n         (pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0)) {\n        local_6c = (size_t *)0x0;\n        piVar34 = DAT_00040b08;\n        while (iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0) {\n          local_6c = (size_t *)((int)local_6c + 1);\n          piVar34 = (int *)*piVar34;\n          if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar25);\n        piVar34[5] = (int)"";\n        piVar34 = piVar19 + local_8c;\n        local_8c = local_8c + 1;\n        iVar18 = FUN_00017920();\n        *piVar34 = iVar18;\n      }\nLAB_000197a8:\n      iVar18 = htab_elements(DAT_00040b10);\n      piVar34 = piVar24;\n      if ((iVar18 != 0) || (DAT_00040be0 != (undefined4 *)0x0)) {\n        local_30 = 0;\n        local_34 = piVar24;\n        iVar18 = htab_find(DAT_00040b10,&local_34);\n        if (((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)) {\n          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }\n        }\n        piVar4[1] = (int)piVar34;\n      }\n      pcVar25 = DAT_00040af8;\n      cVar2 = *(char *)(*(int *)((int)param_1 + 4) + 0x18);\n      if ((char)*piVar34 == cVar2) {\n        if (DAT_00040b3c == 0) {\n          if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }\nLAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }\n      }\n      else {\n        if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))\n        goto LAB_0001982b;\nLAB_00019ab1:\n        sVar22 = strlen(pcVar25);\n        sVar23 = strlen((char *)piVar34);\n        piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n        local_6c = (size_t *)((int)piVar24 + 1);\n        *(char *)piVar24 = *(char *)(param_2[1] + 0x18);\nLAB_00019858:\n        pcVar25 = DAT_00040af8;\n        if (DAT_00040af8 != (char *)0x0) {\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }\n        strcpy((char *)local_6c,(char *)piVar34);\n        piVar4[1] = (int)piVar24;\n        piVar34 = piVar24;\n      }\n      if (DAT_00040bb0 == 7) goto LAB_00019928;\n      if ((uVar17 & 0x20) == 0) {\n        if (((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)) {\n          if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;\n        }\n        else {\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;\n      }\n      else {\n        iVar18 = FUN_000179c0();\n        if (iVar18 != 0) {\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }\nLAB_0001994f:\n        iVar18 = FUN_00017a30();\n        if (iVar18 == 0) {\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }\n      }\n      local_84 = local_84 + 1;\n    } while (piVar1 != local_84);\n  }" if (parenthesized_expression "(local_8c != 0)" ( (binary_expression "local_8c != 0" identifier != number_literal) )) (compound_statement "{\n    piVar1 = DAT_00040bdc + local_8c;\n    local_8c = 0;\n    puVar20 = PTR__bfd_std_section_0003ffc8 + 0xc0;\n    do {\n      iVar18 = DAT_00040b04;\n      piVar4 = (int *)*local_84;\n      uVar17 = piVar4[4];\n      piVar24 = (int *)piVar4[1];\n      puVar5 = (undefined *)piVar4[5];\n      if (((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) &&\n         (pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0)) {\n        local_6c = (size_t *)0x0;\n        piVar34 = DAT_00040b08;\n        while (iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0) {\n          local_6c = (size_t *)((int)local_6c + 1);\n          piVar34 = (int *)*piVar34;\n          if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar25);\n        piVar34[5] = (int)"";\n        piVar34 = piVar19 + local_8c;\n        local_8c = local_8c + 1;\n        iVar18 = FUN_00017920();\n        *piVar34 = iVar18;\n      }\nLAB_000197a8:\n      iVar18 = htab_elements(DAT_00040b10);\n      piVar34 = piVar24;\n      if ((iVar18 != 0) || (DAT_00040be0 != (undefined4 *)0x0)) {\n        local_30 = 0;\n        local_34 = piVar24;\n        iVar18 = htab_find(DAT_00040b10,&local_34);\n        if (((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)) {\n          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }\n        }\n        piVar4[1] = (int)piVar34;\n      }\n      pcVar25 = DAT_00040af8;\n      cVar2 = *(char *)(*(int *)((int)param_1 + 4) + 0x18);\n      if ((char)*piVar34 == cVar2) {\n        if (DAT_00040b3c == 0) {\n          if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }\nLAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }\n      }\n      else {\n        if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))\n        goto LAB_0001982b;\nLAB_00019ab1:\n        sVar22 = strlen(pcVar25);\n        sVar23 = strlen((char *)piVar34);\n        piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n        local_6c = (size_t *)((int)piVar24 + 1);\n        *(char *)piVar24 = *(char *)(param_2[1] + 0x18);\nLAB_00019858:\n        pcVar25 = DAT_00040af8;\n        if (DAT_00040af8 != (char *)0x0) {\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }\n        strcpy((char *)local_6c,(char *)piVar34);\n        piVar4[1] = (int)piVar24;\n        piVar34 = piVar24;\n      }\n      if (DAT_00040bb0 == 7) goto LAB_00019928;\n      if ((uVar17 & 0x20) == 0) {\n        if (((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)) {\n          if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;\n        }\n        else {\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;\n      }\n      else {\n        iVar18 = FUN_000179c0();\n        if (iVar18 != 0) {\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }\nLAB_0001994f:\n        iVar18 = FUN_00017a30();\n        if (iVar18 == 0) {\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }\n      }\n      local_84 = local_84 + 1;\n    } while (piVar1 != local_84);\n  }" { (expression_statement "piVar1 = DAT_00040bdc + local_8c;" (assignment_expression "piVar1 = DAT_00040bdc + local_8c" identifier = (binary_expression "DAT_00040bdc + local_8c" identifier + identifier)) ;) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" identifier = number_literal) ;) (expression_statement "puVar20 = PTR__bfd_std_section_0003ffc8 + 0xc0;" (assignment_expression "puVar20 = PTR__bfd_std_section_0003ffc8 + 0xc0" identifier = (binary_expression "PTR__bfd_std_section_0003ffc8 + 0xc0" identifier + number_literal)) ;) (do_statement "do {\n      iVar18 = DAT_00040b04;\n      piVar4 = (int *)*local_84;\n      uVar17 = piVar4[4];\n      piVar24 = (int *)piVar4[1];\n      puVar5 = (undefined *)piVar4[5];\n      if (((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) &&\n         (pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0)) {\n        local_6c = (size_t *)0x0;\n        piVar34 = DAT_00040b08;\n        while (iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0) {\n          local_6c = (size_t *)((int)local_6c + 1);\n          piVar34 = (int *)*piVar34;\n          if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar25);\n        piVar34[5] = (int)"";\n        piVar34 = piVar19 + local_8c;\n        local_8c = local_8c + 1;\n        iVar18 = FUN_00017920();\n        *piVar34 = iVar18;\n      }\nLAB_000197a8:\n      iVar18 = htab_elements(DAT_00040b10);\n      piVar34 = piVar24;\n      if ((iVar18 != 0) || (DAT_00040be0 != (undefined4 *)0x0)) {\n        local_30 = 0;\n        local_34 = piVar24;\n        iVar18 = htab_find(DAT_00040b10,&local_34);\n        if (((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)) {\n          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }\n        }\n        piVar4[1] = (int)piVar34;\n      }\n      pcVar25 = DAT_00040af8;\n      cVar2 = *(char *)(*(int *)((int)param_1 + 4) + 0x18);\n      if ((char)*piVar34 == cVar2) {\n        if (DAT_00040b3c == 0) {\n          if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }\nLAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }\n      }\n      else {\n        if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))\n        goto LAB_0001982b;\nLAB_00019ab1:\n        sVar22 = strlen(pcVar25);\n        sVar23 = strlen((char *)piVar34);\n        piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n        local_6c = (size_t *)((int)piVar24 + 1);\n        *(char *)piVar24 = *(char *)(param_2[1] + 0x18);\nLAB_00019858:\n        pcVar25 = DAT_00040af8;\n        if (DAT_00040af8 != (char *)0x0) {\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }\n        strcpy((char *)local_6c,(char *)piVar34);\n        piVar4[1] = (int)piVar24;\n        piVar34 = piVar24;\n      }\n      if (DAT_00040bb0 == 7) goto LAB_00019928;\n      if ((uVar17 & 0x20) == 0) {\n        if (((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)) {\n          if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;\n        }\n        else {\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;\n      }\n      else {\n        iVar18 = FUN_000179c0();\n        if (iVar18 != 0) {\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }\nLAB_0001994f:\n        iVar18 = FUN_00017a30();\n        if (iVar18 == 0) {\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }\n      }\n      local_84 = local_84 + 1;\n    } while (piVar1 != local_84);" do (compound_statement "{\n      iVar18 = DAT_00040b04;\n      piVar4 = (int *)*local_84;\n      uVar17 = piVar4[4];\n      piVar24 = (int *)piVar4[1];\n      puVar5 = (undefined *)piVar4[5];\n      if (((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) &&\n         (pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0)) {\n        local_6c = (size_t *)0x0;\n        piVar34 = DAT_00040b08;\n        while (iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0) {\n          local_6c = (size_t *)((int)local_6c + 1);\n          piVar34 = (int *)*piVar34;\n          if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar25);\n        piVar34[5] = (int)"";\n        piVar34 = piVar19 + local_8c;\n        local_8c = local_8c + 1;\n        iVar18 = FUN_00017920();\n        *piVar34 = iVar18;\n      }\nLAB_000197a8:\n      iVar18 = htab_elements(DAT_00040b10);\n      piVar34 = piVar24;\n      if ((iVar18 != 0) || (DAT_00040be0 != (undefined4 *)0x0)) {\n        local_30 = 0;\n        local_34 = piVar24;\n        iVar18 = htab_find(DAT_00040b10,&local_34);\n        if (((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)) {\n          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }\n        }\n        piVar4[1] = (int)piVar34;\n      }\n      pcVar25 = DAT_00040af8;\n      cVar2 = *(char *)(*(int *)((int)param_1 + 4) + 0x18);\n      if ((char)*piVar34 == cVar2) {\n        if (DAT_00040b3c == 0) {\n          if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }\nLAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }\n      }\n      else {\n        if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))\n        goto LAB_0001982b;\nLAB_00019ab1:\n        sVar22 = strlen(pcVar25);\n        sVar23 = strlen((char *)piVar34);\n        piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n        local_6c = (size_t *)((int)piVar24 + 1);\n        *(char *)piVar24 = *(char *)(param_2[1] + 0x18);\nLAB_00019858:\n        pcVar25 = DAT_00040af8;\n        if (DAT_00040af8 != (char *)0x0) {\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }\n        strcpy((char *)local_6c,(char *)piVar34);\n        piVar4[1] = (int)piVar24;\n        piVar34 = piVar24;\n      }\n      if (DAT_00040bb0 == 7) goto LAB_00019928;\n      if ((uVar17 & 0x20) == 0) {\n        if (((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)) {\n          if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;\n        }\n        else {\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;\n      }\n      else {\n        iVar18 = FUN_000179c0();\n        if (iVar18 != 0) {\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }\nLAB_0001994f:\n        iVar18 = FUN_00017a30();\n        if (iVar18 == 0) {\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }\n      }\n      local_84 = local_84 + 1;\n    }" { (expression_statement "iVar18 = DAT_00040b04;" (assignment_expression "iVar18 = DAT_00040b04" identifier = identifier) ;) (expression_statement "piVar4 = (int *)*local_84;" (assignment_expression "piVar4 = (int *)*local_84" identifier = (cast_expression "(int *)*local_84" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_84" * identifier))) ;) (expression_statement "uVar17 = piVar4[4];" (assignment_expression "uVar17 = piVar4[4]" identifier = (subscript_expression "piVar4[4]" identifier [ number_literal ])) ;) (expression_statement "piVar24 = (int *)piVar4[1];" (assignment_expression "piVar24 = (int *)piVar4[1]" identifier = (cast_expression "(int *)piVar4[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar4[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar5 = (undefined *)piVar4[5];" (assignment_expression "puVar5 = (undefined *)piVar4[5]" identifier = (cast_expression "(undefined *)piVar4[5]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar4[5]" identifier [ number_literal ]))) ;) (if_statement "if (((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) &&\n         (pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0)) {\n        local_6c = (size_t *)0x0;\n        piVar34 = DAT_00040b08;\n        while (iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0) {\n          local_6c = (size_t *)((int)local_6c + 1);\n          piVar34 = (int *)*piVar34;\n          if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar25);\n        piVar34[5] = (int)"";\n        piVar34 = piVar19 + local_8c;\n        local_8c = local_8c + 1;\n        iVar18 = FUN_00017920();\n        *piVar34 = iVar18;\n      }" if (parenthesized_expression "(((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) &&\n         (pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0))" ( (binary_expression "((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) &&\n         (pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0)" (parenthesized_expression "((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04))" ( (binary_expression "(DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)" (parenthesized_expression "(DAT_00040b08 != (int *)0x0)" ( (binary_expression "DAT_00040b08 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(0 < DAT_00040b04)" ( (binary_expression "0 < DAT_00040b04" number_literal < identifier) ))) )) && (parenthesized_expression "(pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0)" ( (comma_expression "pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0" (assignment_expression "pcVar25 = (char *)DAT_00040b08[5]" identifier = (cast_expression "(char *)DAT_00040b08[5]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_00040b08[5]" identifier [ number_literal ]))) , (binary_expression "pcVar25 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        local_6c = (size_t *)0x0;\n        piVar34 = DAT_00040b08;\n        while (iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0) {\n          local_6c = (size_t *)((int)local_6c + 1);\n          piVar34 = (int *)*piVar34;\n          if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar25);\n        piVar34[5] = (int)"";\n        piVar34 = piVar19 + local_8c;\n        local_8c = local_8c + 1;\n        iVar18 = FUN_00017920();\n        *piVar34 = iVar18;\n      }" { (expression_statement "local_6c = (size_t *)0x0;" (assignment_expression "local_6c = (size_t *)0x0" identifier = (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar34 = DAT_00040b08;" (assignment_expression "piVar34 = DAT_00040b08" identifier = identifier) ;) (while_statement "while (iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0) {\n          local_6c = (size_t *)((int)local_6c + 1);\n          piVar34 = (int *)*piVar34;\n          if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;\n        }" while (parenthesized_expression "(iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0)" ( (comma_expression "iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0" (assignment_expression "iVar21 = strcmp(pcVar25,(char *)piVar24)" identifier = (call_expression "strcmp(pcVar25,(char *)piVar24)" identifier (argument_list "(pcVar25,(char *)piVar24)" ( identifier , (cast_expression "(char *)piVar24" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "iVar21 != 0" identifier != number_literal)) )) (compound_statement "{\n          local_6c = (size_t *)((int)local_6c + 1);\n          piVar34 = (int *)*piVar34;\n          if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;\n        }" { (expression_statement "local_6c = (size_t *)((int)local_6c + 1);" (assignment_expression "local_6c = (size_t *)((int)local_6c + 1)" identifier = (cast_expression "(size_t *)((int)local_6c + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_6c + 1)" ( (binary_expression "(int)local_6c + 1" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar34 = (int *)*piVar34;" (assignment_expression "piVar34 = (int *)*piVar34" identifier = (cast_expression "(int *)*piVar34" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar34" * identifier))) ;) (if_statement "if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;" if (parenthesized_expression "((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0))" ( (binary_expression "(local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)" (parenthesized_expression "(local_6c == (size_t *)iVar18)" ( (binary_expression "local_6c == (size_t *)iVar18" identifier == (cast_expression "(size_t *)iVar18" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) )) || (parenthesized_expression "(pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)" ( (comma_expression "pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0" (assignment_expression "pcVar25 = (char *)piVar34[5]" identifier = (cast_expression "(char *)piVar34[5]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar34[5]" identifier [ number_literal ]))) , (binary_expression "pcVar25 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_000197a8;" goto statement_identifier ;)) })) (expression_statement "free(pcVar25);" (call_expression "free(pcVar25)" identifier (argument_list "(pcVar25)" ( identifier ))) ;) (expression_statement "piVar34[5] = (int)"";" (assignment_expression "piVar34[5] = (int)""" (subscript_expression "piVar34[5]" identifier [ number_literal ]) = (cast_expression "(int)""" ( (type_descriptor "int" primitive_type) ) (string_literal """" " "))) ;) (expression_statement "piVar34 = piVar19 + local_8c;" (assignment_expression "piVar34 = piVar19 + local_8c" identifier = (binary_expression "piVar19 + local_8c" identifier + identifier)) ;) (expression_statement "local_8c = local_8c + 1;" (assignment_expression "local_8c = local_8c + 1" identifier = (binary_expression "local_8c + 1" identifier + number_literal)) ;) (expression_statement "iVar18 = FUN_00017920();" (assignment_expression "iVar18 = FUN_00017920()" identifier = (call_expression "FUN_00017920()" identifier (argument_list "()" ( )))) ;) (expression_statement "*piVar34 = iVar18;" (assignment_expression "*piVar34 = iVar18" (pointer_expression "*piVar34" * identifier) = identifier) ;) })) (labeled_statement "LAB_000197a8:\n      iVar18 = htab_elements(DAT_00040b10);" statement_identifier : (expression_statement "iVar18 = htab_elements(DAT_00040b10);" (assignment_expression "iVar18 = htab_elements(DAT_00040b10)" identifier = (call_expression "htab_elements(DAT_00040b10)" identifier (argument_list "(DAT_00040b10)" ( identifier )))) ;)) (expression_statement "piVar34 = piVar24;" (assignment_expression "piVar34 = piVar24" identifier = identifier) ;) (if_statement "if ((iVar18 != 0) || (DAT_00040be0 != (undefined4 *)0x0)) {\n        local_30 = 0;\n        local_34 = piVar24;\n        iVar18 = htab_find(DAT_00040b10,&local_34);\n        if (((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)) {\n          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }\n        }\n        piVar4[1] = (int)piVar34;\n      }" if (parenthesized_expression "((iVar18 != 0) || (DAT_00040be0 != (undefined4 *)0x0))" ( (binary_expression "(iVar18 != 0) || (DAT_00040be0 != (undefined4 *)0x0)" (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) || (parenthesized_expression "(DAT_00040be0 != (undefined4 *)0x0)" ( (binary_expression "DAT_00040be0 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n        local_30 = 0;\n        local_34 = piVar24;\n        iVar18 = htab_find(DAT_00040b10,&local_34);\n        if (((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)) {\n          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }\n        }\n        piVar4[1] = (int)piVar34;\n      }" { (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "local_34 = piVar24;" (assignment_expression "local_34 = piVar24" identifier = identifier) ;) (expression_statement "iVar18 = htab_find(DAT_00040b10,&local_34);" (assignment_expression "iVar18 = htab_find(DAT_00040b10,&local_34)" identifier = (call_expression "htab_find(DAT_00040b10,&local_34)" identifier (argument_list "(DAT_00040b10,&local_34)" ( identifier , (pointer_expression "&local_34" & identifier) )))) ;) (if_statement "if (((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)) {\n          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }\n        }" if (parenthesized_expression "(((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0))" ( (binary_expression "((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)" (parenthesized_expression "((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34))" ( (binary_expression "(iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)" (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) || (parenthesized_expression "(piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)" ( (comma_expression "piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34" (assignment_expression "piVar34 = *(int **)(iVar18 + 4)" identifier = (pointer_expression "*(int **)(iVar18 + 4)" * (cast_expression "(int **)(iVar18 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + 4)" ( (binary_expression "iVar18 + 4" identifier + number_literal) ))))) , (binary_expression "piVar24 == piVar34" identifier == identifier)) ))) )) && (parenthesized_expression "(puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)" ( (comma_expression "puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0" (assignment_expression "puVar35 = DAT_00040be0" identifier = identifier) , (binary_expression "(uVar17 & 0x100) != 0" (parenthesized_expression "(uVar17 & 0x100)" ( (binary_expression "uVar17 & 0x100" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }\n        }" { (for_statement "for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }" for ( ; (comma_expression "piVar34 = piVar24, puVar35 != (undefined4 *)0x0" (assignment_expression "piVar34 = piVar24" identifier = identifier) , (binary_expression "puVar35 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "puVar35 = (undefined4 *)puVar35[3]" identifier = (cast_expression "(undefined4 *)puVar35[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[3]" identifier [ number_literal ]))) ) (compound_statement "{\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }" { (expression_statement "iVar18 = strcmp((char *)*puVar35,(char *)piVar24);" (assignment_expression "iVar18 = strcmp((char *)*puVar35,(char *)piVar24)" identifier = (call_expression "strcmp((char *)*puVar35,(char *)piVar24)" identifier (argument_list "((char *)*puVar35,(char *)piVar24)" ( (cast_expression "(char *)*puVar35" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar35" * identifier)) , (cast_expression "(char *)piVar24" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n              piVar34 = (int *)puVar35[1];\n              break;\n            }" { (expression_statement "piVar34 = (int *)puVar35[1];" (assignment_expression "piVar34 = (int *)puVar35[1]" identifier = (cast_expression "(int *)puVar35[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar35[1]" identifier [ number_literal ]))) ;) (break_statement "break;" break ;) })) })) })) (expression_statement "piVar4[1] = (int)piVar34;" (assignment_expression "piVar4[1] = (int)piVar34" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = (cast_expression "(int)piVar34" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (expression_statement "pcVar25 = DAT_00040af8;" (assignment_expression "pcVar25 = DAT_00040af8" identifier = identifier) ;) (expression_statement "cVar2 = *(char *)(*(int *)((int)param_1 + 4) + 0x18);" (assignment_expression "cVar2 = *(char *)(*(int *)((int)param_1 + 4) + 0x18)" identifier = (pointer_expression "*(char *)(*(int *)((int)param_1 + 4) + 0x18)" * (cast_expression "(char *)(*(int *)((int)param_1 + 4) + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x18)" ( (binary_expression "*(int *)((int)param_1 + 4) + 0x18" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if ((char)*piVar34 == cVar2) {\n        if (DAT_00040b3c == 0) {\n          if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }\nLAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }\n      }\n      else {\n        if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))\n        goto LAB_0001982b;\nLAB_00019ab1:\n        sVar22 = strlen(pcVar25);\n        sVar23 = strlen((char *)piVar34);\n        piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n        local_6c = (size_t *)((int)piVar24 + 1);\n        *(char *)piVar24 = *(char *)(param_2[1] + 0x18);\nLAB_00019858:\n        pcVar25 = DAT_00040af8;\n        if (DAT_00040af8 != (char *)0x0) {\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }\n        strcpy((char *)local_6c,(char *)piVar34);\n        piVar4[1] = (int)piVar24;\n        piVar34 = piVar24;\n      }" if (parenthesized_expression "((char)*piVar34 == cVar2)" ( (binary_expression "(char)*piVar34 == cVar2" (cast_expression "(char)*piVar34" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*piVar34" * identifier)) == identifier) )) (compound_statement "{\n        if (DAT_00040b3c == 0) {\n          if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }\nLAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }\n      }" { (if_statement "if (DAT_00040b3c == 0) {\n          if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }\nLAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }" if (parenthesized_expression "(DAT_00040b3c == 0)" ( (binary_expression "DAT_00040b3c == 0" identifier == number_literal) )) (compound_statement "{\n          if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }\nLAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }\n        }" { (if_statement "if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }" if (parenthesized_expression "((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0))))" ( (binary_expression "(DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))" (parenthesized_expression "(DAT_00040b38 != 0)" ( (binary_expression "DAT_00040b38 != 0" identifier != number_literal) )) && (parenthesized_expression "((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))" ( (parenthesized_expression "(((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0))" ( (binary_expression "((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)" (parenthesized_expression "((uVar17 & 0x82) != 0 || (puVar5 == puVar20))" ( (binary_expression "(uVar17 & 0x82) != 0 || (puVar5 == puVar20)" (binary_expression "(uVar17 & 0x82) != 0" (parenthesized_expression "(uVar17 & 0x82)" ( (binary_expression "uVar17 & 0x82" identifier & number_literal) )) != number_literal) || (parenthesized_expression "(puVar5 == puVar20)" ( (binary_expression "puVar5 == puVar20" identifier == identifier) ))) )) || (parenthesized_expression "((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)" ( (binary_expression "(*(byte *)(piVar4[5] + 0x15) & 0x10) != 0" (parenthesized_expression "(*(byte *)(piVar4[5] + 0x15) & 0x10)" ( (binary_expression "*(byte *)(piVar4[5] + 0x15) & 0x10" (pointer_expression "*(byte *)(piVar4[5] + 0x15)" * (cast_expression "(byte *)(piVar4[5] + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4[5] + 0x15)" ( (binary_expression "piVar4[5] + 0x15" (subscript_expression "piVar4[5]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }" { (expression_statement "piVar34 = (int *)((int)piVar34 + 1);" (assignment_expression "piVar34 = (int *)((int)piVar34 + 1)" identifier = (cast_expression "(int *)((int)piVar34 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar34 + 1)" ( (binary_expression "(int)piVar34 + 1" (cast_expression "(int)piVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar4[1] = (int)piVar34;" (assignment_expression "piVar4[1] = (int)piVar34" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = (cast_expression "(int)piVar34" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (labeled_statement "LAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }" statement_identifier : (if_statement "if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }" if (parenthesized_expression "(pcVar25 != (char *)0x0)" ( (binary_expression "pcVar25 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }" { (expression_statement "sVar22 = strlen(pcVar25);" (assignment_expression "sVar22 = strlen(pcVar25)" identifier = (call_expression "strlen(pcVar25)" identifier (argument_list "(pcVar25)" ( identifier )))) ;) (expression_statement "sVar23 = strlen((char *)piVar34);" (assignment_expression "sVar23 = strlen((char *)piVar34)" identifier = (call_expression "strlen((char *)piVar34)" identifier (argument_list "((char *)piVar34)" ( (cast_expression "(char *)piVar34" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);" (assignment_expression "piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23)" identifier = (cast_expression "(int *)xmalloc(sVar22 + 2 + sVar23)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar22 + 2 + sVar23)" identifier (argument_list "(sVar22 + 2 + sVar23)" ( (binary_expression "sVar22 + 2 + sVar23" (binary_expression "sVar22 + 2" identifier + number_literal) + identifier) ))))) ;) (expression_statement "local_6c = (size_t *)piVar24;" (assignment_expression "local_6c = (size_t *)piVar24" identifier = (cast_expression "(size_t *)piVar24" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_00019858;" goto statement_identifier ;) }))) }) (else_clause "else {\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }" else (compound_statement "{\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }" { (if_statement "if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }" if (parenthesized_expression "(*(char *)(param_2[1] + 0x18) == '\0')" ( (binary_expression "*(char *)(param_2[1] + 0x18) == '\0'" (pointer_expression "*(char *)(param_2[1] + 0x18)" * (cast_expression "(char *)(param_2[1] + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 0x18)" ( (binary_expression "param_2[1] + 0x18" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }" { (expression_statement "piVar34 = (int *)((int)piVar34 + 1);" (assignment_expression "piVar34 = (int *)((int)piVar34 + 1)" identifier = (cast_expression "(int *)((int)piVar34 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar34 + 1)" ( (binary_expression "(int)piVar34 + 1" (cast_expression "(int)piVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar4[1] = (int)piVar34;" (assignment_expression "piVar4[1] = (int)piVar34" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = (cast_expression "(int)piVar34" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_0001982b;" goto statement_identifier ;) })) (if_statement "if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }" if (parenthesized_expression "(DAT_00040af8 != (char *)0x0)" ( (binary_expression "DAT_00040af8 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }" { (expression_statement "piVar34 = (int *)((int)piVar34 + 1);" (assignment_expression "piVar34 = (int *)((int)piVar34 + 1)" identifier = (cast_expression "(int *)((int)piVar34 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar34 + 1)" ( (binary_expression "(int)piVar34 + 1" (cast_expression "(int)piVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar4[1] = (int)piVar34;" (assignment_expression "piVar4[1] = (int)piVar34" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = (cast_expression "(int)piVar34" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_00019ab1;" goto statement_identifier ;) })) (expression_statement "*(char *)piVar34 = *(char *)(param_2[1] + 0x18);" (assignment_expression "*(char *)piVar34 = *(char *)(param_2[1] + 0x18)" (pointer_expression "*(char *)piVar34" * (cast_expression "(char *)piVar34" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(char *)(param_2[1] + 0x18)" * (cast_expression "(char *)(param_2[1] + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 0x18)" ( (binary_expression "param_2[1] + 0x18" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "piVar4[1] = (int)piVar34;" (assignment_expression "piVar4[1] = (int)piVar34" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = (cast_expression "(int)piVar34" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) }) (else_clause "else {\n        if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))\n        goto LAB_0001982b;\nLAB_00019ab1:\n        sVar22 = strlen(pcVar25);\n        sVar23 = strlen((char *)piVar34);\n        piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n        local_6c = (size_t *)((int)piVar24 + 1);\n        *(char *)piVar24 = *(char *)(param_2[1] + 0x18);\nLAB_00019858:\n        pcVar25 = DAT_00040af8;\n        if (DAT_00040af8 != (char *)0x0) {\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }\n        strcpy((char *)local_6c,(char *)piVar34);\n        piVar4[1] = (int)piVar24;\n        piVar34 = piVar24;\n      }" else (compound_statement "{\n        if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))\n        goto LAB_0001982b;\nLAB_00019ab1:\n        sVar22 = strlen(pcVar25);\n        sVar23 = strlen((char *)piVar34);\n        piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n        local_6c = (size_t *)((int)piVar24 + 1);\n        *(char *)piVar24 = *(char *)(param_2[1] + 0x18);\nLAB_00019858:\n        pcVar25 = DAT_00040af8;\n        if (DAT_00040af8 != (char *)0x0) {\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }\n        strcpy((char *)local_6c,(char *)piVar34);\n        piVar4[1] = (int)piVar24;\n        piVar34 = piVar24;\n      }" { (if_statement "if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))\n        goto LAB_0001982b;" if (parenthesized_expression "(((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))" ( (binary_expression "((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0')" (parenthesized_expression "((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0'))" ( (binary_expression "(DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')" (parenthesized_expression "(DAT_00040b3c == 0)" ( (binary_expression "DAT_00040b3c == 0" identifier == number_literal) )) || (parenthesized_expression "(*(char *)(param_2[1] + 0x18) == '\0')" ( (binary_expression "*(char *)(param_2[1] + 0x18) == '\0'" (pointer_expression "*(char *)(param_2[1] + 0x18)" * (cast_expression "(char *)(param_2[1] + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 0x18)" ( (binary_expression "param_2[1] + 0x18" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_0001982b;" goto statement_identifier ;)) (labeled_statement "LAB_00019ab1:\n        sVar22 = strlen(pcVar25);" statement_identifier : (expression_statement "sVar22 = strlen(pcVar25);" (assignment_expression "sVar22 = strlen(pcVar25)" identifier = (call_expression "strlen(pcVar25)" identifier (argument_list "(pcVar25)" ( identifier )))) ;)) (expression_statement "sVar23 = strlen((char *)piVar34);" (assignment_expression "sVar23 = strlen((char *)piVar34)" identifier = (call_expression "strlen((char *)piVar34)" identifier (argument_list "((char *)piVar34)" ( (cast_expression "(char *)piVar34" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);" (assignment_expression "piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23)" identifier = (cast_expression "(int *)xmalloc(sVar22 + 2 + sVar23)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar22 + 2 + sVar23)" identifier (argument_list "(sVar22 + 2 + sVar23)" ( (binary_expression "sVar22 + 2 + sVar23" (binary_expression "sVar22 + 2" identifier + number_literal) + identifier) ))))) ;) (expression_statement "local_6c = (size_t *)((int)piVar24 + 1);" (assignment_expression "local_6c = (size_t *)((int)piVar24 + 1)" identifier = (cast_expression "(size_t *)((int)piVar24 + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar24 + 1)" ( (binary_expression "(int)piVar24 + 1" (cast_expression "(int)piVar24" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*(char *)piVar24 = *(char *)(param_2[1] + 0x18);" (assignment_expression "*(char *)piVar24 = *(char *)(param_2[1] + 0x18)" (pointer_expression "*(char *)piVar24" * (cast_expression "(char *)piVar24" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(char *)(param_2[1] + 0x18)" * (cast_expression "(char *)(param_2[1] + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 0x18)" ( (binary_expression "param_2[1] + 0x18" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (labeled_statement "LAB_00019858:\n        pcVar25 = DAT_00040af8;" statement_identifier : (expression_statement "pcVar25 = DAT_00040af8;" (assignment_expression "pcVar25 = DAT_00040af8" identifier = identifier) ;)) (if_statement "if (DAT_00040af8 != (char *)0x0) {\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }" if (parenthesized_expression "(DAT_00040af8 != (char *)0x0)" ( (binary_expression "DAT_00040af8 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }" { (expression_statement "strcpy((char *)local_6c,DAT_00040af8);" (call_expression "strcpy((char *)local_6c,DAT_00040af8)" identifier (argument_list "((char *)local_6c,DAT_00040af8)" ( (cast_expression "(char *)local_6c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "sVar22 = strlen(pcVar25);" (assignment_expression "sVar22 = strlen(pcVar25)" identifier = (call_expression "strlen(pcVar25)" identifier (argument_list "(pcVar25)" ( identifier )))) ;) (expression_statement "local_6c = (size_t *)((int)local_6c + sVar22);" (assignment_expression "local_6c = (size_t *)((int)local_6c + sVar22)" identifier = (cast_expression "(size_t *)((int)local_6c + sVar22)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_6c + sVar22)" ( (binary_expression "(int)local_6c + sVar22" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) })) (expression_statement "strcpy((char *)local_6c,(char *)piVar34);" (call_expression "strcpy((char *)local_6c,(char *)piVar34)" identifier (argument_list "((char *)local_6c,(char *)piVar34)" ( (cast_expression "(char *)local_6c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)piVar34" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "piVar4[1] = (int)piVar24;" (assignment_expression "piVar4[1] = (int)piVar24" (subscript_expression "piVar4[1]" identifier [ number_literal ]) = (cast_expression "(int)piVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar34 = piVar24;" (assignment_expression "piVar34 = piVar24" identifier = identifier) ;) }))) (if_statement "if (DAT_00040bb0 == 7) goto LAB_00019928;" if (parenthesized_expression "(DAT_00040bb0 == 7)" ( (binary_expression "DAT_00040bb0 == 7" identifier == number_literal) )) (goto_statement "goto LAB_00019928;" goto statement_identifier ;)) (if_statement "if ((uVar17 & 0x20) == 0) {\n        if (((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)) {\n          if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;\n        }\n        else {\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;\n      }\n      else {\n        iVar18 = FUN_000179c0();\n        if (iVar18 != 0) {\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }\nLAB_0001994f:\n        iVar18 = FUN_00017a30();\n        if (iVar18 == 0) {\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }\n      }" if (parenthesized_expression "((uVar17 & 0x20) == 0)" ( (binary_expression "(uVar17 & 0x20) == 0" (parenthesized_expression "(uVar17 & 0x20)" ( (binary_expression "uVar17 & 0x20" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if (((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)) {\n          if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;\n        }\n        else {\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;\n      }" { (if_statement "if (((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)) {\n          if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;\n        }\n        else {\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }" if (parenthesized_expression "(((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0))" ( (binary_expression "((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)" (parenthesized_expression "((uVar17 & 0x100) == 0)" ( (binary_expression "(uVar17 & 0x100) == 0" (parenthesized_expression "(uVar17 & 0x100)" ( (binary_expression "uVar17 & 0x100" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)" ( (binary_expression "(*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0" (parenthesized_expression "(*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20)" ( (binary_expression "*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20" (pointer_expression "*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10)" * (cast_expression "(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(piVar4[5] + 0xb4) + 0x10)" ( (binary_expression "**(int **)(piVar4[5] + 0xb4) + 0x10" (pointer_expression "**(int **)(piVar4[5] + 0xb4)" * (pointer_expression "*(int **)(piVar4[5] + 0xb4)" * (cast_expression "(int **)(piVar4[5] + 0xb4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar4[5] + 0xb4)" ( (binary_expression "piVar4[5] + 0xb4" (subscript_expression "piVar4[5]" identifier [ number_literal ]) + number_literal) ))))) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;\n        }" { (if_statement "if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;" if (parenthesized_expression "((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49))" ( (binary_expression "(((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)" (parenthesized_expression "(((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0))))" ( (binary_expression "((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))" (parenthesized_expression "((uVar39 >> 5 & 0x42) == 0)" ( (binary_expression "(uVar39 >> 5 & 0x42) == 0" (parenthesized_expression "(uVar39 >> 5 & 0x42)" ( (binary_expression "uVar39 >> 5 & 0x42" (binary_expression "uVar39 >> 5" identifier >> number_literal) & number_literal) )) == number_literal) )) && (parenthesized_expression "(((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))" ( (parenthesized_expression "((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0))" ( (binary_expression "(uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)" (binary_expression "(uVar17 & 0x82) != 0" (parenthesized_expression "(uVar17 & 0x82)" ( (binary_expression "uVar17 & 0x82" identifier & number_literal) )) != number_literal) || (parenthesized_expression "((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)" ( (binary_expression "(*(byte *)(piVar4[5] + 0x15) & 0x10) != 0" (parenthesized_expression "(*(byte *)(piVar4[5] + 0x15) & 0x10)" ( (binary_expression "*(byte *)(piVar4[5] + 0x15) & 0x10" (pointer_expression "*(byte *)(piVar4[5] + 0x15)" * (cast_expression "(byte *)(piVar4[5] + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4[5] + 0x15)" ( (binary_expression "piVar4[5] + 0x15" (subscript_expression "piVar4[5]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) || (parenthesized_expression "(iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)" ( (comma_expression "iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49" (assignment_expression "iVar18 = bfd_decode_symclass(piVar4)" identifier = (call_expression "bfd_decode_symclass(piVar4)" identifier (argument_list "(piVar4)" ( identifier )))) , (binary_expression "iVar18 == 0x49" identifier == number_literal)) ))) )) (compound_statement "{\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }" { (labeled_statement "LAB_00019b80:\n            iVar18 = FUN_000179c0();" statement_identifier : (expression_statement "iVar18 = FUN_000179c0();" (assignment_expression "iVar18 = FUN_000179c0()" identifier = (call_expression "FUN_000179c0()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar18 == 0) goto LAB_00019910;" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019910;" goto statement_identifier ;)) }) (else_clause "else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;" else (if_statement "if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;" if (parenthesized_expression "((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0))" ( (binary_expression "(((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)" (parenthesized_expression "(((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0))" ( (binary_expression "((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)" (parenthesized_expression "((uVar17 & 0x82) == 0)" ( (binary_expression "(uVar17 & 0x82) == 0" (parenthesized_expression "(uVar17 & 0x82)" ( (binary_expression "uVar17 & 0x82" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)" ( (binary_expression "puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0" identifier != (binary_expression "PTR__bfd_std_section_0003ffc8 + 0xc0" identifier + number_literal)) ))) )) && (parenthesized_expression "((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)" ( (binary_expression "(*(byte *)(piVar4[5] + 0x15) & 0x10) == 0" (parenthesized_expression "(*(byte *)(piVar4[5] + 0x15) & 0x10)" ( (binary_expression "*(byte *)(piVar4[5] + 0x15) & 0x10" (pointer_expression "*(byte *)(piVar4[5] + 0x15)" * (cast_expression "(byte *)(piVar4[5] + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4[5] + 0x15)" ( (binary_expression "piVar4[5] + 0x15" (subscript_expression "piVar4[5]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }" { (if_statement "if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }" if (parenthesized_expression "((uVar17 & 4) == 0)" ( (binary_expression "(uVar17 & 4) == 0" (parenthesized_expression "(uVar17 & 4)" ( (binary_expression "uVar17 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }" { (if_statement "if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }" if (parenthesized_expression "(((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0))" ( (binary_expression "((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)" (parenthesized_expression "((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0))" ( (binary_expression "(*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)" (parenthesized_expression "(*(int *)(*(int *)((int)param_1 + 4) + 4) != 2)" ( (binary_expression "*(int *)(*(int *)((int)param_1 + 4) + 4) != 2" (pointer_expression "*(int *)(*(int *)((int)param_1 + 4) + 4)" * (cast_expression "(int *)(*(int *)((int)param_1 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)param_1 + 4) + 4)" ( (binary_expression "*(int *)((int)param_1 + 4) + 4" (pointer_expression "*(int *)((int)param_1 + 4)" * (cast_expression "(int *)((int)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 4)" ( (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) )))) != number_literal) )) || (parenthesized_expression "(iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)" ( (comma_expression "iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0" (assignment_expression "iVar18 = *(int *)(piVar4[5] + 0xa4)" identifier = (pointer_expression "*(int *)(piVar4[5] + 0xa4)" * (cast_expression "(int *)(piVar4[5] + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar4[5] + 0xa4)" ( (binary_expression "piVar4[5] + 0xa4" (subscript_expression "piVar4[5]" identifier [ number_literal ]) + number_literal) ))))) , (binary_expression "iVar18 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(*(int *)(iVar18 + 0x2c) == 0)" ( (binary_expression "*(int *)(iVar18 + 0x2c) == 0" (pointer_expression "*(int *)(iVar18 + 0x2c)" * (cast_expression "(int *)(iVar18 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x2c)" ( (binary_expression "iVar18 + 0x2c" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }" { (if_statement "if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;" if (parenthesized_expression "((DAT_00040bb0 == 3) || (DAT_00040bac == 2))" ( (binary_expression "(DAT_00040bb0 == 3) || (DAT_00040bac == 2)" (parenthesized_expression "(DAT_00040bb0 == 3)" ( (binary_expression "DAT_00040bb0 == 3" identifier == number_literal) )) || (parenthesized_expression "(DAT_00040bac == 2)" ( (binary_expression "DAT_00040bac == 2" identifier == number_literal) ))) )) (goto_statement "goto LAB_00019928;" goto statement_identifier ;)) (if_statement "if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }" if (parenthesized_expression "(DAT_00040bac == 1)" ( (binary_expression "DAT_00040bac == 1" identifier == number_literal) )) (compound_statement "{\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }" { (expression_statement "iVar18 = bfd_is_local_label(param_1,piVar4,0,0);" (assignment_expression "iVar18 = bfd_is_local_label(param_1,piVar4,0,0)" identifier = (call_expression "bfd_is_local_label(param_1,piVar4,0,0)" identifier (argument_list "(param_1,piVar4,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (goto_statement "goto joined_r0x0001a753;" goto statement_identifier ;) })) })) (goto_statement "goto LAB_00019b80;" goto statement_identifier ;) })) (expression_statement "iVar18 = DAT_00040b48;" (assignment_expression "iVar18 = DAT_00040b48" identifier = identifier) ;) (if_statement "if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }" if (parenthesized_expression "(1 < DAT_00040bb0 - 2U)" ( (binary_expression "1 < DAT_00040bb0 - 2U" number_literal < (binary_expression "DAT_00040bb0 - 2U" identifier - number_literal)) )) (compound_statement "{\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }" { (labeled_statement "joined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;" statement_identifier : (if_statement "if (iVar18 == 0) goto LAB_00019b80;" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019b80;" goto statement_identifier ;))) })) }) (else_clause "else if (DAT_00040bb0 != 3) goto LAB_00019b80;" else (if_statement "if (DAT_00040bb0 != 3) goto LAB_00019b80;" if (parenthesized_expression "(DAT_00040bb0 != 3)" ( (binary_expression "DAT_00040bb0 != 3" identifier != number_literal) )) (goto_statement "goto LAB_00019b80;" goto statement_identifier ;)))))) }) (else_clause "else {\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }" else (compound_statement "{\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }" { (expression_statement "iVar18 = FUN_000179c0();" (assignment_expression "iVar18 = FUN_000179c0()" identifier = (call_expression "FUN_000179c0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }" { (expression_statement "uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);" (assignment_expression "uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18)" identifier = (call_expression "dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18)" identifier (argument_list "(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18)" ( number_literal , (string_literal ""not stripping symbol `%s\' because it is named in a relocation"" " string_content escape_sequence string_content ") , number_literal , identifier )))) ;) (expression_statement "FUN_0002c910(uVar13,piVar34);" (call_expression "FUN_0002c910(uVar13,piVar34)" identifier (argument_list "(uVar13,piVar34)" ( identifier , identifier ))) ;) (expression_statement "DAT_00040bc8 = 1;" (assignment_expression "DAT_00040bc8 = 1" identifier = number_literal) ;) })) (labeled_statement "LAB_00019910:\n          iVar18 = FUN_000179c0();" statement_identifier : (expression_statement "iVar18 = FUN_000179c0();" (assignment_expression "iVar18 = FUN_000179c0()" identifier = (call_expression "FUN_000179c0()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar18 == 0) goto LAB_0001994f;" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001994f;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00019928:\n        if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;" statement_identifier : (if_statement "if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;" if (parenthesized_expression "(((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0))" ( (binary_expression "((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)" (parenthesized_expression "((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0))" ( (binary_expression "(DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)" (parenthesized_expression "(DAT_00040afc != 0)" ( (binary_expression "DAT_00040afc != 0" identifier != number_literal) )) && (parenthesized_expression "((uVar17 & 0x4000) != 0)" ( (binary_expression "(uVar17 & 0x4000) != 0" (parenthesized_expression "(uVar17 & 0x4000)" ( (binary_expression "uVar17 & 0x4000" identifier & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "(iVar18 = FUN_000179c0(), iVar18 != 0)" ( (comma_expression "iVar18 = FUN_000179c0(), iVar18 != 0" (assignment_expression "iVar18 = FUN_000179c0()" identifier = (call_expression "FUN_000179c0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar18 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0001994f;" goto statement_identifier ;))) }) (else_clause "else {\n        iVar18 = FUN_000179c0();\n        if (iVar18 != 0) {\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }\nLAB_0001994f:\n        iVar18 = FUN_00017a30();\n        if (iVar18 == 0) {\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }\n      }" else (compound_statement "{\n        iVar18 = FUN_000179c0();\n        if (iVar18 != 0) {\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }\nLAB_0001994f:\n        iVar18 = FUN_00017a30();\n        if (iVar18 == 0) {\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }\n      }" { (expression_statement "iVar18 = FUN_000179c0();" (assignment_expression "iVar18 = FUN_000179c0()" identifier = (call_expression "FUN_000179c0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar18 != 0) {\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }" { (expression_statement "uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);" (assignment_expression "uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5)" identifier = (call_expression "dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5)" identifier (argument_list "(0,"not stripping symbol `%s\' because it is named in a relocation",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_0002c910(uVar13,piVar34);" (call_expression "FUN_0002c910(uVar13,piVar34)" identifier (argument_list "(uVar13,piVar34)" ( identifier , identifier ))) ;) (expression_statement "DAT_00040bc8 = 1;" (assignment_expression "DAT_00040bc8 = 1" identifier = number_literal) ;) })) (labeled_statement "LAB_0001994f:\n        iVar18 = FUN_00017a30();" statement_identifier : (expression_statement "iVar18 = FUN_00017a30();" (assignment_expression "iVar18 = FUN_00017a30()" identifier = (call_expression "FUN_00017a30()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (iVar18 == 0) {\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }" { (if_statement "if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }" if (parenthesized_expression "(((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             )" ( (binary_expression "((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))" (parenthesized_expression "((uVar17 & 2) != 0)" ( (binary_expression "(uVar17 & 2) != 0" (parenthesized_expression "(uVar17 & 2)" ( (binary_expression "uVar17 & 2" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))" ( (parenthesized_expression "(DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0))" ( (binary_expression "DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)" (binary_expression "DAT_00040b00 != 0" identifier != number_literal) || (parenthesized_expression "(iVar18 = FUN_000179c0(), iVar18 != 0)" ( (comma_expression "iVar18 = FUN_000179c0(), iVar18 != 0" (assignment_expression "iVar18 = FUN_000179c0()" identifier = (call_expression "FUN_000179c0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar18 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }" { (expression_statement "piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;" (assignment_expression "piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80" (subscript_expression "piVar4[4]" identifier [ number_literal ]) = (binary_expression "piVar4[4] & 0xfffffffdU | 0x80" (binary_expression "piVar4[4] & 0xfffffffdU" (subscript_expression "piVar4[4]" identifier [ number_literal ]) & number_literal) | number_literal)) ;) })) (if_statement "if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }" if (parenthesized_expression "(puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)" ( (binary_expression "puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0" identifier != (binary_expression "PTR__bfd_std_section_0003ffc8 + 0xc0" identifier + number_literal)) )) (compound_statement "{\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }" { (if_statement "if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }" if (parenthesized_expression "(((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 ))))))" ( (binary_expression "((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))" (parenthesized_expression "((uVar17 & 0x82) != 0)" ( (binary_expression "(uVar17 & 0x82) != 0" (parenthesized_expression "(uVar17 & 0x82)" ( (binary_expression "uVar17 & 0x82" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))" ( (parenthesized_expression "((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 ))))" ( (binary_expression "(iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))" (parenthesized_expression "(iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0))))" ( (comma_expression "iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))" (assignment_expression "iVar18 = FUN_000179c0()" identifier = (call_expression "FUN_000179c0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))" (binary_expression "iVar18 != 0" identifier != number_literal) || (parenthesized_expression "((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))" ( (parenthesized_expression "(iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0))" ( (comma_expression "iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)" (assignment_expression "iVar18 = htab_elements(DAT_00040b18)" identifier = (call_expression "htab_elements(DAT_00040b18)" identifier (argument_list "(DAT_00040b18)" ( identifier )))) , (binary_expression "iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)" (binary_expression "iVar18 != 0" identifier != number_literal) && (parenthesized_expression "(iVar18 = FUN_000179c0(), iVar18 == 0)" ( (comma_expression "iVar18 = FUN_000179c0(), iVar18 == 0" (assignment_expression "iVar18 = FUN_000179c0()" identifier = (call_expression "FUN_000179c0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar18 == 0" identifier == number_literal)) )))) )) )))) )) || (parenthesized_expression "((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))" ( (parenthesized_expression "(DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 ))" ( (binary_expression "DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )" (binary_expression "DAT_00040b30 != 0" identifier != number_literal) && (parenthesized_expression "((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )" ( (parenthesized_expression "(((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))" ( (binary_expression "((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2)" (parenthesized_expression "((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0))" ( (binary_expression "(iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)" (parenthesized_expression "(iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5))" ( (comma_expression "iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)" (assignment_expression "iVar18 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) , (binary_expression "iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)" (binary_expression "iVar18 != 0" identifier != number_literal) && (parenthesized_expression "(*(int *)(*(int *)(iVar18 + 4) + 4) == 5)" ( (binary_expression "*(int *)(*(int *)(iVar18 + 4) + 4) == 5" (pointer_expression "*(int *)(*(int *)(iVar18 + 4) + 4)" * (cast_expression "(int *)(*(int *)(iVar18 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 4) + 4)" ( (binary_expression "*(int *)(iVar18 + 4) + 4" (pointer_expression "*(int *)(iVar18 + 4)" * (cast_expression "(int *)(iVar18 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 4)" ( (binary_expression "iVar18 + 4" identifier + number_literal) )))) + number_literal) )))) == number_literal) )))) )) && (parenthesized_expression "(*(int *)(iVar18 + 0xa0) != 0)" ( (binary_expression "*(int *)(iVar18 + 0xa0) != 0" (pointer_expression "*(int *)(iVar18 + 0xa0)" * (cast_expression "(int *)(iVar18 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xa0)" ( (binary_expression "iVar18 + 0xa0" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2)" ( (binary_expression "(*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2" (binary_expression "(*(byte *)((int)piVar4 + 0x35) & 3) - 1" (parenthesized_expression "(*(byte *)((int)piVar4 + 0x35) & 3)" ( (binary_expression "*(byte *)((int)piVar4 + 0x35) & 3" (pointer_expression "*(byte *)((int)piVar4 + 0x35)" * (cast_expression "(byte *)((int)piVar4 + 0x35)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + 0x35)" ( (binary_expression "(int)piVar4 + 0x35" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) - number_literal) < number_literal) ))) )) ))) )) ))) )) ))) )) (compound_statement "{\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }" { (expression_statement "piVar4[4] = piVar4[4] & 0xffffff7dU | 1;" (assignment_expression "piVar4[4] = piVar4[4] & 0xffffff7dU | 1" (subscript_expression "piVar4[4]" identifier [ number_literal ]) = (binary_expression "piVar4[4] & 0xffffff7dU | 1" (binary_expression "piVar4[4] & 0xffffff7dU" (subscript_expression "piVar4[4]" identifier [ number_literal ]) & number_literal) | number_literal)) ;) })) (if_statement "if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }" if (parenthesized_expression "(((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0))" ( (binary_expression "((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)" (parenthesized_expression "((uVar17 & 1) != 0)" ( (binary_expression "(uVar17 & 1) != 0" (parenthesized_expression "(uVar17 & 1)" ( (binary_expression "uVar17 & 1" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(iVar18 = FUN_000179c0(), iVar18 != 0)" ( (comma_expression "iVar18 = FUN_000179c0(), iVar18 != 0" (assignment_expression "iVar18 = FUN_000179c0()" identifier = (call_expression "FUN_000179c0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar18 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }" { (expression_statement "piVar4[4] = piVar4[4] & 0xfffffffeU | 2;" (assignment_expression "piVar4[4] = piVar4[4] & 0xfffffffeU | 2" (subscript_expression "piVar4[4]" identifier [ number_literal ]) = (binary_expression "piVar4[4] & 0xfffffffeU | 2" (binary_expression "piVar4[4] & 0xfffffffeU" (subscript_expression "piVar4[4]" identifier [ number_literal ]) & number_literal) | number_literal)) ;) })) })) (expression_statement "piVar19[local_8c] = (int)piVar4;" (assignment_expression "piVar19[local_8c] = (int)piVar4" (subscript_expression "piVar19[local_8c]" identifier [ identifier ]) = (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_8c = local_8c + 1;" (assignment_expression "local_8c = local_8c + 1" identifier = (binary_expression "local_8c + 1" identifier + number_literal)) ;) })) }))) (expression_statement "local_84 = local_84 + 1;" (assignment_expression "local_84 = local_84 + 1" identifier = (binary_expression "local_84 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar1 != local_84)" ( (binary_expression "piVar1 != local_84" identifier != identifier) )) ;) })) (expression_statement "local_6c = (size_t *)DAT_00040b08;" (assignment_expression "local_6c = (size_t *)DAT_00040b08" identifier = (cast_expression "(size_t *)DAT_00040b08" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) {\n    iVar18 = 0;\n    do {\n      pcVar25 = (char *)local_6c[5];\n      if (pcVar25 == (char *)0x0) {\n        iVar21 = FUN_00017920();\n        piVar19[local_8c] = iVar21;\n        local_8c = local_8c + 1;\n      }\n      else if (*pcVar25 != '\0') {\n        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    \n        FUN_0002c8e0(uVar13,pcVar25);\n      }\n      iVar18 = iVar18 + 1;\n      local_6c = (size_t *)*local_6c;\n    } while (iVar18 < DAT_00040b04);\n  }" if (parenthesized_expression "((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04))" ( (binary_expression "(DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)" (parenthesized_expression "(DAT_00040b08 != (int *)0x0)" ( (binary_expression "DAT_00040b08 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(0 < DAT_00040b04)" ( (binary_expression "0 < DAT_00040b04" number_literal < identifier) ))) )) (compound_statement "{\n    iVar18 = 0;\n    do {\n      pcVar25 = (char *)local_6c[5];\n      if (pcVar25 == (char *)0x0) {\n        iVar21 = FUN_00017920();\n        piVar19[local_8c] = iVar21;\n        local_8c = local_8c + 1;\n      }\n      else if (*pcVar25 != '\0') {\n        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    \n        FUN_0002c8e0(uVar13,pcVar25);\n      }\n      iVar18 = iVar18 + 1;\n      local_6c = (size_t *)*local_6c;\n    } while (iVar18 < DAT_00040b04);\n  }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n      pcVar25 = (char *)local_6c[5];\n      if (pcVar25 == (char *)0x0) {\n        iVar21 = FUN_00017920();\n        piVar19[local_8c] = iVar21;\n        local_8c = local_8c + 1;\n      }\n      else if (*pcVar25 != '\0') {\n        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    \n        FUN_0002c8e0(uVar13,pcVar25);\n      }\n      iVar18 = iVar18 + 1;\n      local_6c = (size_t *)*local_6c;\n    } while (iVar18 < DAT_00040b04);" do (compound_statement "{\n      pcVar25 = (char *)local_6c[5];\n      if (pcVar25 == (char *)0x0) {\n        iVar21 = FUN_00017920();\n        piVar19[local_8c] = iVar21;\n        local_8c = local_8c + 1;\n      }\n      else if (*pcVar25 != '\0') {\n        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    \n        FUN_0002c8e0(uVar13,pcVar25);\n      }\n      iVar18 = iVar18 + 1;\n      local_6c = (size_t *)*local_6c;\n    }" { (expression_statement "pcVar25 = (char *)local_6c[5];" (assignment_expression "pcVar25 = (char *)local_6c[5]" identifier = (cast_expression "(char *)local_6c[5]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_6c[5]" identifier [ number_literal ]))) ;) (if_statement "if (pcVar25 == (char *)0x0) {\n        iVar21 = FUN_00017920();\n        piVar19[local_8c] = iVar21;\n        local_8c = local_8c + 1;\n      }\n      else if (*pcVar25 != '\0') {\n        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    \n        FUN_0002c8e0(uVar13,pcVar25);\n      }" if (parenthesized_expression "(pcVar25 == (char *)0x0)" ( (binary_expression "pcVar25 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar21 = FUN_00017920();\n        piVar19[local_8c] = iVar21;\n        local_8c = local_8c + 1;\n      }" { (expression_statement "iVar21 = FUN_00017920();" (assignment_expression "iVar21 = FUN_00017920()" identifier = (call_expression "FUN_00017920()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar19[local_8c] = iVar21;" (assignment_expression "piVar19[local_8c] = iVar21" (subscript_expression "piVar19[local_8c]" identifier [ identifier ]) = identifier) ;) (expression_statement "local_8c = local_8c + 1;" (assignment_expression "local_8c = local_8c + 1" identifier = (binary_expression "local_8c + 1" identifier + number_literal)) ;) }) (else_clause "else if (*pcVar25 != '\0') {\n        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    \n        FUN_0002c8e0(uVar13,pcVar25);\n      }" else (if_statement "if (*pcVar25 != '\0') {\n        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    \n        FUN_0002c8e0(uVar13,pcVar25);\n      }" if (parenthesized_expression "(*pcVar25 != '\0')" ( (binary_expression "*pcVar25 != '\0'" (pointer_expression "*pcVar25" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    \n        FUN_0002c8e0(uVar13,pcVar25);\n      }" { (expression_statement "uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);" (assignment_expression "uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c)" identifier = (call_expression "dcgettext(0,"\'before=%s\' not found",5,local_8c)" identifier (argument_list "(0,"\'before=%s\' not found",5,local_8c)" ( number_literal , (string_literal ""\'before=%s\' not found"" " escape_sequence string_content escape_sequence string_content ") , number_literal , identifier )))) ;) (expression_statement "FUN_0002c8e0(uVar13,pcVar25);" (call_expression "FUN_0002c8e0(uVar13,pcVar25)" identifier (argument_list "(uVar13,pcVar25)" ( identifier , identifier ))) ;) })))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "local_6c = (size_t *)*local_6c;" (assignment_expression "local_6c = (size_t *)*local_6c" identifier = (cast_expression "(size_t *)*local_6c" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_6c" * identifier))) ;) }) while (parenthesized_expression "(iVar18 < DAT_00040b04)" ( (binary_expression "iVar18 < DAT_00040b04" identifier < identifier) )) ;) })) (expression_statement "piVar19[local_8c] = 0;" (assignment_expression "piVar19[local_8c] = 0" (subscript_expression "piVar19[local_8c]" identifier [ identifier ]) = number_literal) ;) (if_statement "if ((DAT_00040b48 != 0) && (iVar12 != 0)) {\n    iVar18 = ((undefined4 *)param_2[1])[1];\n    if ((iVar18 == 2) || (iVar18 == 5)) {\n      iVar12 = FUN_0002c240(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34);\n      if (iVar12 != 0) {\n        iVar12 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n        iVar18 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n        if ((((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)) {\n          pcVar25 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }\n        uVar13 = dcgettext(0,pcVar25,5,iVar12);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n      }\n    }\n    else {\n      uVar13 = *(undefined4 *)param_2[1];\n      uVar14 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n    }\n    DAT_00040bc8 = 1;\n    return 0;\n  }" if (parenthesized_expression "((DAT_00040b48 != 0) && (iVar12 != 0))" ( (binary_expression "(DAT_00040b48 != 0) && (iVar12 != 0)" (parenthesized_expression "(DAT_00040b48 != 0)" ( (binary_expression "DAT_00040b48 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    iVar18 = ((undefined4 *)param_2[1])[1];\n    if ((iVar18 == 2) || (iVar18 == 5)) {\n      iVar12 = FUN_0002c240(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34);\n      if (iVar12 != 0) {\n        iVar12 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n        iVar18 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n        if ((((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)) {\n          pcVar25 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }\n        uVar13 = dcgettext(0,pcVar25,5,iVar12);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n      }\n    }\n    else {\n      uVar13 = *(undefined4 *)param_2[1];\n      uVar14 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n    }\n    DAT_00040bc8 = 1;\n    return 0;\n  }" { (expression_statement "iVar18 = ((undefined4 *)param_2[1])[1];" (assignment_expression "iVar18 = ((undefined4 *)param_2[1])[1]" identifier = (subscript_expression "((undefined4 *)param_2[1])[1]" (parenthesized_expression "((undefined4 *)param_2[1])" ( (cast_expression "(undefined4 *)param_2[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ])) )) [ number_literal ])) ;) (if_statement "if ((iVar18 == 2) || (iVar18 == 5)) {\n      iVar12 = FUN_0002c240(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34);\n      if (iVar12 != 0) {\n        iVar12 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n        iVar18 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n        if ((((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)) {\n          pcVar25 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }\n        uVar13 = dcgettext(0,pcVar25,5,iVar12);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n      }\n    }\n    else {\n      uVar13 = *(undefined4 *)param_2[1];\n      uVar14 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n    }" if (parenthesized_expression "((iVar18 == 2) || (iVar18 == 5))" ( (binary_expression "(iVar18 == 2) || (iVar18 == 5)" (parenthesized_expression "(iVar18 == 2)" ( (binary_expression "iVar18 == 2" identifier == number_literal) )) || (parenthesized_expression "(iVar18 == 5)" ( (binary_expression "iVar18 == 5" identifier == number_literal) ))) )) (compound_statement "{\n      iVar12 = FUN_0002c240(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34);\n      if (iVar12 != 0) {\n        iVar12 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n        iVar18 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n        if ((((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)) {\n          pcVar25 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }\n        uVar13 = dcgettext(0,pcVar25,5,iVar12);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n      }\n    }" { (expression_statement "iVar12 = FUN_0002c240(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34);" (assignment_expression "iVar12 = FUN_0002c240(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34)" identifier = (call_expression "FUN_0002c240(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34)" identifier (argument_list "(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34)" ( identifier , identifier , (pointer_expression "&local_54" & identifier) , (pointer_expression "&local_4c" & identifier) , (pointer_expression "&local_50" & identifier) , (pointer_expression "&local_34" & identifier) )))) ;) (if_statement "if (iVar12 != 0) {\n        iVar12 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n        iVar18 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n        if ((((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)) {\n          pcVar25 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }\n        uVar13 = dcgettext(0,pcVar25,5,iVar12);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n      }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar12 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n        iVar18 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n        if ((((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)) {\n          pcVar25 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }\n        uVar13 = dcgettext(0,pcVar25,5,iVar12);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n      }" { (expression_statement "iVar12 = bfd_make_section_with_flags(param_2,".stab",0x2108);" (assignment_expression "iVar12 = 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 "iVar18 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);" (assignment_expression "iVar18 = 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 ((((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)) {\n          pcVar25 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }" if (parenthesized_expression "((((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0))" ( (binary_expression "(((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)" (parenthesized_expression "(((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0))" ( (binary_expression "((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)" (parenthesized_expression "((iVar12 == 0) || (iVar18 == 0))" ( (binary_expression "(iVar12 == 0) || (iVar18 == 0)" (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) ))) )) || (parenthesized_expression "(iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)" ( (comma_expression "iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0" (assignment_expression "iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48)" identifier = (call_expression "bfd_set_section_size(param_2,iVar12,local_4c,local_48)" identifier (argument_list "(param_2,iVar12,local_4c,local_48)" ( identifier , identifier , identifier , identifier )))) , (binary_expression "iVar21 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)" ( (comma_expression "iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0" (assignment_expression "iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30)" identifier = (call_expression "bfd_set_section_size(param_2,iVar18,local_34,local_30)" identifier (argument_list "(param_2,iVar18,local_34,local_30)" ( identifier , identifier , identifier , identifier )))) , (binary_expression "iVar21 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          pcVar25 = "can\'t create debugging section";\n        }" { (expression_statement "pcVar25 = "can\'t create debugging section";" (assignment_expression "pcVar25 = "can\'t create debugging section"" identifier = (string_literal ""can\'t create debugging section"" " string_content escape_sequence string_content ")) ;) }) (else_clause "else {\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }" else (compound_statement "{\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }" { (expression_statement "*(undefined4 *)(iVar12 + 0x58) = 2;" (assignment_expression "*(undefined4 *)(iVar12 + 0x58) = 2" (pointer_expression "*(undefined4 *)(iVar12 + 0x58)" * (cast_expression "(undefined4 *)(iVar12 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x58)" ( (binary_expression "iVar12 + 0x58" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x58) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x58) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x58)" * (cast_expression "(undefined4 *)(iVar18 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x58)" ( (binary_expression "iVar18 + 0x58" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);" (assignment_expression "iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21)" identifier = (call_expression "bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21)" identifier (argument_list "(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21)" ( identifier , identifier , identifier , number_literal , number_literal , identifier , identifier , identifier )))) ;) (if_statement "if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;" if (parenthesized_expression "((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0))" ( (binary_expression "(iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)" (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)" ( (comma_expression "iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0" (assignment_expression "iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX)" identifier = (call_expression "bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX)" identifier (argument_list "(param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX)" ( identifier , identifier , identifier , number_literal , number_literal , identifier , identifier , identifier )))) , (binary_expression "iVar12 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00019e4d;" goto statement_identifier ;)) (expression_statement "pcVar25 = "can\'t set debugging section contents";" (assignment_expression "pcVar25 = "can\'t set debugging section contents"" identifier = (string_literal ""can\'t set debugging section contents"" " string_content escape_sequence string_content ")) ;) (expression_statement "iVar12 = iVar18;" (assignment_expression "iVar12 = iVar18" identifier = identifier) ;) }))) (expression_statement "uVar13 = dcgettext(0,pcVar25,5,iVar12);" (assignment_expression "uVar13 = dcgettext(0,pcVar25,5,iVar12)" identifier = (call_expression "dcgettext(0,pcVar25,5,iVar12)" identifier (argument_list "(0,pcVar25,5,iVar12)" ( number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "FUN_0002d3a0(0,param_2,0,uVar13);" (call_expression "FUN_0002d3a0(0,param_2,0,uVar13)" identifier (argument_list "(0,param_2,0,uVar13)" ( number_literal , identifier , number_literal , identifier ))) ;) })) }) (else_clause "else {\n      uVar13 = *(undefined4 *)param_2[1];\n      uVar14 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n    }" else (compound_statement "{\n      uVar13 = *(undefined4 *)param_2[1];\n      uVar14 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n    }" { (expression_statement "uVar13 = *(undefined4 *)param_2[1];" (assignment_expression "uVar13 = *(undefined4 *)param_2[1]" identifier = (pointer_expression "*(undefined4 *)param_2[1]" * (cast_expression "(undefined4 *)param_2[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ])))) ;) (expression_statement "uVar14 = dcgettext(0,"don\'t know how to write debugging information for %s",5);" (assignment_expression "uVar14 = 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_0002d3a0(0,param_2,0,uVar14,uVar13);" (call_expression "FUN_0002d3a0(0,param_2,0,uVar14,uVar13)" identifier (argument_list "(0,param_2,0,uVar14,uVar13)" ( number_literal , identifier , number_literal , identifier , identifier ))) ;) }))) (expression_statement "DAT_00040bc8 = 1;" (assignment_expression "DAT_00040bc8 = 1" identifier = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_00019e4d:\n  bfd_set_symtab(param_2,DAT_00040bd8,local_8c);" statement_identifier : (expression_statement "bfd_set_symtab(param_2,DAT_00040bd8,local_8c);" (call_expression "bfd_set_symtab(param_2,DAT_00040bd8,local_8c)" identifier (argument_list "(param_2,DAT_00040bd8,local_8c)" ( identifier , identifier , identifier ))) ;)) (expression_statement "bfd_map_over_sections(param_1,FUN_00018500,param_2);" (call_expression "bfd_map_over_sections(param_1,FUN_00018500,param_2)" identifier (argument_list "(param_1,FUN_00018500,param_2)" ( identifier , identifier , identifier ))) ;) (expression_statement "bfd_map_over_sections(param_1,FUN_00018070,param_2);" (call_expression "bfd_map_over_sections(param_1,FUN_00018070,param_2)" identifier (argument_list "(param_1,FUN_00018070,param_2)" ( identifier , identifier , identifier ))) ;) (for_statement "for (puVar35 = DAT_00040b58; psVar43 = param_2, puVar42 = DAT_00040b54,\n      puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)*puVar35) {\n    iVar12 = bfd_set_section_contents(param_2,puVar35[5],puVar35[4],0,0,puVar35[3],0);\n    if (iVar12 == 0) {\nLAB_00019d5e:\n      FUN_0002d3a0(0,param_2,puVar35[5],0);\n      return 0;\n    }\n  }" for ( (assignment_expression "puVar35 = DAT_00040b58" identifier = identifier) ; (comma_expression "psVar43 = param_2, puVar42 = DAT_00040b54,\n      puVar35 != (undefined4 *)0x0" (assignment_expression "psVar43 = param_2" identifier = identifier) , (comma_expression "puVar42 = DAT_00040b54,\n      puVar35 != (undefined4 *)0x0" (assignment_expression "puVar42 = DAT_00040b54" identifier = identifier) , (binary_expression "puVar35 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))) ; (assignment_expression "puVar35 = (undefined4 *)*puVar35" identifier = (cast_expression "(undefined4 *)*puVar35" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar35" * identifier))) ) (compound_statement "{\n    iVar12 = bfd_set_section_contents(param_2,puVar35[5],puVar35[4],0,0,puVar35[3],0);\n    if (iVar12 == 0) {\nLAB_00019d5e:\n      FUN_0002d3a0(0,param_2,puVar35[5],0);\n      return 0;\n    }\n  }" { (expression_statement "iVar12 = bfd_set_section_contents(param_2,puVar35[5],puVar35[4],0,0,puVar35[3],0);" (assignment_expression "iVar12 = bfd_set_section_contents(param_2,puVar35[5],puVar35[4],0,0,puVar35[3],0)" identifier = (call_expression "bfd_set_section_contents(param_2,puVar35[5],puVar35[4],0,0,puVar35[3],0)" identifier (argument_list "(param_2,puVar35[5],puVar35[4],0,0,puVar35[3],0)" ( identifier , (subscript_expression "puVar35[5]" identifier [ number_literal ]) , (subscript_expression "puVar35[4]" identifier [ number_literal ]) , number_literal , number_literal , (subscript_expression "puVar35[3]" identifier [ number_literal ]) , number_literal )))) ;) (if_statement "if (iVar12 == 0) {\nLAB_00019d5e:\n      FUN_0002d3a0(0,param_2,puVar35[5],0);\n      return 0;\n    }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00019d5e:\n      FUN_0002d3a0(0,param_2,puVar35[5],0);\n      return 0;\n    }" { (labeled_statement "LAB_00019d5e:\n      FUN_0002d3a0(0,param_2,puVar35[5],0);" statement_identifier : (expression_statement "FUN_0002d3a0(0,param_2,puVar35[5],0);" (call_expression "FUN_0002d3a0(0,param_2,puVar35[5],0)" identifier (argument_list "(0,param_2,puVar35[5],0)" ( number_literal , identifier , (subscript_expression "puVar35[5]" identifier [ number_literal ]) , number_literal ))) ;)) (return_statement "return 0;" return number_literal ;) })) })) (while_statement "while( true ) {\n    if (puVar42 == (undefined4 *)0x0) {\n      uVar39 = 0;\n      if (DAT_00040bc4 != 0) {\n        uVar39 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n        if (((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))) {\n          if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }\n        }\n        else {\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        psVar43 = param_2;\n      }\n      if ((DAT_00040b4c != 0) &&\n         (iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0)) {\n        uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,param_2,0,uVar13,iVar12);\n        return 0;\n      }\n      if (DAT_00040b78 != 0 || DAT_00040b70 != 0) {\n        uVar39 = 0x2000;\n        if (local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc) {\n          uVar39 = local_b8;\n        }\n        piVar19 = (int *)xmalloc(uVar39);\n        iVar12 = (uint)DAT_00040b74 * 0x1010101;\n        if (uVar39 < 4) {\n          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }\n        }\n        else {\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }\n        iVar12 = param_2[0x1a];\n        if (iVar12 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);\n        }\n      }\n      iVar12 = (**(code **)(param_2[1] + 0xa8))(param_1,param_2);\n      if (iVar12 == 0) {\n        uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n        return 0;\n      }\n      if ((DAT_00040b64 != 0) &&\n         (iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0)) {\n        uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)\n        ;\n        FUN_0002c910(uVar13,iVar12);\n        if (*(int *)(param_2[1] + 4) != 5) {\n          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          FUN_0002c910(uVar13);\n          return 1;\n        }\n        uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)\n        ;\n        FUN_0002c910(uVar13);\n        *(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64;\n      }\n      return 1;\n    }\n    psVar43 = *(size_t **)(puVar42[5] + 0x54);\n    iVar12 = bfd_set_section_contents(param_2,psVar43,puVar42[4],0,0,puVar42[3],0);\n    local_6c = param_2;\n    if (iVar12 == 0) break;\n    puVar42 = (undefined4 *)*puVar42;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if (puVar42 == (undefined4 *)0x0) {\n      uVar39 = 0;\n      if (DAT_00040bc4 != 0) {\n        uVar39 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n        if (((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))) {\n          if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }\n        }\n        else {\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        psVar43 = param_2;\n      }\n      if ((DAT_00040b4c != 0) &&\n         (iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0)) {\n        uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,param_2,0,uVar13,iVar12);\n        return 0;\n      }\n      if (DAT_00040b78 != 0 || DAT_00040b70 != 0) {\n        uVar39 = 0x2000;\n        if (local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc) {\n          uVar39 = local_b8;\n        }\n        piVar19 = (int *)xmalloc(uVar39);\n        iVar12 = (uint)DAT_00040b74 * 0x1010101;\n        if (uVar39 < 4) {\n          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }\n        }\n        else {\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }\n        iVar12 = param_2[0x1a];\n        if (iVar12 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);\n        }\n      }\n      iVar12 = (**(code **)(param_2[1] + 0xa8))(param_1,param_2);\n      if (iVar12 == 0) {\n        uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n        return 0;\n      }\n      if ((DAT_00040b64 != 0) &&\n         (iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0)) {\n        uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)\n        ;\n        FUN_0002c910(uVar13,iVar12);\n        if (*(int *)(param_2[1] + 4) != 5) {\n          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          FUN_0002c910(uVar13);\n          return 1;\n        }\n        uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)\n        ;\n        FUN_0002c910(uVar13);\n        *(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64;\n      }\n      return 1;\n    }\n    psVar43 = *(size_t **)(puVar42[5] + 0x54);\n    iVar12 = bfd_set_section_contents(param_2,psVar43,puVar42[4],0,0,puVar42[3],0);\n    local_6c = param_2;\n    if (iVar12 == 0) break;\n    puVar42 = (undefined4 *)*puVar42;\n  }" { (if_statement "if (puVar42 == (undefined4 *)0x0) {\n      uVar39 = 0;\n      if (DAT_00040bc4 != 0) {\n        uVar39 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n        if (((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))) {\n          if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }\n        }\n        else {\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        psVar43 = param_2;\n      }\n      if ((DAT_00040b4c != 0) &&\n         (iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0)) {\n        uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,param_2,0,uVar13,iVar12);\n        return 0;\n      }\n      if (DAT_00040b78 != 0 || DAT_00040b70 != 0) {\n        uVar39 = 0x2000;\n        if (local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc) {\n          uVar39 = local_b8;\n        }\n        piVar19 = (int *)xmalloc(uVar39);\n        iVar12 = (uint)DAT_00040b74 * 0x1010101;\n        if (uVar39 < 4) {\n          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }\n        }\n        else {\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }\n        iVar12 = param_2[0x1a];\n        if (iVar12 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);\n        }\n      }\n      iVar12 = (**(code **)(param_2[1] + 0xa8))(param_1,param_2);\n      if (iVar12 == 0) {\n        uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n        return 0;\n      }\n      if ((DAT_00040b64 != 0) &&\n         (iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0)) {\n        uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)\n        ;\n        FUN_0002c910(uVar13,iVar12);\n        if (*(int *)(param_2[1] + 4) != 5) {\n          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          FUN_0002c910(uVar13);\n          return 1;\n        }\n        uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)\n        ;\n        FUN_0002c910(uVar13);\n        *(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64;\n      }\n      return 1;\n    }" if (parenthesized_expression "(puVar42 == (undefined4 *)0x0)" ( (binary_expression "puVar42 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar39 = 0;\n      if (DAT_00040bc4 != 0) {\n        uVar39 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n        if (((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))) {\n          if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }\n        }\n        else {\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        psVar43 = param_2;\n      }\n      if ((DAT_00040b4c != 0) &&\n         (iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0)) {\n        uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,param_2,0,uVar13,iVar12);\n        return 0;\n      }\n      if (DAT_00040b78 != 0 || DAT_00040b70 != 0) {\n        uVar39 = 0x2000;\n        if (local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc) {\n          uVar39 = local_b8;\n        }\n        piVar19 = (int *)xmalloc(uVar39);\n        iVar12 = (uint)DAT_00040b74 * 0x1010101;\n        if (uVar39 < 4) {\n          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }\n        }\n        else {\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }\n        iVar12 = param_2[0x1a];\n        if (iVar12 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);\n        }\n      }\n      iVar12 = (**(code **)(param_2[1] + 0xa8))(param_1,param_2);\n      if (iVar12 == 0) {\n        uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n        return 0;\n      }\n      if ((DAT_00040b64 != 0) &&\n         (iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0)) {\n        uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)\n        ;\n        FUN_0002c910(uVar13,iVar12);\n        if (*(int *)(param_2[1] + 4) != 5) {\n          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          FUN_0002c910(uVar13);\n          return 1;\n        }\n        uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)\n        ;\n        FUN_0002c910(uVar13);\n        *(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64;\n      }\n      return 1;\n    }" { (expression_statement "uVar39 = 0;" (assignment_expression "uVar39 = 0" identifier = number_literal) ;) (if_statement "if (DAT_00040bc4 != 0) {\n        uVar39 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n        if (((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))) {\n          if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }\n        }\n        else {\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        psVar43 = param_2;\n      }" if (parenthesized_expression "(DAT_00040bc4 != 0)" ( (binary_expression "DAT_00040bc4 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar39 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n        if (((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))) {\n          if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }\n        }\n        else {\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        psVar43 = param_2;\n      }" { (expression_statement "uVar39 = bfd_get_section_by_name(param_2,".gnu.build.attributes");" (assignment_expression "uVar39 = 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 (((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))) {\n          if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }\n        }\n        else {\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }" if (parenthesized_expression "(((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0))))" ( (binary_expression "((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))" (parenthesized_expression "((uVar39 == 0) || (DAT_00040bc4 == 0))" ( (binary_expression "(uVar39 == 0) || (DAT_00040bc4 == 0)" (parenthesized_expression "(uVar39 == 0)" ( (binary_expression "uVar39 == 0" identifier == number_literal) )) || (parenthesized_expression "(DAT_00040bc4 == 0)" ( (binary_expression "DAT_00040bc4 == 0" identifier == number_literal) ))) )) || (parenthesized_expression "((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))" ( (parenthesized_expression "(*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0))" ( (binary_expression "*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)" (binary_expression "*(int *)(param_2[1] + 4) != 5" (pointer_expression "*(int *)(param_2[1] + 4)" * (cast_expression "(int *)(param_2[1] + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 4)" ( (binary_expression "param_2[1] + 4" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) )))) != number_literal) || (parenthesized_expression "(iVar12 = FUN_000176d0(), iVar12 == 0)" ( (comma_expression "iVar12 = FUN_000176d0(), iVar12 == 0" (assignment_expression "iVar12 = FUN_000176d0()" identifier = (call_expression "FUN_000176d0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar12 == 0" identifier == number_literal)) ))) )) ))) )) (compound_statement "{\n          if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }\n        }" { (if_statement "if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }" if (parenthesized_expression "(DAT_00040be4 == 0)" ( (binary_expression "DAT_00040be4 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }" { (expression_statement "uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);" (assignment_expression "uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0)" identifier = (call_expression "dcgettext(0,"could not find any mergeable note sections",5,0)" identifier (argument_list "(0,"could not find any mergeable note sections",5,0)" ( number_literal , (string_literal ""could not find any mergeable note sections"" " string_content ") , number_literal , number_literal )))) ;) (expression_statement "FUN_0002d3a0(0,param_2,uVar39,uVar13);" (call_expression "FUN_0002d3a0(0,param_2,uVar39,uVar13)" identifier (argument_list "(0,param_2,uVar39,uVar13)" ( number_literal , identifier , identifier , identifier ))) ;) })) }) (else_clause "else {\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }" else (compound_statement "{\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }" { (expression_statement "iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);" (assignment_expression "iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12)" identifier = (call_expression "bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12)" identifier (argument_list "(param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12)" ( identifier , identifier , identifier , number_literal , number_literal , identifier , identifier , identifier )))) ;) (if_statement "if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }" { (expression_statement "uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);" (assignment_expression "uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0)" identifier = (call_expression "dcgettext(0,"error: failed to copy merged notes into output",5,0)" identifier (argument_list "(0,"error: failed to copy merged notes into output",5,0)" ( number_literal , (string_literal ""error: failed to copy merged notes into output"" " string_content ") , number_literal , number_literal )))) ;) (expression_statement "FUN_0002d3a0(0,param_2,uVar39,uVar13);" (call_expression "FUN_0002d3a0(0,param_2,uVar39,uVar13)" identifier (argument_list "(0,param_2,uVar39,uVar13)" ( number_literal , identifier , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) }))) (expression_statement "free(DAT_00040bc0);" (call_expression "free(DAT_00040bc0)" identifier (argument_list "(DAT_00040bc0)" ( identifier ))) ;) (expression_statement "DAT_00040bc0 = (void *)0x0;" (assignment_expression "DAT_00040bc0 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00040bc4 = 0;" (assignment_expression "DAT_00040bc4 = 0" identifier = number_literal) ;) (expression_statement "psVar43 = param_2;" (assignment_expression "psVar43 = param_2" identifier = identifier) ;) })) (if_statement "if ((DAT_00040b4c != 0) &&\n         (iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0)) {\n        uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,param_2,0,uVar13,iVar12);\n        return 0;\n      }" if (parenthesized_expression "((DAT_00040b4c != 0) &&\n         (iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0))" ( (binary_expression "(DAT_00040b4c != 0) &&\n         (iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0)" (parenthesized_expression "(DAT_00040b4c != 0)" ( (binary_expression "DAT_00040b4c != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0)" ( (comma_expression "iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0" (assignment_expression "iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c)" identifier = (call_expression "bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c)" identifier (argument_list "(param_2,iVar31,DAT_00040b4c)" ( identifier , identifier , identifier )))) , (comma_expression "iVar12 = DAT_00040b4c, iVar31 == 0" (assignment_expression "iVar12 = DAT_00040b4c" identifier = identifier) , (binary_expression "iVar31 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n        uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,param_2,0,uVar13,iVar12);\n        return 0;\n      }" { (expression_statement "uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0);" (assignment_expression "uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0)" identifier = (call_expression "dcgettext(0,"cannot fill debug link section `%s\'",5,0)" identifier (argument_list "(0,"cannot fill debug link section `%s\'",5,0)" ( number_literal , (string_literal ""cannot fill debug link section `%s\'"" " string_content escape_sequence ") , number_literal , number_literal )))) ;) (expression_statement "FUN_0002d3a0(0,param_2,0,uVar13,iVar12);" (call_expression "FUN_0002d3a0(0,param_2,0,uVar13,iVar12)" identifier (argument_list "(0,param_2,0,uVar13,iVar12)" ( number_literal , identifier , number_literal , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (DAT_00040b78 != 0 || DAT_00040b70 != 0) {\n        uVar39 = 0x2000;\n        if (local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc) {\n          uVar39 = local_b8;\n        }\n        piVar19 = (int *)xmalloc(uVar39);\n        iVar12 = (uint)DAT_00040b74 * 0x1010101;\n        if (uVar39 < 4) {\n          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }\n        }\n        else {\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }\n        iVar12 = param_2[0x1a];\n        if (iVar12 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);\n        }\n      }" if (parenthesized_expression "(DAT_00040b78 != 0 || DAT_00040b70 != 0)" ( (binary_expression "DAT_00040b78 != 0 || DAT_00040b70 != 0" (binary_expression "DAT_00040b78 != 0" identifier != number_literal) || (binary_expression "DAT_00040b70 != 0" identifier != number_literal)) )) (compound_statement "{\n        uVar39 = 0x2000;\n        if (local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc) {\n          uVar39 = local_b8;\n        }\n        piVar19 = (int *)xmalloc(uVar39);\n        iVar12 = (uint)DAT_00040b74 * 0x1010101;\n        if (uVar39 < 4) {\n          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }\n        }\n        else {\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }\n        iVar12 = param_2[0x1a];\n        if (iVar12 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);\n        }\n      }" { (expression_statement "uVar39 = 0x2000;" (assignment_expression "uVar39 = 0x2000" identifier = number_literal) ;) (if_statement "if (local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc) {\n          uVar39 = local_b8;\n        }" if (parenthesized_expression "(local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc)" ( (binary_expression "local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc" (binary_expression "local_bc == 0" identifier == number_literal) && (binary_expression "(uint)(0x2000 < local_b8) <= -local_bc" (call_expression "(uint)(0x2000 < local_b8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x2000 < local_b8)" ( (binary_expression "0x2000 < local_b8" number_literal < identifier) ))) <= (unary_expression "-local_bc" - identifier))) )) (compound_statement "{\n          uVar39 = local_b8;\n        }" { (expression_statement "uVar39 = local_b8;" (assignment_expression "uVar39 = local_b8" identifier = identifier) ;) })) (expression_statement "piVar19 = (int *)xmalloc(uVar39);" (assignment_expression "piVar19 = (int *)xmalloc(uVar39)" identifier = (cast_expression "(int *)xmalloc(uVar39)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(uVar39)" identifier (argument_list "(uVar39)" ( identifier ))))) ;) (expression_statement "iVar12 = (uint)DAT_00040b74 * 0x1010101;" (assignment_expression "iVar12 = (uint)DAT_00040b74 * 0x1010101" identifier = (binary_expression "(uint)DAT_00040b74 * 0x1010101" (cast_expression "(uint)DAT_00040b74" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) ;) (if_statement "if (uVar39 < 4) {\n          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }\n        }\n        else {\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }" if (parenthesized_expression "(uVar39 < 4)" ( (binary_expression "uVar39 < 4" identifier < number_literal) )) (compound_statement "{\n          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }\n        }" { (if_statement "if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }" if (parenthesized_expression "((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0))" ( (binary_expression "(uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)" (parenthesized_expression "(uVar39 != 0)" ( (binary_expression "uVar39 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)" ( (comma_expression "*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0" (assignment_expression "*(char *)piVar19 = (char)iVar12" (pointer_expression "*(char *)piVar19" * (cast_expression "(char *)piVar19" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(char)iVar12" ( (type_descriptor "char" primitive_type) ) identifier)) , (binary_expression "(uVar39 & 2) != 0" (parenthesized_expression "(uVar39 & 2)" ( (binary_expression "uVar39 & 2" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }" { (expression_statement "*(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;" (assignment_expression "*(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12" (pointer_expression "*(short *)((undefined1 *)((int)piVar19 + -2) + uVar39)" * (cast_expression "(short *)((undefined1 *)((int)piVar19 + -2) + uVar39)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((undefined1 *)((int)piVar19 + -2) + uVar39)" ( (binary_expression "(undefined1 *)((int)piVar19 + -2) + uVar39" (cast_expression "(undefined1 *)((int)piVar19 + -2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar19 + -2)" ( (binary_expression "(int)piVar19 + -2" (cast_expression "(int)piVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) + identifier) )))) = (cast_expression "(short)iVar12" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) })) }) (else_clause "else {\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }" else (compound_statement "{\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }" { (expression_statement "*piVar19 = iVar12;" (assignment_expression "*piVar19 = iVar12" (pointer_expression "*piVar19" * identifier) = identifier) ;) (expression_statement "*(int *)((int)(piVar19 + -1) + uVar39) = iVar12;" (assignment_expression "*(int *)((int)(piVar19 + -1) + uVar39) = iVar12" (pointer_expression "*(int *)((int)(piVar19 + -1) + uVar39)" * (cast_expression "(int *)((int)(piVar19 + -1) + uVar39)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(piVar19 + -1) + uVar39)" ( (binary_expression "(int)(piVar19 + -1) + uVar39" (cast_expression "(int)(piVar19 + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar19 + -1)" ( (binary_expression "piVar19 + -1" identifier + number_literal) ))) + identifier) )))) = identifier) ;) (expression_statement "psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);" (assignment_expression "psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc)" identifier = (cast_expression "(size_t *)((uint)(piVar19 + 1) & 0xfffffffc)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(piVar19 + 1) & 0xfffffffc)" ( (binary_expression "(uint)(piVar19 + 1) & 0xfffffffc" (call_expression "(uint)(piVar19 + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar19 + 1)" ( (binary_expression "piVar19 + 1" identifier + number_literal) ))) & number_literal) )))) ;) (for_statement "for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }" for ( (assignment_expression "uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2" identifier = (binary_expression "(uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2" (call_expression "(uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc)))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc)))" ( (binary_expression "(int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))" (cast_expression "(int)piVar19" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))" ( (binary_expression "uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc)" identifier - (cast_expression "(int)((uint)(piVar19 + 1) & 0xfffffffc)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uint)(piVar19 + 1) & 0xfffffffc)" ( (binary_expression "(uint)(piVar19 + 1) & 0xfffffffc" (call_expression "(uint)(piVar19 + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar19 + 1)" ( (binary_expression "piVar19 + 1" identifier + number_literal) ))) & number_literal) )))) ))) ))) >> number_literal)) ; (binary_expression "uVar17 != 0" identifier != number_literal) ; (assignment_expression "uVar17 = uVar17 - 1" identifier = (binary_expression "uVar17 - 1" identifier - number_literal)) ) (compound_statement "{\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }" { (expression_statement "*psVar43 = iVar12;" (assignment_expression "*psVar43 = iVar12" (pointer_expression "*psVar43" * identifier) = identifier) ;) (expression_statement "psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);" (assignment_expression "psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1)" identifier = (cast_expression "(size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int *)psVar43 + (uint)bVar48 * -2 + 1)" ( (binary_expression "(int *)psVar43 + (uint)bVar48 * -2 + 1" (binary_expression "(int *)psVar43 + (uint)bVar48 * -2" (cast_expression "(int *)psVar43" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) + (binary_expression "(uint)bVar48 * -2" (cast_expression "(uint)bVar48" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) })) }))) (expression_statement "iVar12 = param_2[0x1a];" (assignment_expression "iVar12 = param_2[0x1a]" identifier = (subscript_expression "param_2[0x1a]" identifier [ number_literal ])) ;) (if_statement "if (iVar12 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);\n        }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n          local_64 = (int *)0x0;\n          do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);\n        }" { (expression_statement "local_64 = (int *)0x0;" (assignment_expression "local_64 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);" do (compound_statement "{\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          }" { (expression_statement "piVar1 = local_64;" (assignment_expression "piVar1 = local_64" identifier = identifier) ;) (expression_statement "psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);" (assignment_expression "psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4)" identifier = (pointer_expression "*(size_t **)((int)local_b4 + (int)local_64 * 8 + 4)" * (cast_expression "(size_t **)((int)local_b4 + (int)local_64 * 8 + 4)" ( (type_descriptor "size_t **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_b4 + (int)local_64 * 8 + 4)" ( (binary_expression "(int)local_b4 + (int)local_64 * 8 + 4" (binary_expression "(int)local_b4 + (int)local_64 * 8" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_64 * 8" (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) ))))) ;) (expression_statement "uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);" (assignment_expression "uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8)" identifier = (pointer_expression "*(uint *)((int)local_b4 + (int)local_64 * 8)" * (cast_expression "(uint *)((int)local_b4 + (int)local_64 * 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_b4 + (int)local_64 * 8)" ( (binary_expression "(int)local_b4 + (int)local_64 * 8" (cast_expression "(int)local_b4" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_64 * 8" (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (if_statement "if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }" if (parenthesized_expression "(psVar43 != (size_t *)0x0 || uVar39 != 0)" ( (binary_expression "psVar43 != (size_t *)0x0 || uVar39 != 0" (binary_expression "psVar43 != (size_t *)0x0" identifier != (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "uVar39 != 0" identifier != number_literal)) )) (compound_statement "{\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }" { (expression_statement "piVar4 = (int *)(local_a8 + (int)local_64);" (assignment_expression "piVar4 = (int *)(local_a8 + (int)local_64)" identifier = (cast_expression "(int *)(local_a8 + (int)local_64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_a8 + (int)local_64)" ( (binary_expression "local_a8 + (int)local_64" identifier + (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_64 = (int *)local_a8[(int)local_64];" (assignment_expression "local_64 = (int *)local_a8[(int)local_64]" identifier = (cast_expression "(int *)local_a8[(int)local_64]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_a8[(int)local_64]" identifier [ (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (expression_statement "local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);" (assignment_expression "local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39)" identifier = (cast_expression "(size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)((int)local_64 + 0x2c) - uVar39)" ( (binary_expression "*(uint *)((int)local_64 + 0x2c) - uVar39" (pointer_expression "*(uint *)((int)local_64 + 0x2c)" * (cast_expression "(uint *)((int)local_64 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_64 + 0x2c)" ( (binary_expression "(int)local_64 + 0x2c" (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) - identifier) )))) ;) (expression_statement "local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);" (assignment_expression "local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39)" identifier = (binary_expression "(*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39)" (parenthesized_expression "(*(int *)((int)local_64 + 0x30) - (int)psVar43)" ( (binary_expression "*(int *)((int)local_64 + 0x30) - (int)psVar43" (pointer_expression "*(int *)((int)local_64 + 0x30)" * (cast_expression "(int *)((int)local_64 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_64 + 0x30)" ( (binary_expression "(int)local_64 + 0x30" (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) - (cast_expression "(int)psVar43" ( (type_descriptor "int" primitive_type) ) identifier)) )) - (call_expression "(uint)(*(uint *)((int)local_64 + 0x2c) < uVar39)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)((int)local_64 + 0x2c) < uVar39)" ( (binary_expression "*(uint *)((int)local_64 + 0x2c) < uVar39" (pointer_expression "*(uint *)((int)local_64 + 0x2c)" * (cast_expression "(uint *)((int)local_64 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_64 + 0x2c)" ( (binary_expression "(int)local_64 + 0x2c" (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) < identifier) ))))) ;) (while_statement "while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }" { (expression_statement "piVar24 = (int *)psVar43;" (assignment_expression "piVar24 = (int *)psVar43" identifier = (cast_expression "(int *)psVar43" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uVar17 = uVar39;" (assignment_expression "uVar17 = uVar39" identifier = identifier) ;) (if_statement "if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }" if (parenthesized_expression "(psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39))" ( (binary_expression "psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)" (binary_expression "psVar43 != (size_t *)0x0" identifier != (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "(uint)-(int)psVar43 < (uint)(0x2000 < uVar39)" (binary_expression "(uint)-(int)psVar43" (parenthesized_expression "(uint)" ( identifier )) - (cast_expression "(int)psVar43" ( (type_descriptor "int" primitive_type) ) identifier)) < (call_expression "(uint)(0x2000 < uVar39)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x2000 < uVar39)" ( (binary_expression "0x2000 < uVar39" number_literal < identifier) ))))) )) (compound_statement "{\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }" { (expression_statement "uVar17 = 0x2000;" (assignment_expression "uVar17 = 0x2000" identifier = number_literal) ;) (expression_statement "piVar24 = (int *)0x0;" (assignment_expression "piVar24 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);" (assignment_expression "iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24)" identifier = (call_expression "bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24)" identifier (argument_list "(param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (compound_statement "{\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }" { (expression_statement "FUN_0002d3a0(0,param_2,*piVar4,0);" (call_expression "FUN_0002d3a0(0,param_2,*piVar4,0)" identifier (argument_list "(0,param_2,*piVar4,0)" ( number_literal , identifier , (pointer_expression "*piVar4" * identifier) , number_literal ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar46 = uVar39 < uVar17;" (assignment_expression "bVar46 = uVar39 < uVar17" identifier = (binary_expression "uVar39 < uVar17" identifier < identifier)) ;) (expression_statement "uVar39 = uVar39 - uVar17;" (assignment_expression "uVar39 = uVar39 - uVar17" identifier = (binary_expression "uVar39 - uVar17" identifier - identifier)) ;) (expression_statement "psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));" (assignment_expression "psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24))" identifier = (cast_expression "(size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24))" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar43 + (-(uint)bVar46 - (int)piVar24))" ( (binary_expression "(int)psVar43 + (-(uint)bVar46 - (int)piVar24)" (cast_expression "(int)psVar43" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-(uint)bVar46 - (int)piVar24)" ( (binary_expression "-(uint)bVar46 - (int)piVar24" (unary_expression "-(uint)bVar46" - (cast_expression "(uint)bVar46" ( (type_descriptor "uint" type_identifier) ) identifier)) - (cast_expression "(int)piVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "bVar46 = CARRY4((uint)local_6c,uVar17);" (assignment_expression "bVar46 = CARRY4((uint)local_6c,uVar17)" identifier = (call_expression "CARRY4((uint)local_6c,uVar17)" identifier (argument_list "((uint)local_6c,uVar17)" ( (cast_expression "(uint)local_6c" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier )))) ;) (expression_statement "local_6c = (size_t *)((int)local_6c + uVar17);" (assignment_expression "local_6c = (size_t *)((int)local_6c + uVar17)" identifier = (cast_expression "(size_t *)((int)local_6c + uVar17)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_6c + uVar17)" ( (binary_expression "(int)local_6c + uVar17" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "local_68 = (int)piVar24 + (uint)bVar46 + local_68;" (assignment_expression "local_68 = (int)piVar24 + (uint)bVar46 + local_68" identifier = (binary_expression "(int)piVar24 + (uint)bVar46 + local_68" (binary_expression "(int)piVar24 + (uint)bVar46" (cast_expression "(int)piVar24" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(uint)bVar46" ( (type_descriptor "uint" type_identifier) ) identifier)) + identifier)) ;) (if_statement "if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;" if (parenthesized_expression "(psVar43 == (size_t *)0x0 && uVar39 == 0)" ( (binary_expression "psVar43 == (size_t *)0x0 && uVar39 == 0" (binary_expression "psVar43 == (size_t *)0x0" identifier == (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "uVar39 == 0" identifier == number_literal)) )) (break_statement "break;" break ;)) (expression_statement "local_64 = (int *)local_a8[(int)piVar1];" (assignment_expression "local_64 = (int *)local_a8[(int)piVar1]" identifier = (cast_expression "(int *)local_a8[(int)piVar1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_a8[(int)piVar1]" identifier [ (cast_expression "(int)piVar1" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) })) })) (expression_statement "local_64 = (int *)((int)piVar1 + 1);" (assignment_expression "local_64 = (int *)((int)piVar1 + 1)" identifier = (cast_expression "(int *)((int)piVar1 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar1 + 1)" ( (binary_expression "(int)piVar1 + 1" (cast_expression "(int)piVar1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((int *)iVar12 != local_64)" ( (binary_expression "(int *)iVar12 != local_64" (cast_expression "(int *)iVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) ;) })) })) (expression_statement "iVar12 = (**(code **)(param_2[1] + 0xa8))(param_1,param_2);" (assignment_expression "iVar12 = (**(code **)(param_2[1] + 0xa8))(param_1,param_2)" identifier = (call_expression "(**(code **)(param_2[1] + 0xa8))(param_1,param_2)" (parenthesized_expression "(**(code **)(param_2[1] + 0xa8))" ( (pointer_expression "**(code **)(param_2[1] + 0xa8)" * (pointer_expression "*(code **)(param_2[1] + 0xa8)" * (cast_expression "(code **)(param_2[1] + 0xa8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2[1] + 0xa8)" ( (binary_expression "param_2[1] + 0xa8" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (if_statement "if (iVar12 == 0) {\n        uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n        return 0;\n      }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n        return 0;\n      }" { (expression_statement "uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43);" (assignment_expression "uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43)" identifier = (call_expression "dcgettext(0,"error copying private BFD data",5,psVar43)" identifier (argument_list "(0,"error copying private BFD data",5,psVar43)" ( number_literal , (string_literal ""error copying private BFD data"" " string_content ") , number_literal , identifier )))) ;) (expression_statement "FUN_0002d3a0(0,param_2,0,uVar13);" (call_expression "FUN_0002d3a0(0,param_2,0,uVar13)" identifier (argument_list "(0,param_2,0,uVar13)" ( number_literal , identifier , number_literal , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((DAT_00040b64 != 0) &&\n         (iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0)) {\n        uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)\n        ;\n        FUN_0002c910(uVar13,iVar12);\n        if (*(int *)(param_2[1] + 4) != 5) {\n          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          FUN_0002c910(uVar13);\n          return 1;\n        }\n        uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)\n        ;\n        FUN_0002c910(uVar13);\n        *(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64;\n      }" if (parenthesized_expression "((DAT_00040b64 != 0) &&\n         (iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0))" ( (binary_expression "(DAT_00040b64 != 0) &&\n         (iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0)" (parenthesized_expression "(DAT_00040b64 != 0)" ( (binary_expression "DAT_00040b64 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0)" ( (comma_expression "iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0" (assignment_expression "iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39)" identifier = (call_expression "bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39)" identifier (argument_list "(param_2,DAT_00040b64,uVar39,uVar39)" ( identifier , identifier , identifier , identifier )))) , (comma_expression "iVar12 = DAT_00040b64,\n         iVar31 == 0" (assignment_expression "iVar12 = DAT_00040b64" identifier = identifier) , (binary_expression "iVar31 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n        uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)\n        ;\n        FUN_0002c910(uVar13,iVar12);\n        if (*(int *)(param_2[1] + 4) != 5) {\n          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          FUN_0002c910(uVar13);\n          return 1;\n        }\n        uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)\n        ;\n        FUN_0002c910(uVar13);\n        *(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64;\n      }" { (expression_statement "uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)\n        ;" (assignment_expression "uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)" identifier = (call_expression "dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)" identifier (argument_list "(0,"this target does not support %lu alternative machine codes",5,psVar43)" ( number_literal , (string_literal ""this target does not support %lu alternative machine codes"" " string_content ") , number_literal , identifier )))) ;) (expression_statement "FUN_0002c910(uVar13,iVar12);" (call_expression "FUN_0002c910(uVar13,iVar12)" identifier (argument_list "(uVar13,iVar12)" ( identifier , identifier ))) ;) (if_statement "if (*(int *)(param_2[1] + 4) != 5) {\n          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          FUN_0002c910(uVar13);\n          return 1;\n        }" if (parenthesized_expression "(*(int *)(param_2[1] + 4) != 5)" ( (binary_expression "*(int *)(param_2[1] + 4) != 5" (pointer_expression "*(int *)(param_2[1] + 4)" * (cast_expression "(int *)(param_2[1] + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[1] + 4)" ( (binary_expression "param_2[1] + 4" (subscript_expression "param_2[1]" identifier [ number_literal ]) + number_literal) )))) != number_literal) )) (compound_statement "{\n          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          FUN_0002c910(uVar13);\n          return 1;\n        }" { (expression_statement "uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);" (assignment_expression "uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00)" identifier = (call_expression "dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00)" identifier (argument_list "(0,"ignoring the alternative value",5,extraout_ECX_00)" ( number_literal , (string_literal ""ignoring the alternative value"" " string_content ") , number_literal , identifier )))) ;) (expression_statement "FUN_0002c910(uVar13);" (call_expression "FUN_0002c910(uVar13)" identifier (argument_list "(uVar13)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)\n        ;" (assignment_expression "uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)" identifier = (call_expression "dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)" identifier (argument_list "(0,"treating that number as an absolute e_machine value instead",5,iVar12)" ( number_literal , (string_literal ""treating that number as an absolute e_machine value instead"" " string_content ") , number_literal , identifier )))) ;) (expression_statement "FUN_0002c910(uVar13);" (call_expression "FUN_0002c910(uVar13)" identifier (argument_list "(uVar13)" ( identifier ))) ;) (expression_statement "*(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64;" (assignment_expression "*(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64" (pointer_expression "*(short *)(param_2[0x28] + 0x32)" * (cast_expression "(short *)(param_2[0x28] + 0x32)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[0x28] + 0x32)" ( (binary_expression "param_2[0x28] + 0x32" (subscript_expression "param_2[0x28]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(short)DAT_00040b64" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) })) (return_statement "return 1;" return number_literal ;) })) (expression_statement "psVar43 = *(size_t **)(puVar42[5] + 0x54);" (assignment_expression "psVar43 = *(size_t **)(puVar42[5] + 0x54)" identifier = (pointer_expression "*(size_t **)(puVar42[5] + 0x54)" * (cast_expression "(size_t **)(puVar42[5] + 0x54)" ( (type_descriptor "size_t **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar42[5] + 0x54)" ( (binary_expression "puVar42[5] + 0x54" (subscript_expression "puVar42[5]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "iVar12 = bfd_set_section_contents(param_2,psVar43,puVar42[4],0,0,puVar42[3],0);" (assignment_expression "iVar12 = bfd_set_section_contents(param_2,psVar43,puVar42[4],0,0,puVar42[3],0)" identifier = (call_expression "bfd_set_section_contents(param_2,psVar43,puVar42[4],0,0,puVar42[3],0)" identifier (argument_list "(param_2,psVar43,puVar42[4],0,0,puVar42[3],0)" ( identifier , identifier , (subscript_expression "puVar42[4]" identifier [ number_literal ]) , number_literal , number_literal , (subscript_expression "puVar42[3]" identifier [ number_literal ]) , number_literal )))) ;) (expression_statement "local_6c = param_2;" (assignment_expression "local_6c = param_2" identifier = identifier) ;) (if_statement "if (iVar12 == 0) break;" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "puVar42 = (undefined4 *)*puVar42;" (assignment_expression "puVar42 = (undefined4 *)*puVar42" identifier = (cast_expression "(undefined4 *)*puVar42" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar42" * identifier))) ;) })) (labeled_statement "LAB_00019fa0:\n  FUN_0002d3a0(0,local_6c,psVar43,0);" statement_identifier : (expression_statement "FUN_0002d3a0(0,local_6c,psVar43,0);" (call_expression "FUN_0002d3a0(0,local_6c,psVar43,0)" identifier (argument_list "(0,local_6c,psVar43,0)" ( number_literal , identifier , identifier , number_literal ))) ;)) (return_statement "return iVar12;" return identifier ;) (labeled_statement "LAB_0001b1a6:\n  if ((undefined1 *)((int)pvVar32 + sVar54) <= puVar45) goto LAB_0001b1aa;" statement_identifier : (if_statement "if ((undefined1 *)((int)pvVar32 + sVar54) <= puVar45) goto LAB_0001b1aa;" if (parenthesized_expression "((undefined1 *)((int)pvVar32 + sVar54) <= puVar45)" ( (binary_expression "(undefined1 *)((int)pvVar32 + sVar54) <= puVar45" (cast_expression "(undefined1 *)((int)pvVar32 + sVar54)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar32 + sVar54)" ( (binary_expression "(int)pvVar32 + sVar54" (cast_expression "(int)pvVar32" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))) <= identifier) )) (goto_statement "goto LAB_0001b1aa;" goto statement_identifier ;))) (expression_statement "*puVar45 = (char)uVar17;" (assignment_expression "*puVar45 = (char)uVar17" (pointer_expression "*puVar45" * identifier) = (cast_expression "(char)uVar17" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (uVar17 == 0) goto LAB_0001b1aa;" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001b1aa;" goto statement_identifier ;)) (expression_statement "uVar17 = uVar17 >> 8;" (assignment_expression "uVar17 = uVar17 >> 8" identifier = (binary_expression "uVar17 >> 8" identifier >> number_literal)) ;) (expression_statement "puVar45 = puVar45 + 1;" (assignment_expression "puVar45 = puVar45 + 1" identifier = (binary_expression "puVar45 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_0001b1a6;" goto statement_identifier ;) (labeled_statement "LAB_0001b1aa:\n  bVar46 = true;" statement_identifier : (expression_statement "bVar46 = true;" (assignment_expression "bVar46 = true" identifier = true) ;)) (expression_statement "psVar9[0xe] = 0;" (assignment_expression "psVar9[0xe] = 0" (subscript_expression "psVar9[0xe]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0001afd1;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * 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 TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , LIT , LIT ))) ;) (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 (cast_expression ( (type_descriptor TYPE) ) 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 ")) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) )) [ LIT ]) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (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 ")) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return LIT ;) })) (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 ")) ;) (goto_statement goto statement_identifier ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ])))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (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) ;) (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 = IDENT) ;) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + 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) ) IDENT) + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( 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 TYPE (abstract_pointer_declarator *)) ) 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 (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) + LIT) ))))) & (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) >> LIT) & LIT) | IDENT) )))) ;) (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 , 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 (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (cast_expression ( (type_descriptor TYPE) ) 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 (cast_expression ( (type_descriptor TYPE) ) 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 = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (cast_expression ( (type_descriptor TYPE) ) 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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (parenthesized_expression ( (binary_expression IDENT & 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) ;) (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & IDENT) )) != LIT) )) (compound_statement { (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & IDENT) )) != LIT) )) (compound_statement { (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & IDENT) )) != LIT) )) (compound_statement { (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & IDENT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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) ;) (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & IDENT) )) != LIT) )) (compound_statement { (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & IDENT) )) != LIT) )) (compound_statement { (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) ;) })) (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 (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT)) , (string_literal " string_content ") , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT)) , (string_literal " string_content ") , IDENT , 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 , (pointer_expression & IDENT) , (pointer_expression & 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 ( 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 TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 TYPE (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression 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 TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (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 (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 ( )))) ;) (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 ")) ;) (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 ;) })) (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 ]) , 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 ( )))) ;) (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 = (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) ))))) ;) (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 (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 ( )))) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_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) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 = (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 * (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 ]) , LIT )))) ;) (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 (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) + LIT) )))) == LIT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (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 , IDENT )))) ;) (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) , 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 , 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 , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression 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 ))) ;) (expression_statement (assignment_expression IDENT = 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 *)) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT , IDENT , LIT , IDENT , IDENT )))) ;) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 TYPE (abstract_pointer_declarator *)) ) 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) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression (unary_expression - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))))) )) (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) + LIT) ))))) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) + LIT) ))))) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (parenthesized_expression ( (binary_expression IDENT < IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT , IDENT )))) ;) (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 , IDENT )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 TYPE) ) 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 IDENT == LIT) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 TYPE) ) 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 TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) ))) )) (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) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) (else_clause else (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 , IDENT )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (labeled_statement statement_identifier : (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 , IDENT )))) ;)) (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 ( IDENT )))) ;) (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 IDENT + 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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) }))))))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 TYPE) ) 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 ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 TYPE) ) 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 ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (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 , (pointer_expression * IDENT) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (parenthesized_expression ( (binary_expression (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) && (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 , (binary_expression (unary_expression - IDENT) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) )))) )))) ;) (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 != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) || (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 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 , IDENT )))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) || (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) || (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = (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 , IDENT )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT <= IDENT)) )) (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 TYPE) ) IDENT) + IDENT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ))))) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * 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 TYPE) ) IDENT) + IDENT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) , (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == LIT))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (unary_expression - IDENT) - LIT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) )))) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT < IDENT) )))) , (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) <= IDENT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) & LIT) )) < (subscript_expression IDENT [ LIT ])) ))) <= (binary_expression IDENT - (subscript_expression IDENT [ LIT ]))))) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (break_statement break ;) })) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_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 (binary_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 TYPE) ) 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression (binary_expression IDENT - IDENT) != IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 TYPE) ) 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 (cast_expression ( (type_descriptor TYPE) ) 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 = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 , IDENT , IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 IDENT + (subscript_expression IDENT [ LIT ])) + 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 (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 TYPE) ) IDENT) + IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression 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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == IDENT)) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT)) )))) )) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , IDENT , IDENT , IDENT , LIT , IDENT , IDENT , 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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) + LIT) ))))) )) (argument_list ( LIT , LIT , 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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (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 ( IDENT , LIT , IDENT , 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence '))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) )) (argument_list ( IDENT , LIT , 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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_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 IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + 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 ( IDENT , IDENT , 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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) + LIT) ))))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 , 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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) + LIT) ))))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 = (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 TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (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) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) || (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) (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 (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , 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 , IDENT )))) ;) (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 , IDENT )))) ;) (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) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression 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 ]) )))) ;) (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 { (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 = (string_literal " string_content escape_sequence string_content ")) ;) }) (else_clause else (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (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 (binary_expression IDENT != LIT) || (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 : (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 )))) ;) (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 escape_sequence ") , LIT , 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) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (do_statement do (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (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 (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) || (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (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 TYPE (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 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) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (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) )))) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (unary_expression - IDENT) - LIT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))))) ;) (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) )))) = 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 = (subscript_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 = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT * LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_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 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) ))))) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (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) ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + IDENT) , (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (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 , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , (pointer_expression * IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT <= IDENT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) <= (binary_expression IDENT - IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT - LIT) ))) != IDENT) )) ;) }))) (expression_statement (assignment_expression IDENT = 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 (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ (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) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (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) ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT - IDENT) , (binary_expression (parenthesized_expression ( (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_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 escape_sequence string_content ") , LIT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression IDENT - LIT) ))) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT <= IDENT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) <= (binary_expression IDENT - IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) })) })) }))) (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) )) (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)) )) (compound_statement { (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 == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) && (parenthesized_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 (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)) )) && (binary_expression IDENT == LIT)) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (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 TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) * LIT) + LIT) ))))) ;) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + 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 = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (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 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 TYPE) ) (string_literal " "))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (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 TYPE (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 TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (break_statement break ;) })) })) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) 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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 == IDENT) ))) )) || (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 { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (labeled_statement 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 = (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 TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (binary_expression IDENT + LIT) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (goto_statement goto statement_identifier ;) }))) }) (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 (subscript_expression IDENT [ LIT ]) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) 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 TYPE) ) 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 ')) ))) )) (goto_statement goto statement_identifier ;)) (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 TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (binary_expression IDENT + LIT) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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) ))))) ;) (labeled_statement statement_identifier : (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (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 TYPE (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 (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) & LIT) )) == 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 ( )))) ;)) (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 != (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) + LIT) )))) != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_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 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 , LIT , LIT )))) ;) (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 ( )))) ;) (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 , IDENT )))) ;) (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 ( )))) ;)) (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 ( )))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;))) }) (else_clause else (compound_statement { (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 = (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 ( )))) ;)) (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 ( )))) , (binary_expression IDENT != LIT)) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (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 ( )))) , (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 ( )))) , (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )))) )) && (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 (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) - LIT) < LIT) ))) )) ))) )) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (subscript_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 ( )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) | LIT)) ;) })) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (cast_expression ( (type_descriptor TYPE) ) 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (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 ( )))) ;) (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 , IDENT )))) ;) (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 TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ 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 = (subscript_expression (parenthesized_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 = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & 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 ( 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 , IDENT , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content ")) ;) }) (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 (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 , LIT , IDENT , 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 , IDENT , LIT , LIT , IDENT , IDENT , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content ")) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , LIT , IDENT ))) ;) })) }) (else_clause else (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 ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;)) (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) , (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 , LIT , (subscript_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 , (subscript_expression IDENT [ LIT ]) , LIT ))) ;)) (return_statement return LIT ;) })) })) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (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 ( )))) , (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 , 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 , LIT , IDENT , 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 , 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) ;) (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 IDENT (argument_list ( IDENT , 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 , 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 (binary_expression IDENT == LIT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))) <= (unary_expression - IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (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 (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) + IDENT) )))) = (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (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 = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) )))) ))) ))) >> 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) })) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + 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) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) || (binary_expression IDENT != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) - IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) < IDENT) ))))) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) || (binary_expression (binary_expression (parenthesized_expression ( IDENT )) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))))) )) (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 = (call_expression IDENT (argument_list ( IDENT , IDENT , 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)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) && (binary_expression IDENT == LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]))) ;) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , LIT , IDENT ))) ;) (return_statement return 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 , 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 , IDENT )))) ;) (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 , IDENT )))) ;) (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 , IDENT )))) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 , LIT , (subscript_expression IDENT [ LIT ]) , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , IDENT , LIT ))) ;)) (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 TYPE) ) 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 IDENT = BOOL) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "int __regparm3 FUN_00018920(void *param_1,size_t *param_2,int param_3)\n\n{\n  int *piVar1;\n  char cVar2;\n  byte bVar3;\n  int *piVar4;\n  undefined *puVar5;\n  void *pvVar6;\n  size_t sVar7;\n  code *pcVar8;\n  size_t *psVar9;\n  size_t *psVar10;\n  size_t *psVar11;\n  int iVar12;\n  undefined4 uVar13;\n  undefined4 uVar14;\n  FILE *__s;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  uint uVar17;\n  int iVar18;\n  int *piVar19;\n  undefined *puVar20;\n  int iVar21;\n  size_t sVar22;\n  size_t sVar23;\n  int *piVar24;\n  char *pcVar25;\n  void *pvVar26;\n  uint uVar27;\n  size_t sVar28;\n  size_t sVar29;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  size_t extraout_ECX_01;\n  size_t extraout_ECX_02;\n  size_t sVar30;\n  int iVar31;\n  void *pvVar32;\n  uint uVar33;\n  int *piVar34;\n  undefined4 *puVar35;\n  byte *pbVar36;\n  uint uVar37;\n  size_t *psVar38;\n  uint uVar39;\n  uint uVar40;\n  byte *pbVar41;\n  undefined4 *puVar42;\n  size_t *psVar43;\n  uint uVar44;\n  undefined1 *puVar45;\n  bool bVar46;\n  bool bVar47;\n  byte bVar48;\n  undefined8 uVar49;\n  longlong lVar50;\n  longlong lVar51;\n  void *pvVar52;\n  size_t sVar53;\n  void *__dest;\n  size_t sVar54;\n  size_t sVar55;\n  uint local_bc;\n  uint local_b8;\n  void *local_b4;\n  size_t *local_a8;\n  int local_a4;\n  int local_8c;\n  int *local_84;\n  uint local_7c;\n  uint local_78;\n  size_t *local_74;\n  size_t *local_6c;\n  int local_68;\n  int *local_64;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  int *local_34;\n  undefined4 local_30;\n  undefined4 uStack_14;\n  \n  bVar48 = 0;\n  uStack_14 = 0x1892b;\n  iVar12 = *(int *)(*(int *)((int)param_1 + 4) + 8);\n  if ((iVar12 != *(int *)(((int *)param_2)[1] + 8) && iVar12 != 2) &&\n     (*(int *)(((int *)param_2)[1] + 8) != 2)) {\n    uVar13 = dcgettext(0,"Unable to change endianness of input file(s)",5);\n    FUN_0002c910(uVar13);\n    return 0;\n  }\n  iVar12 = bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7);\n  if (iVar12 == 0) {\n    FUN_0002d3a0(0,param_2,0,0);\n    return 0;\n  }\n  if (*(int *)((int)param_1 + 0x60) == 0) {\n    uVar13 = FUN_0002d2a0(param_1);\n    pcVar25 = "error: the input file \'%s\' has no sections";\n    goto LAB_00018f38;\n  }\n  if ((*(undefined4 **)((int)param_1 + 4))[1] != 5) {\n    if ((DAT_00040b44 != 1) && ((DAT_00040b44 & 1) != 0)) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\nLAB_00018f38:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }\n    if (DAT_00040b40 != 0) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      goto LAB_00018f38;\n    }\n  }\n  if (DAT_00040bd0 != 0) {\n    uVar13 = **(undefined4 **)((int)param_1 + 4);\n    uVar14 = *(undefined4 *)((int *)param_2)[1];\n    iVar12 = *param_2;\n    uVar15 = FUN_0002d2a0(param_1);\n    pcVar25 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n    printf(pcVar25,uVar15,uVar13,iVar12,uVar14);\n  }\n  iVar12 = 0;\n  iVar31 = 0;\n  if (DAT_00040aec == 0) {\n    uVar39 = DAT_00040b88;\n    iVar31 = DAT_00040b8c;\n    if (DAT_00040b90 == 0) {\n      uVar39 = *(uint *)((int)param_1 + 0x70);\n      iVar31 = *(int *)((int)param_1 + 0x74);\n    }\n    iVar12 = uVar39 + DAT_00040b98;\n    iVar31 = iVar31 + DAT_00040b9c + (uint)CARRY4(uVar39,DAT_00040b98);\n  }\n  if ((*(byte *)((int *)param_2 + 10) & 7) != 3) {\n    uVar39 = ~DAT_00040b5c & *(uint *)(((int *)param_2)[1] + 0x10) &\n             (*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff | DAT_00040b60);\n    if (DAT_00040bb0 == 7) {\n      uVar39 = uVar39 & 0xfffffffe;\n    }\n    iVar12 = bfd_set_start_address(param_2,iVar12,iVar31);\n    if ((iVar12 == 0) || (iVar12 = bfd_set_file_flags(param_2,uVar39), iVar12 == 0))\n    goto LAB_00018b70;\n  }\n  uVar13 = bfd_get_arch(param_1);\n  uVar14 = bfd_get_mach(param_1);\n  if (param_3 != 0) {\n    iVar12 = bfd_get_arch_info(param_1);\n    if ((iVar12 == 0) || (iVar12 = bfd_get_arch_info(param_1), *(int *)(iVar12 + 0xc) == 0)) {\n      uVar13 = *(undefined4 *)(param_3 + 0xc);\n      uVar14 = *(undefined4 *)(param_3 + 0x10);\n    }\n    else {\n      uVar15 = FUN_0002d2a0(param_1);\n      uVar16 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n      FUN_0002c910(uVar16,uVar15);\n    }\n  }\n  iVar12 = (**(code **)(((int *)param_2)[1] + 0x154))(param_2,uVar13,uVar14);\n  if (iVar12 == 0) {\n    if ((*(byte *)((int)param_1 + 0x2b) & 4) != 0) {\nLAB_00018b20:\n      iVar12 = bfd_get_arch(param_1);\n      if (iVar12 == 0) {\n        uVar13 = FUN_0002d2a0(param_1);\n        pcVar25 = "Unable to recognise the format of the input file `%s\'";\n      }\n      else {\n        uVar13 = bfd_get_mach(param_1);\n        uVar14 = bfd_get_arch(param_1);\n        uVar13 = bfd_printable_arch_mach(uVar14,uVar13);\n        pcVar25 = "Output file cannot represent architecture `%s\'";\n      }\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }\n    iVar12 = bfd_get_arch(param_1);\n    iVar31 = bfd_get_arch(param_2);\n    if (iVar12 != iVar31) goto LAB_00018b20;\n  }\n  iVar12 = bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7);\n  if (iVar12 == 0) {\nLAB_00018b70:\n    FUN_0002d3a0(0,param_1,0,0);\n    return 0;\n  }\n  uVar39 = ((undefined4 *)((int *)param_2)[1])[1];\n  bVar46 = uVar39 < 2;\n  bVar47 = uVar39 == 2;\n  if (bVar47) {\n    iVar12 = 4;\n    pbVar36 = *(byte **)((int *)param_2)[1];\n    pbVar41 = &DAT_0002f16a;\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar46 = *pbVar36 < *pbVar41;\n      bVar47 = *pbVar36 == *pbVar41;\n      pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n      pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n    } while (bVar47);\n    if ((!bVar46 && !bVar47) == bVar46) {\n      iVar12 = ((int *)param_2)[0x28];\n      uVar39 = (*(undefined4 **)((int)param_1 + 4))[1];\n      bVar46 = uVar39 < 2;\n      bVar47 = uVar39 == 2;\n      if (bVar47) {\n        iVar31 = 4;\n        pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4);\n        pbVar41 = &DAT_0002f16a;\n        do {\n          if (iVar31 == 0) break;\n          iVar31 = iVar31 + -1;\n          bVar46 = *pbVar36 < *pbVar41;\n          bVar47 = *pbVar36 == *pbVar41;\n          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n        } while (bVar47);\n        if ((!bVar46 && !bVar47) == bVar46) {\n          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);\n          puVar42 = (undefined4 *)(iVar12 + 0x7c);\n          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }\n        }\n      }\n      uVar39 = DAT_000402b4;\n      if ((DAT_000402b4 & DAT_000402b0) == 0xffffffff) {\n        DAT_000402b0 = 0x200;\n        DAT_000402b4 = 0;\n      }\n      else {\n        *(uint *)(iVar12 + 0xb4) = DAT_000402b0;\n        *(uint *)(iVar12 + 0xb8) = uVar39;\n      }\n      uVar39 = DAT_000402ac;\n      if ((DAT_000402ac & DAT_000402a8) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a8;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_000402a4;\n      if ((DAT_000402a4 & DAT_000402a0) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a0;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_0004029c;\n      if ((DAT_0004029c & DAT_00040298) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xa4) = DAT_00040298;\n        *(uint *)(iVar12 + 0xa8) = uVar39;\n      }\n      uVar39 = DAT_00040294;\n      local_64 = (int *)DAT_00040290;\n      if ((DAT_00040290 & DAT_00040294) == 0xffffffff) {\n        DAT_00040290 = 0x1000;\n        uVar39 = 0;\n        DAT_00040294 = 0;\n        local_64 = (int *)0x1000;\n      }\n      else {\n        *(uint *)(iVar12 + 0xac) = DAT_00040290;\n        *(uint *)(iVar12 + 0xb0) = uVar39;\n      }\n      uVar17 = DAT_0004028c;\n      if ((DAT_0004028c & DAT_00040288) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040288;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      uVar17 = DAT_00040284;\n      if ((DAT_00040284 & DAT_00040280) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040280;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      if (DAT_0004027c != -1) {\n        *(short *)(iVar12 + 0xd8) = DAT_0004027c;\n      }\n      if (DAT_0004027a != -1) {\n        *(short *)(iVar12 + 0xc4) = DAT_0004027a;\n      }\n      if (DAT_00040278 != -1) {\n        *(short *)(iVar12 + 0xc6) = DAT_00040278;\n      }\n      if (uVar39 < DAT_000402b4 || uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0)) {\n        sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4);\n        sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294);\n        uVar13 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n        FUN_0002c910(uVar13,&local_4c,&local_34);\n      }\n    }\n  }\n  piVar19 = DAT_00040bdc;\n  if (DAT_00040bdc != (int *)0x0) {\n    free(DAT_00040bdc);\n  }\n  if (piVar19 != DAT_00040bd8) {\n    free(DAT_00040bd8);\n  }\n  DAT_00040bdc = (int *)0x0;\n  DAT_00040bd8 = (int *)0x0;\n  iVar12 = (**(code **)(*(int *)((int)param_1 + 4) + 0x104))(param_1);\n  if (iVar12 < 0) goto LAB_00018b70;\n  DAT_00040bd8 = (int *)xmalloc(iVar12);\n  DAT_00040bdc = DAT_00040bd8;\n  local_8c = (**(code **)(*(int *)((int)param_1 + 4) + 0x108))(param_1,DAT_00040bd8);\n  if (local_8c < 0) goto LAB_00018b70;\n  if (local_8c == 0) {\n    free(DAT_00040bdc);\n    DAT_00040bdc = (int *)0x0;\n    DAT_00040bd8 = (int *)0x0;\n  }\n  bfd_map_over_sections(param_1,FUN_00017af0,param_2);\n  puVar35 = DAT_00040b58;\n  if ((DAT_00040aec == 0) &&\n     (iVar12 = (**(code **)(((int *)param_2)[1] + 0xbc))(param_1,param_2), puVar35 = DAT_00040b58,\n     iVar12 == 0)) {\n    DAT_00040bc8 = 1;\n    uVar13 = dcgettext(0,"error in private header data",5);\n    FUN_0002d3a0(0,param_1,0,uVar13);\n    puVar35 = DAT_00040b58;\n  }\n  for (; puVar42 = DAT_00040b54, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)*puVar35) {\n    uVar39 = 0x128;\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      uVar39 = *(uint *)(iVar12 + 0x20) | 0x100;\n    }\n    iVar12 = bfd_get_section_by_name(param_2,puVar35[1]);\n    if (iVar12 != 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t add section \'%s\'";\nLAB_00019591:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n      return 0;\n    }\n    iVar12 = bfd_make_section_with_flags(param_2,puVar35[1],uVar39 | 0x100000);\n    puVar35[5] = iVar12;\n    if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t create section `%s\'";\n      goto LAB_00019591;\n    }\n    iVar12 = bfd_set_section_size(param_2,iVar12,puVar35[3],0);\n    if (iVar12 == 0) goto LAB_00019d5e;\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x14);\n      uVar14 = *(undefined4 *)(iVar12 + 0x10);\n      *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      *(undefined4 *)(iVar31 + 0x24) = uVar14;\n      *(undefined4 *)(iVar31 + 0x28) = uVar13;\n      *(undefined4 *)(iVar31 + 0x1c) = uVar14;\n      *(undefined4 *)(iVar31 + 0x20) = uVar13;\n    }\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x18);\n      *(undefined4 *)(iVar31 + 0x28) = *(undefined4 *)(iVar12 + 0x1c);\n      *(undefined4 *)(iVar31 + 0x24) = uVar13;\n    }\n  }\n  for (; local_6c = param_2, puVar42 != (undefined4 *)0x0; puVar42 = (undefined4 *)*puVar42) {\n    iVar12 = bfd_get_section_by_name(param_1,puVar42[1]);\n    puVar42[5] = iVar12;\n    if (iVar12 == 0) {\n      uVar13 = puVar42[1];\n      pcVar25 = "error: %s not found, can\'t be updated";\n      goto LAB_00018f38;\n    }\n    psVar43 = *(size_t **)(iVar12 + 0x54);\n    iVar12 = bfd_set_section_size(param_2,psVar43,puVar42[3],0);\n    if (iVar12 == 0) goto LAB_00019fa0;\n  }\n  if ((((DAT_00040bc4 != 0) &&\n       (iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0)) &&\n      (DAT_00040bc4 != 0)) &&\n     ((*(int *)(*(int *)((int)param_1 + 4) + 4) == 5 && (iVar31 = FUN_000176d0(), iVar31 != 0)))) {\n    uVar39 = *(uint *)(iVar12 + 0x30);\n    sVar22 = *(size_t *)(iVar12 + 0x2c);\n    if (uVar39 == 0 && sVar22 == 0) {\n      uVar13 = dcgettext(0,"warning: note section is empty",5,sVar22);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n      DAT_00040bc4 = 0;\n    }\n    else {\n      iVar31 = bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22);\n      pvVar6 = DAT_00040bc0;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"warning: could not load note section",5,0);\n        FUN_0002d3a0(0,param_1,iVar12,uVar13);\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n      }\n      else {\n        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);\n        sVar23 = extraout_ECX_01;\n        pvVar26 = param_1;\n        if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar52 = (void *)0x30;\n        sVar53 = sVar23;\n        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);\n        local_74 = (size_t *)xcalloc(uVar13);\n        local_bc = 0;\n        sVar54 = 0;\n        local_b8 = 0;\n        sVar55 = 0;\n        local_84 = (int *)0x0;\n        local_a8 = (size_t *)0x0;\n        local_a4 = 0;\n        pvVar26 = pvVar6;\n        psVar43 = local_74;\n        local_7c = sVar22;\n        local_78 = uVar39;\n        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }\n        if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        DAT_00040bb8 = 0;\n        DAT_00040bbc = 0;\n      }\n    }\n  }\nLAB_00018e0e:\n  param_2 = local_6c;\n  iVar31 = DAT_00040b4c;\n  for (puVar35 = DAT_00040b50; DAT_00040b4c = iVar31, puVar35 != (undefined4 *)0x0;\n      puVar35 = (undefined4 *)*puVar35) {\n    iVar12 = bfd_get_section_by_name(param_1,puVar35[1]);\n    if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      uVar14 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n      FUN_0002d3a0(0,param_1,0,uVar14,uVar13);\n    }\n    else {\n      if ((*(byte *)(iVar12 + 0x15) & 1) == 0) {\n        pcVar25 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar22 = *(size_t *)(iVar12 + 0x2c);\n        iVar31 = *(int *)(iVar12 + 0x30);\n        if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar25 = "can\'t dump section - it is empty";\n      }\n      uVar13 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n    }\nLAB_00018eb1:\n    iVar31 = DAT_00040b4c;\n  }\n  if (iVar31 != 0) {\n    iVar12 = bfd_get_section_by_name(local_6c,".gnu_debuglink");\n    if (iVar12 == 0) {\n      iVar31 = bfd_create_gnu_debuglink_section(local_6c,DAT_00040b4c);\n      iVar12 = DAT_00040b4c;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,local_6c,0,uVar13,iVar12);\n        return 0;\n      }\n      if (*(int *)(local_6c[1] + 4) == 2) {\n        iVar12 = local_6c[0x18];\n        iVar18 = 0;\n        if (iVar12 == 0) {\nLAB_0001aa69:\n          uVar39 = 0x1000;\n          iVar12 = 0;\n        }\n        else {\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(iVar31 + 0x24) = uVar39;\n        *(int *)(iVar31 + 0x28) = iVar12;\n        *(uint *)(iVar31 + 0x1c) = uVar39;\n        *(int *)(iVar31 + 0x20) = iVar12;\n        *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      }\n    }\n    else {\n      iVar12 = *local_6c;\n      uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n      FUN_0002c910(uVar13,iVar12);\n      DAT_00040b4c = 0;\n      iVar31 = 0;\n    }\n  }\n  sVar22 = local_6c[0x1a];\n  if ((sVar22 == 0) || (DAT_00040b78 == 0 && DAT_00040b70 == 0)) {\n    local_b8 = 0;\n    local_bc = 0;\n    local_b4 = (void *)0x0;\n    local_a8 = (size_t *)0x0;\n    uVar39 = local_bc;\n    uVar17 = local_b8;\n  }\n  else {\n    local_a8 = (size_t *)xmalloc(sVar22 * 4);\n    local_34 = (int *)local_a8;\n    bfd_map_over_sections(local_6c,FUN_00016800,&local_34);\n    qsort(local_a8,sVar22,4,FUN_00016820);\n    sVar23 = sVar22 * 8;\n    local_b4 = (void *)xmalloc(sVar23);\n    memset(local_b4,0,sVar23);\n    if ((DAT_00040b78 == 0) || (sVar22 == 1)) {\n      local_b8 = 0;\n      local_bc = 0;\n    }\n    else {\n      local_b8 = 0;\n      local_bc = 0;\n      local_6c = (size_t *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (size_t *)((int)local_6c + 1);\n        iVar12 = *local_64;\n        uVar39 = local_bc;\n        uVar17 = local_b8;\n        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }\n        local_b8 = uVar17;\n        local_bc = uVar39;\n        local_64 = local_64 + 1;\n      } while ((size_t *)(sVar22 - 1) != local_6c);\n    }\n    uVar39 = local_bc;\n    uVar17 = local_b8;\n    if (DAT_00040b70 != 0) {\n      iVar12 = ((int *)local_a8)[sVar22 - 1];\n      uVar27 = *(uint *)(iVar12 + 0x24);\n      uVar37 = uVar27 + *(uint *)(iVar12 + 0x2c);\n      uVar44 = *(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +\n               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c));\n      if (uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)) {\n        iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           );\n        if (iVar12 == 0) {\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }\n        else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }\n      }\n    }\n  }\n  local_b8 = uVar17;\n  local_bc = uVar39;\n  iVar12 = 0;\n  if (DAT_00040b48 != 0) {\n    iVar12 = FUN_0001c9c0(param_1,DAT_00040bdc,local_8c,0);\n  }\n  if (DAT_00040bb0 - 2U < 6) {\nLAB_0001962a:\n    if (DAT_00040bb0 != 7) goto LAB_0001962f;\n  }\n  else {\n    if (DAT_00040b30 == 0 && DAT_00040bac == 0) {\n      iVar18 = htab_elements(DAT_00040b2c);\n      if ((((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&\n         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))))\n      goto LAB_00019e4d;\n      goto LAB_0001962a;\n    }\nLAB_0001962f:\n    bfd_set_error(0);\n    bfd_map_over_sections(param_1,FUN_000187a0,DAT_00040bdc);\n    iVar18 = bfd_get_error();\n    if (iVar18 != 0) {\n      DAT_00040bc8 = 1;\n      return 0;\n    }\n  }\n  piVar19 = (int *)xmalloc((DAT_00040b04 + local_8c) * 4 + 4);\n  local_84 = DAT_00040bdc;\n  uVar39 = *(uint *)((int)param_1 + 0x28);\n  DAT_00040bd8 = piVar19;\n  if (local_8c != 0) {\n    piVar1 = DAT_00040bdc + local_8c;\n    local_8c = 0;\n    puVar20 = PTR__bfd_std_section_0003ffc8 + 0xc0;\n    do {\n      iVar18 = DAT_00040b04;\n      piVar4 = (int *)*local_84;\n      uVar17 = piVar4[4];\n      piVar24 = (int *)piVar4[1];\n      puVar5 = (undefined *)piVar4[5];\n      if (((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) &&\n         (pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0)) {\n        local_6c = (size_t *)0x0;\n        piVar34 = DAT_00040b08;\n        while (iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0) {\n          local_6c = (size_t *)((int)local_6c + 1);\n          piVar34 = (int *)*piVar34;\n          if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar25);\n        piVar34[5] = (int)"";\n        piVar34 = piVar19 + local_8c;\n        local_8c = local_8c + 1;\n        iVar18 = FUN_00017920();\n        *piVar34 = iVar18;\n      }\nLAB_000197a8:\n      iVar18 = htab_elements(DAT_00040b10);\n      piVar34 = piVar24;\n      if ((iVar18 != 0) || (DAT_00040be0 != (undefined4 *)0x0)) {\n        local_30 = 0;\n        local_34 = piVar24;\n        iVar18 = htab_find(DAT_00040b10,&local_34);\n        if (((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)) {\n          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }\n        }\n        piVar4[1] = (int)piVar34;\n      }\n      pcVar25 = DAT_00040af8;\n      cVar2 = *(char *)(*(int *)((int)param_1 + 4) + 0x18);\n      if ((char)*piVar34 == cVar2) {\n        if (DAT_00040b3c == 0) {\n          if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }\nLAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }\n      }\n      else {\n        if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))\n        goto LAB_0001982b;\nLAB_00019ab1:\n        sVar22 = strlen(pcVar25);\n        sVar23 = strlen((char *)piVar34);\n        piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n        local_6c = (size_t *)((int)piVar24 + 1);\n        *(char *)piVar24 = *(char *)(param_2[1] + 0x18);\nLAB_00019858:\n        pcVar25 = DAT_00040af8;\n        if (DAT_00040af8 != (char *)0x0) {\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }\n        strcpy((char *)local_6c,(char *)piVar34);\n        piVar4[1] = (int)piVar24;\n        piVar34 = piVar24;\n      }\n      if (DAT_00040bb0 == 7) goto LAB_00019928;\n      if ((uVar17 & 0x20) == 0) {\n        if (((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)) {\n          if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;\n        }\n        else {\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;\n      }\n      else {\n        iVar18 = FUN_000179c0();\n        if (iVar18 != 0) {\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }\nLAB_0001994f:\n        iVar18 = FUN_00017a30();\n        if (iVar18 == 0) {\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }\n      }\n      local_84 = local_84 + 1;\n    } while (piVar1 != local_84);\n  }\n  local_6c = (size_t *)DAT_00040b08;\n  if ((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) {\n    iVar18 = 0;\n    do {\n      pcVar25 = (char *)local_6c[5];\n      if (pcVar25 == (char *)0x0) {\n        iVar21 = FUN_00017920();\n        piVar19[local_8c] = iVar21;\n        local_8c = local_8c + 1;\n      }\n      else if (*pcVar25 != '\0') {\n        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    \n        FUN_0002c8e0(uVar13,pcVar25);\n      }\n      iVar18 = iVar18 + 1;\n      local_6c = (size_t *)*local_6c;\n    } while (iVar18 < DAT_00040b04);\n  }\n  piVar19[local_8c] = 0;\n  if ((DAT_00040b48 != 0) && (iVar12 != 0)) {\n    iVar18 = ((undefined4 *)param_2[1])[1];\n    if ((iVar18 == 2) || (iVar18 == 5)) {\n      iVar12 = FUN_0002c240(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34);\n      if (iVar12 != 0) {\n        iVar12 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n        iVar18 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n        if ((((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)) {\n          pcVar25 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }\n        uVar13 = dcgettext(0,pcVar25,5,iVar12);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n      }\n    }\n    else {\n      uVar13 = *(undefined4 *)param_2[1];\n      uVar14 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n    }\n    DAT_00040bc8 = 1;\n    return 0;\n  }\nLAB_00019e4d:\n  bfd_set_symtab(param_2,DAT_00040bd8,local_8c);\n  bfd_map_over_sections(param_1,FUN_00018500,param_2);\n  bfd_map_over_sections(param_1,FUN_00018070,param_2);\n  for (puVar35 = DAT_00040b58; psVar43 = param_2, puVar42 = DAT_00040b54,\n      puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)*puVar35) {\n    iVar12 = bfd_set_section_contents(param_2,puVar35[5],puVar35[4],0,0,puVar35[3],0);\n    if (iVar12 == 0) {\nLAB_00019d5e:\n      FUN_0002d3a0(0,param_2,puVar35[5],0);\n      return 0;\n    }\n  }\n  while( true ) {\n    if (puVar42 == (undefined4 *)0x0) {\n      uVar39 = 0;\n      if (DAT_00040bc4 != 0) {\n        uVar39 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n        if (((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))) {\n          if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }\n        }\n        else {\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        psVar43 = param_2;\n      }\n      if ((DAT_00040b4c != 0) &&\n         (iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0)) {\n        uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,param_2,0,uVar13,iVar12);\n        return 0;\n      }\n      if (DAT_00040b78 != 0 || DAT_00040b70 != 0) {\n        uVar39 = 0x2000;\n        if (local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc) {\n          uVar39 = local_b8;\n        }\n        piVar19 = (int *)xmalloc(uVar39);\n        iVar12 = (uint)DAT_00040b74 * 0x1010101;\n        if (uVar39 < 4) {\n          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }\n        }\n        else {\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }\n        iVar12 = param_2[0x1a];\n        if (iVar12 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);\n        }\n      }\n      iVar12 = (**(code **)(param_2[1] + 0xa8))(param_1,param_2);\n      if (iVar12 == 0) {\n        uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n        return 0;\n      }\n      if ((DAT_00040b64 != 0) &&\n         (iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0)) {\n        uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)\n        ;\n        FUN_0002c910(uVar13,iVar12);\n        if (*(int *)(param_2[1] + 4) != 5) {\n          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          FUN_0002c910(uVar13);\n          return 1;\n        }\n        uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)\n        ;\n        FUN_0002c910(uVar13);\n        *(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64;\n      }\n      return 1;\n    }\n    psVar43 = *(size_t **)(puVar42[5] + 0x54);\n    iVar12 = bfd_set_section_contents(param_2,psVar43,puVar42[4],0,0,puVar42[3],0);\n    local_6c = param_2;\n    if (iVar12 == 0) break;\n    puVar42 = (undefined4 *)*puVar42;\n  }\nLAB_00019fa0:\n  FUN_0002d3a0(0,local_6c,psVar43,0);\n  return iVar12;\nLAB_0001b1a6:\n  if ((undefined1 *)((int)pvVar32 + sVar54) <= puVar45) goto LAB_0001b1aa;\n  *puVar45 = (char)uVar17;\n  if (uVar17 == 0) goto LAB_0001b1aa;\n  uVar17 = uVar17 >> 8;\n  puVar45 = puVar45 + 1;\n  goto LAB_0001b1a6;\nLAB_0001b1aa:\n  bVar46 = true;\n  psVar9[0xe] = 0;\n  goto LAB_0001afd1;\n}" (primitive_type "int") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00018920(void *param_1,size_t *param_2,int param_3)" (identifier "FUN_00018920") (parameter_list "(void *param_1,size_t *param_2,int param_3)" (( "(") (parameter_declaration "void *param_1" (primitive_type "void") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "size_t *param_2" (primitive_type "size_t") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) () ")"))) (compound_statement "{\n  int *piVar1;\n  char cVar2;\n  byte bVar3;\n  int *piVar4;\n  undefined *puVar5;\n  void *pvVar6;\n  size_t sVar7;\n  code *pcVar8;\n  size_t *psVar9;\n  size_t *psVar10;\n  size_t *psVar11;\n  int iVar12;\n  undefined4 uVar13;\n  undefined4 uVar14;\n  FILE *__s;\n  undefined4 uVar15;\n  undefined4 uVar16;\n  uint uVar17;\n  int iVar18;\n  int *piVar19;\n  undefined *puVar20;\n  int iVar21;\n  size_t sVar22;\n  size_t sVar23;\n  int *piVar24;\n  char *pcVar25;\n  void *pvVar26;\n  uint uVar27;\n  size_t sVar28;\n  size_t sVar29;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  size_t extraout_ECX_01;\n  size_t extraout_ECX_02;\n  size_t sVar30;\n  int iVar31;\n  void *pvVar32;\n  uint uVar33;\n  int *piVar34;\n  undefined4 *puVar35;\n  byte *pbVar36;\n  uint uVar37;\n  size_t *psVar38;\n  uint uVar39;\n  uint uVar40;\n  byte *pbVar41;\n  undefined4 *puVar42;\n  size_t *psVar43;\n  uint uVar44;\n  undefined1 *puVar45;\n  bool bVar46;\n  bool bVar47;\n  byte bVar48;\n  undefined8 uVar49;\n  longlong lVar50;\n  longlong lVar51;\n  void *pvVar52;\n  size_t sVar53;\n  void *__dest;\n  size_t sVar54;\n  size_t sVar55;\n  uint local_bc;\n  uint local_b8;\n  void *local_b4;\n  size_t *local_a8;\n  int local_a4;\n  int local_8c;\n  int *local_84;\n  uint local_7c;\n  uint local_78;\n  size_t *local_74;\n  size_t *local_6c;\n  int local_68;\n  int *local_64;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  int *local_34;\n  undefined4 local_30;\n  undefined4 uStack_14;\n  \n  bVar48 = 0;\n  uStack_14 = 0x1892b;\n  iVar12 = *(int *)(*(int *)((int)param_1 + 4) + 8);\n  if ((iVar12 != *(int *)(((int *)param_2)[1] + 8) && iVar12 != 2) &&\n     (*(int *)(((int *)param_2)[1] + 8) != 2)) {\n    uVar13 = dcgettext(0,"Unable to change endianness of input file(s)",5);\n    FUN_0002c910(uVar13);\n    return 0;\n  }\n  iVar12 = bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7);\n  if (iVar12 == 0) {\n    FUN_0002d3a0(0,param_2,0,0);\n    return 0;\n  }\n  if (*(int *)((int)param_1 + 0x60) == 0) {\n    uVar13 = FUN_0002d2a0(param_1);\n    pcVar25 = "error: the input file \'%s\' has no sections";\n    goto LAB_00018f38;\n  }\n  if ((*(undefined4 **)((int)param_1 + 4))[1] != 5) {\n    if ((DAT_00040b44 != 1) && ((DAT_00040b44 & 1) != 0)) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\nLAB_00018f38:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }\n    if (DAT_00040b40 != 0) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      goto LAB_00018f38;\n    }\n  }\n  if (DAT_00040bd0 != 0) {\n    uVar13 = **(undefined4 **)((int)param_1 + 4);\n    uVar14 = *(undefined4 *)((int *)param_2)[1];\n    iVar12 = *param_2;\n    uVar15 = FUN_0002d2a0(param_1);\n    pcVar25 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n    printf(pcVar25,uVar15,uVar13,iVar12,uVar14);\n  }\n  iVar12 = 0;\n  iVar31 = 0;\n  if (DAT_00040aec == 0) {\n    uVar39 = DAT_00040b88;\n    iVar31 = DAT_00040b8c;\n    if (DAT_00040b90 == 0) {\n      uVar39 = *(uint *)((int)param_1 + 0x70);\n      iVar31 = *(int *)((int)param_1 + 0x74);\n    }\n    iVar12 = uVar39 + DAT_00040b98;\n    iVar31 = iVar31 + DAT_00040b9c + (uint)CARRY4(uVar39,DAT_00040b98);\n  }\n  if ((*(byte *)((int *)param_2 + 10) & 7) != 3) {\n    uVar39 = ~DAT_00040b5c & *(uint *)(((int *)param_2)[1] + 0x10) &\n             (*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff | DAT_00040b60);\n    if (DAT_00040bb0 == 7) {\n      uVar39 = uVar39 & 0xfffffffe;\n    }\n    iVar12 = bfd_set_start_address(param_2,iVar12,iVar31);\n    if ((iVar12 == 0) || (iVar12 = bfd_set_file_flags(param_2,uVar39), iVar12 == 0))\n    goto LAB_00018b70;\n  }\n  uVar13 = bfd_get_arch(param_1);\n  uVar14 = bfd_get_mach(param_1);\n  if (param_3 != 0) {\n    iVar12 = bfd_get_arch_info(param_1);\n    if ((iVar12 == 0) || (iVar12 = bfd_get_arch_info(param_1), *(int *)(iVar12 + 0xc) == 0)) {\n      uVar13 = *(undefined4 *)(param_3 + 0xc);\n      uVar14 = *(undefined4 *)(param_3 + 0x10);\n    }\n    else {\n      uVar15 = FUN_0002d2a0(param_1);\n      uVar16 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n      FUN_0002c910(uVar16,uVar15);\n    }\n  }\n  iVar12 = (**(code **)(((int *)param_2)[1] + 0x154))(param_2,uVar13,uVar14);\n  if (iVar12 == 0) {\n    if ((*(byte *)((int)param_1 + 0x2b) & 4) != 0) {\nLAB_00018b20:\n      iVar12 = bfd_get_arch(param_1);\n      if (iVar12 == 0) {\n        uVar13 = FUN_0002d2a0(param_1);\n        pcVar25 = "Unable to recognise the format of the input file `%s\'";\n      }\n      else {\n        uVar13 = bfd_get_mach(param_1);\n        uVar14 = bfd_get_arch(param_1);\n        uVar13 = bfd_printable_arch_mach(uVar14,uVar13);\n        pcVar25 = "Output file cannot represent architecture `%s\'";\n      }\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }\n    iVar12 = bfd_get_arch(param_1);\n    iVar31 = bfd_get_arch(param_2);\n    if (iVar12 != iVar31) goto LAB_00018b20;\n  }\n  iVar12 = bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7);\n  if (iVar12 == 0) {\nLAB_00018b70:\n    FUN_0002d3a0(0,param_1,0,0);\n    return 0;\n  }\n  uVar39 = ((undefined4 *)((int *)param_2)[1])[1];\n  bVar46 = uVar39 < 2;\n  bVar47 = uVar39 == 2;\n  if (bVar47) {\n    iVar12 = 4;\n    pbVar36 = *(byte **)((int *)param_2)[1];\n    pbVar41 = &DAT_0002f16a;\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar46 = *pbVar36 < *pbVar41;\n      bVar47 = *pbVar36 == *pbVar41;\n      pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n      pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n    } while (bVar47);\n    if ((!bVar46 && !bVar47) == bVar46) {\n      iVar12 = ((int *)param_2)[0x28];\n      uVar39 = (*(undefined4 **)((int)param_1 + 4))[1];\n      bVar46 = uVar39 < 2;\n      bVar47 = uVar39 == 2;\n      if (bVar47) {\n        iVar31 = 4;\n        pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4);\n        pbVar41 = &DAT_0002f16a;\n        do {\n          if (iVar31 == 0) break;\n          iVar31 = iVar31 + -1;\n          bVar46 = *pbVar36 < *pbVar41;\n          bVar47 = *pbVar36 == *pbVar41;\n          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n        } while (bVar47);\n        if ((!bVar46 && !bVar47) == bVar46) {\n          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);\n          puVar42 = (undefined4 *)(iVar12 + 0x7c);\n          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }\n        }\n      }\n      uVar39 = DAT_000402b4;\n      if ((DAT_000402b4 & DAT_000402b0) == 0xffffffff) {\n        DAT_000402b0 = 0x200;\n        DAT_000402b4 = 0;\n      }\n      else {\n        *(uint *)(iVar12 + 0xb4) = DAT_000402b0;\n        *(uint *)(iVar12 + 0xb8) = uVar39;\n      }\n      uVar39 = DAT_000402ac;\n      if ((DAT_000402ac & DAT_000402a8) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a8;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_000402a4;\n      if ((DAT_000402a4 & DAT_000402a0) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a0;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_0004029c;\n      if ((DAT_0004029c & DAT_00040298) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xa4) = DAT_00040298;\n        *(uint *)(iVar12 + 0xa8) = uVar39;\n      }\n      uVar39 = DAT_00040294;\n      local_64 = (int *)DAT_00040290;\n      if ((DAT_00040290 & DAT_00040294) == 0xffffffff) {\n        DAT_00040290 = 0x1000;\n        uVar39 = 0;\n        DAT_00040294 = 0;\n        local_64 = (int *)0x1000;\n      }\n      else {\n        *(uint *)(iVar12 + 0xac) = DAT_00040290;\n        *(uint *)(iVar12 + 0xb0) = uVar39;\n      }\n      uVar17 = DAT_0004028c;\n      if ((DAT_0004028c & DAT_00040288) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040288;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      uVar17 = DAT_00040284;\n      if ((DAT_00040284 & DAT_00040280) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040280;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      if (DAT_0004027c != -1) {\n        *(short *)(iVar12 + 0xd8) = DAT_0004027c;\n      }\n      if (DAT_0004027a != -1) {\n        *(short *)(iVar12 + 0xc4) = DAT_0004027a;\n      }\n      if (DAT_00040278 != -1) {\n        *(short *)(iVar12 + 0xc6) = DAT_00040278;\n      }\n      if (uVar39 < DAT_000402b4 || uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0)) {\n        sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4);\n        sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294);\n        uVar13 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n        FUN_0002c910(uVar13,&local_4c,&local_34);\n      }\n    }\n  }\n  piVar19 = DAT_00040bdc;\n  if (DAT_00040bdc != (int *)0x0) {\n    free(DAT_00040bdc);\n  }\n  if (piVar19 != DAT_00040bd8) {\n    free(DAT_00040bd8);\n  }\n  DAT_00040bdc = (int *)0x0;\n  DAT_00040bd8 = (int *)0x0;\n  iVar12 = (**(code **)(*(int *)((int)param_1 + 4) + 0x104))(param_1);\n  if (iVar12 < 0) goto LAB_00018b70;\n  DAT_00040bd8 = (int *)xmalloc(iVar12);\n  DAT_00040bdc = DAT_00040bd8;\n  local_8c = (**(code **)(*(int *)((int)param_1 + 4) + 0x108))(param_1,DAT_00040bd8);\n  if (local_8c < 0) goto LAB_00018b70;\n  if (local_8c == 0) {\n    free(DAT_00040bdc);\n    DAT_00040bdc = (int *)0x0;\n    DAT_00040bd8 = (int *)0x0;\n  }\n  bfd_map_over_sections(param_1,FUN_00017af0,param_2);\n  puVar35 = DAT_00040b58;\n  if ((DAT_00040aec == 0) &&\n     (iVar12 = (**(code **)(((int *)param_2)[1] + 0xbc))(param_1,param_2), puVar35 = DAT_00040b58,\n     iVar12 == 0)) {\n    DAT_00040bc8 = 1;\n    uVar13 = dcgettext(0,"error in private header data",5);\n    FUN_0002d3a0(0,param_1,0,uVar13);\n    puVar35 = DAT_00040b58;\n  }\n  for (; puVar42 = DAT_00040b54, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)*puVar35) {\n    uVar39 = 0x128;\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      uVar39 = *(uint *)(iVar12 + 0x20) | 0x100;\n    }\n    iVar12 = bfd_get_section_by_name(param_2,puVar35[1]);\n    if (iVar12 != 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t add section \'%s\'";\nLAB_00019591:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n      return 0;\n    }\n    iVar12 = bfd_make_section_with_flags(param_2,puVar35[1],uVar39 | 0x100000);\n    puVar35[5] = iVar12;\n    if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t create section `%s\'";\n      goto LAB_00019591;\n    }\n    iVar12 = bfd_set_section_size(param_2,iVar12,puVar35[3],0);\n    if (iVar12 == 0) goto LAB_00019d5e;\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x14);\n      uVar14 = *(undefined4 *)(iVar12 + 0x10);\n      *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      *(undefined4 *)(iVar31 + 0x24) = uVar14;\n      *(undefined4 *)(iVar31 + 0x28) = uVar13;\n      *(undefined4 *)(iVar31 + 0x1c) = uVar14;\n      *(undefined4 *)(iVar31 + 0x20) = uVar13;\n    }\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x18);\n      *(undefined4 *)(iVar31 + 0x28) = *(undefined4 *)(iVar12 + 0x1c);\n      *(undefined4 *)(iVar31 + 0x24) = uVar13;\n    }\n  }\n  for (; local_6c = param_2, puVar42 != (undefined4 *)0x0; puVar42 = (undefined4 *)*puVar42) {\n    iVar12 = bfd_get_section_by_name(param_1,puVar42[1]);\n    puVar42[5] = iVar12;\n    if (iVar12 == 0) {\n      uVar13 = puVar42[1];\n      pcVar25 = "error: %s not found, can\'t be updated";\n      goto LAB_00018f38;\n    }\n    psVar43 = *(size_t **)(iVar12 + 0x54);\n    iVar12 = bfd_set_section_size(param_2,psVar43,puVar42[3],0);\n    if (iVar12 == 0) goto LAB_00019fa0;\n  }\n  if ((((DAT_00040bc4 != 0) &&\n       (iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0)) &&\n      (DAT_00040bc4 != 0)) &&\n     ((*(int *)(*(int *)((int)param_1 + 4) + 4) == 5 && (iVar31 = FUN_000176d0(), iVar31 != 0)))) {\n    uVar39 = *(uint *)(iVar12 + 0x30);\n    sVar22 = *(size_t *)(iVar12 + 0x2c);\n    if (uVar39 == 0 && sVar22 == 0) {\n      uVar13 = dcgettext(0,"warning: note section is empty",5,sVar22);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n      DAT_00040bc4 = 0;\n    }\n    else {\n      iVar31 = bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22);\n      pvVar6 = DAT_00040bc0;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"warning: could not load note section",5,0);\n        FUN_0002d3a0(0,param_1,iVar12,uVar13);\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n      }\n      else {\n        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);\n        sVar23 = extraout_ECX_01;\n        pvVar26 = param_1;\n        if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar52 = (void *)0x30;\n        sVar53 = sVar23;\n        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);\n        local_74 = (size_t *)xcalloc(uVar13);\n        local_bc = 0;\n        sVar54 = 0;\n        local_b8 = 0;\n        sVar55 = 0;\n        local_84 = (int *)0x0;\n        local_a8 = (size_t *)0x0;\n        local_a4 = 0;\n        pvVar26 = pvVar6;\n        psVar43 = local_74;\n        local_7c = sVar22;\n        local_78 = uVar39;\n        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }\n        if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        DAT_00040bb8 = 0;\n        DAT_00040bbc = 0;\n      }\n    }\n  }\nLAB_00018e0e:\n  param_2 = local_6c;\n  iVar31 = DAT_00040b4c;\n  for (puVar35 = DAT_00040b50; DAT_00040b4c = iVar31, puVar35 != (undefined4 *)0x0;\n      puVar35 = (undefined4 *)*puVar35) {\n    iVar12 = bfd_get_section_by_name(param_1,puVar35[1]);\n    if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      uVar14 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n      FUN_0002d3a0(0,param_1,0,uVar14,uVar13);\n    }\n    else {\n      if ((*(byte *)(iVar12 + 0x15) & 1) == 0) {\n        pcVar25 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar22 = *(size_t *)(iVar12 + 0x2c);\n        iVar31 = *(int *)(iVar12 + 0x30);\n        if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar25 = "can\'t dump section - it is empty";\n      }\n      uVar13 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n    }\nLAB_00018eb1:\n    iVar31 = DAT_00040b4c;\n  }\n  if (iVar31 != 0) {\n    iVar12 = bfd_get_section_by_name(local_6c,".gnu_debuglink");\n    if (iVar12 == 0) {\n      iVar31 = bfd_create_gnu_debuglink_section(local_6c,DAT_00040b4c);\n      iVar12 = DAT_00040b4c;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,local_6c,0,uVar13,iVar12);\n        return 0;\n      }\n      if (*(int *)(local_6c[1] + 4) == 2) {\n        iVar12 = local_6c[0x18];\n        iVar18 = 0;\n        if (iVar12 == 0) {\nLAB_0001aa69:\n          uVar39 = 0x1000;\n          iVar12 = 0;\n        }\n        else {\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(iVar31 + 0x24) = uVar39;\n        *(int *)(iVar31 + 0x28) = iVar12;\n        *(uint *)(iVar31 + 0x1c) = uVar39;\n        *(int *)(iVar31 + 0x20) = iVar12;\n        *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      }\n    }\n    else {\n      iVar12 = *local_6c;\n      uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n      FUN_0002c910(uVar13,iVar12);\n      DAT_00040b4c = 0;\n      iVar31 = 0;\n    }\n  }\n  sVar22 = local_6c[0x1a];\n  if ((sVar22 == 0) || (DAT_00040b78 == 0 && DAT_00040b70 == 0)) {\n    local_b8 = 0;\n    local_bc = 0;\n    local_b4 = (void *)0x0;\n    local_a8 = (size_t *)0x0;\n    uVar39 = local_bc;\n    uVar17 = local_b8;\n  }\n  else {\n    local_a8 = (size_t *)xmalloc(sVar22 * 4);\n    local_34 = (int *)local_a8;\n    bfd_map_over_sections(local_6c,FUN_00016800,&local_34);\n    qsort(local_a8,sVar22,4,FUN_00016820);\n    sVar23 = sVar22 * 8;\n    local_b4 = (void *)xmalloc(sVar23);\n    memset(local_b4,0,sVar23);\n    if ((DAT_00040b78 == 0) || (sVar22 == 1)) {\n      local_b8 = 0;\n      local_bc = 0;\n    }\n    else {\n      local_b8 = 0;\n      local_bc = 0;\n      local_6c = (size_t *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (size_t *)((int)local_6c + 1);\n        iVar12 = *local_64;\n        uVar39 = local_bc;\n        uVar17 = local_b8;\n        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }\n        local_b8 = uVar17;\n        local_bc = uVar39;\n        local_64 = local_64 + 1;\n      } while ((size_t *)(sVar22 - 1) != local_6c);\n    }\n    uVar39 = local_bc;\n    uVar17 = local_b8;\n    if (DAT_00040b70 != 0) {\n      iVar12 = ((int *)local_a8)[sVar22 - 1];\n      uVar27 = *(uint *)(iVar12 + 0x24);\n      uVar37 = uVar27 + *(uint *)(iVar12 + 0x2c);\n      uVar44 = *(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +\n               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c));\n      if (uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)) {\n        iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           );\n        if (iVar12 == 0) {\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }\n        else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }\n      }\n    }\n  }\n  local_b8 = uVar17;\n  local_bc = uVar39;\n  iVar12 = 0;\n  if (DAT_00040b48 != 0) {\n    iVar12 = FUN_0001c9c0(param_1,DAT_00040bdc,local_8c,0);\n  }\n  if (DAT_00040bb0 - 2U < 6) {\nLAB_0001962a:\n    if (DAT_00040bb0 != 7) goto LAB_0001962f;\n  }\n  else {\n    if (DAT_00040b30 == 0 && DAT_00040bac == 0) {\n      iVar18 = htab_elements(DAT_00040b2c);\n      if ((((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&\n         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))))\n      goto LAB_00019e4d;\n      goto LAB_0001962a;\n    }\nLAB_0001962f:\n    bfd_set_error(0);\n    bfd_map_over_sections(param_1,FUN_000187a0,DAT_00040bdc);\n    iVar18 = bfd_get_error();\n    if (iVar18 != 0) {\n      DAT_00040bc8 = 1;\n      return 0;\n    }\n  }\n  piVar19 = (int *)xmalloc((DAT_00040b04 + local_8c) * 4 + 4);\n  local_84 = DAT_00040bdc;\n  uVar39 = *(uint *)((int)param_1 + 0x28);\n  DAT_00040bd8 = piVar19;\n  if (local_8c != 0) {\n    piVar1 = DAT_00040bdc + local_8c;\n    local_8c = 0;\n    puVar20 = PTR__bfd_std_section_0003ffc8 + 0xc0;\n    do {\n      iVar18 = DAT_00040b04;\n      piVar4 = (int *)*local_84;\n      uVar17 = piVar4[4];\n      piVar24 = (int *)piVar4[1];\n      puVar5 = (undefined *)piVar4[5];\n      if (((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) &&\n         (pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0)) {\n        local_6c = (size_t *)0x0;\n        piVar34 = DAT_00040b08;\n        while (iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0) {\n          local_6c = (size_t *)((int)local_6c + 1);\n          piVar34 = (int *)*piVar34;\n          if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar25);\n        piVar34[5] = (int)"";\n        piVar34 = piVar19 + local_8c;\n        local_8c = local_8c + 1;\n        iVar18 = FUN_00017920();\n        *piVar34 = iVar18;\n      }\nLAB_000197a8:\n      iVar18 = htab_elements(DAT_00040b10);\n      piVar34 = piVar24;\n      if ((iVar18 != 0) || (DAT_00040be0 != (undefined4 *)0x0)) {\n        local_30 = 0;\n        local_34 = piVar24;\n        iVar18 = htab_find(DAT_00040b10,&local_34);\n        if (((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)) {\n          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }\n        }\n        piVar4[1] = (int)piVar34;\n      }\n      pcVar25 = DAT_00040af8;\n      cVar2 = *(char *)(*(int *)((int)param_1 + 4) + 0x18);\n      if ((char)*piVar34 == cVar2) {\n        if (DAT_00040b3c == 0) {\n          if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }\nLAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }\n      }\n      else {\n        if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))\n        goto LAB_0001982b;\nLAB_00019ab1:\n        sVar22 = strlen(pcVar25);\n        sVar23 = strlen((char *)piVar34);\n        piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n        local_6c = (size_t *)((int)piVar24 + 1);\n        *(char *)piVar24 = *(char *)(param_2[1] + 0x18);\nLAB_00019858:\n        pcVar25 = DAT_00040af8;\n        if (DAT_00040af8 != (char *)0x0) {\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }\n        strcpy((char *)local_6c,(char *)piVar34);\n        piVar4[1] = (int)piVar24;\n        piVar34 = piVar24;\n      }\n      if (DAT_00040bb0 == 7) goto LAB_00019928;\n      if ((uVar17 & 0x20) == 0) {\n        if (((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)) {\n          if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;\n        }\n        else {\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;\n      }\n      else {\n        iVar18 = FUN_000179c0();\n        if (iVar18 != 0) {\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }\nLAB_0001994f:\n        iVar18 = FUN_00017a30();\n        if (iVar18 == 0) {\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }\n      }\n      local_84 = local_84 + 1;\n    } while (piVar1 != local_84);\n  }\n  local_6c = (size_t *)DAT_00040b08;\n  if ((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) {\n    iVar18 = 0;\n    do {\n      pcVar25 = (char *)local_6c[5];\n      if (pcVar25 == (char *)0x0) {\n        iVar21 = FUN_00017920();\n        piVar19[local_8c] = iVar21;\n        local_8c = local_8c + 1;\n      }\n      else if (*pcVar25 != '\0') {\n        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    \n        FUN_0002c8e0(uVar13,pcVar25);\n      }\n      iVar18 = iVar18 + 1;\n      local_6c = (size_t *)*local_6c;\n    } while (iVar18 < DAT_00040b04);\n  }\n  piVar19[local_8c] = 0;\n  if ((DAT_00040b48 != 0) && (iVar12 != 0)) {\n    iVar18 = ((undefined4 *)param_2[1])[1];\n    if ((iVar18 == 2) || (iVar18 == 5)) {\n      iVar12 = FUN_0002c240(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34);\n      if (iVar12 != 0) {\n        iVar12 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n        iVar18 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n        if ((((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)) {\n          pcVar25 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }\n        uVar13 = dcgettext(0,pcVar25,5,iVar12);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n      }\n    }\n    else {\n      uVar13 = *(undefined4 *)param_2[1];\n      uVar14 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n    }\n    DAT_00040bc8 = 1;\n    return 0;\n  }\nLAB_00019e4d:\n  bfd_set_symtab(param_2,DAT_00040bd8,local_8c);\n  bfd_map_over_sections(param_1,FUN_00018500,param_2);\n  bfd_map_over_sections(param_1,FUN_00018070,param_2);\n  for (puVar35 = DAT_00040b58; psVar43 = param_2, puVar42 = DAT_00040b54,\n      puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)*puVar35) {\n    iVar12 = bfd_set_section_contents(param_2,puVar35[5],puVar35[4],0,0,puVar35[3],0);\n    if (iVar12 == 0) {\nLAB_00019d5e:\n      FUN_0002d3a0(0,param_2,puVar35[5],0);\n      return 0;\n    }\n  }\n  while( true ) {\n    if (puVar42 == (undefined4 *)0x0) {\n      uVar39 = 0;\n      if (DAT_00040bc4 != 0) {\n        uVar39 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n        if (((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))) {\n          if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }\n        }\n        else {\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        psVar43 = param_2;\n      }\n      if ((DAT_00040b4c != 0) &&\n         (iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0)) {\n        uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,param_2,0,uVar13,iVar12);\n        return 0;\n      }\n      if (DAT_00040b78 != 0 || DAT_00040b70 != 0) {\n        uVar39 = 0x2000;\n        if (local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc) {\n          uVar39 = local_b8;\n        }\n        piVar19 = (int *)xmalloc(uVar39);\n        iVar12 = (uint)DAT_00040b74 * 0x1010101;\n        if (uVar39 < 4) {\n          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }\n        }\n        else {\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }\n        iVar12 = param_2[0x1a];\n        if (iVar12 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);\n        }\n      }\n      iVar12 = (**(code **)(param_2[1] + 0xa8))(param_1,param_2);\n      if (iVar12 == 0) {\n        uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n        return 0;\n      }\n      if ((DAT_00040b64 != 0) &&\n         (iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0)) {\n        uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)\n        ;\n        FUN_0002c910(uVar13,iVar12);\n        if (*(int *)(param_2[1] + 4) != 5) {\n          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          FUN_0002c910(uVar13);\n          return 1;\n        }\n        uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)\n        ;\n        FUN_0002c910(uVar13);\n        *(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64;\n      }\n      return 1;\n    }\n    psVar43 = *(size_t **)(puVar42[5] + 0x54);\n    iVar12 = bfd_set_section_contents(param_2,psVar43,puVar42[4],0,0,puVar42[3],0);\n    local_6c = param_2;\n    if (iVar12 == 0) break;\n    puVar42 = (undefined4 *)*puVar42;\n  }\nLAB_00019fa0:\n  FUN_0002d3a0(0,local_6c,psVar43,0);\n  return iVar12;\nLAB_0001b1a6:\n  if ((undefined1 *)((int)pvVar32 + sVar54) <= puVar45) goto LAB_0001b1aa;\n  *puVar45 = (char)uVar17;\n  if (uVar17 == 0) goto LAB_0001b1aa;\n  uVar17 = uVar17 >> 8;\n  puVar45 = puVar45 + 1;\n  goto LAB_0001b1a6;\nLAB_0001b1aa:\n  bVar46 = true;\n  psVar9[0xe] = 0;\n  goto LAB_0001afd1;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "byte bVar3;" (type_identifier "byte") (identifier "bVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "undefined *puVar5;" (type_identifier "undefined") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "void *pvVar6;" (primitive_type "void") (pointer_declarator "*pvVar6" (* "*") (identifier "pvVar6")) (; ";")) (declaration "size_t sVar7;" (primitive_type "size_t") (identifier "sVar7") (; ";")) (declaration "code *pcVar8;" (type_identifier "code") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "size_t *psVar9;" (primitive_type "size_t") (pointer_declarator "*psVar9" (* "*") (identifier "psVar9")) (; ";")) (declaration "size_t *psVar10;" (primitive_type "size_t") (pointer_declarator "*psVar10" (* "*") (identifier "psVar10")) (; ";")) (declaration "size_t *psVar11;" (primitive_type "size_t") (pointer_declarator "*psVar11" (* "*") (identifier "psVar11")) (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "undefined4 uVar13;" (type_identifier "undefined4") (identifier "uVar13") (; ";")) (declaration "undefined4 uVar14;" (type_identifier "undefined4") (identifier "uVar14") (; ";")) (declaration "FILE *__s;" (type_identifier "FILE") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "undefined4 uVar15;" (type_identifier "undefined4") (identifier "uVar15") (; ";")) (declaration "undefined4 uVar16;" (type_identifier "undefined4") (identifier "uVar16") (; ";")) (declaration "uint uVar17;" (type_identifier "uint") (identifier "uVar17") (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "int *piVar19;" (primitive_type "int") (pointer_declarator "*piVar19" (* "*") (identifier "piVar19")) (; ";")) (declaration "undefined *puVar20;" (type_identifier "undefined") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "int iVar21;" (primitive_type "int") (identifier "iVar21") (; ";")) (declaration "size_t sVar22;" (primitive_type "size_t") (identifier "sVar22") (; ";")) (declaration "size_t sVar23;" (primitive_type "size_t") (identifier "sVar23") (; ";")) (declaration "int *piVar24;" (primitive_type "int") (pointer_declarator "*piVar24" (* "*") (identifier "piVar24")) (; ";")) (declaration "char *pcVar25;" (primitive_type "char") (pointer_declarator "*pcVar25" (* "*") (identifier "pcVar25")) (; ";")) (declaration "void *pvVar26;" (primitive_type "void") (pointer_declarator "*pvVar26" (* "*") (identifier "pvVar26")) (; ";")) (declaration "uint uVar27;" (type_identifier "uint") (identifier "uVar27") (; ";")) (declaration "size_t sVar28;" (primitive_type "size_t") (identifier "sVar28") (; ";")) (declaration "size_t sVar29;" (primitive_type "size_t") (identifier "sVar29") (; ";")) (declaration "undefined4 extraout_ECX;" (type_identifier "undefined4") (identifier "extraout_ECX") (; ";")) (declaration "undefined4 extraout_ECX_00;" (type_identifier "undefined4") (identifier "extraout_ECX_00") (; ";")) (declaration "size_t extraout_ECX_01;" (primitive_type "size_t") (identifier "extraout_ECX_01") (; ";")) (declaration "size_t extraout_ECX_02;" (primitive_type "size_t") (identifier "extraout_ECX_02") (; ";")) (declaration "size_t sVar30;" (primitive_type "size_t") (identifier "sVar30") (; ";")) (declaration "int iVar31;" (primitive_type "int") (identifier "iVar31") (; ";")) (declaration "void *pvVar32;" (primitive_type "void") (pointer_declarator "*pvVar32" (* "*") (identifier "pvVar32")) (; ";")) (declaration "uint uVar33;" (type_identifier "uint") (identifier "uVar33") (; ";")) (declaration "int *piVar34;" (primitive_type "int") (pointer_declarator "*piVar34" (* "*") (identifier "piVar34")) (; ";")) (declaration "undefined4 *puVar35;" (type_identifier "undefined4") (pointer_declarator "*puVar35" (* "*") (identifier "puVar35")) (; ";")) (declaration "byte *pbVar36;" (type_identifier "byte") (pointer_declarator "*pbVar36" (* "*") (identifier "pbVar36")) (; ";")) (declaration "uint uVar37;" (type_identifier "uint") (identifier "uVar37") (; ";")) (declaration "size_t *psVar38;" (primitive_type "size_t") (pointer_declarator "*psVar38" (* "*") (identifier "psVar38")) (; ";")) (declaration "uint uVar39;" (type_identifier "uint") (identifier "uVar39") (; ";")) (declaration "uint uVar40;" (type_identifier "uint") (identifier "uVar40") (; ";")) (declaration "byte *pbVar41;" (type_identifier "byte") (pointer_declarator "*pbVar41" (* "*") (identifier "pbVar41")) (; ";")) (declaration "undefined4 *puVar42;" (type_identifier "undefined4") (pointer_declarator "*puVar42" (* "*") (identifier "puVar42")) (; ";")) (declaration "size_t *psVar43;" (primitive_type "size_t") (pointer_declarator "*psVar43" (* "*") (identifier "psVar43")) (; ";")) (declaration "uint uVar44;" (type_identifier "uint") (identifier "uVar44") (; ";")) (declaration "undefined1 *puVar45;" (type_identifier "undefined1") (pointer_declarator "*puVar45" (* "*") (identifier "puVar45")) (; ";")) (declaration "bool bVar46;" (primitive_type "bool") (identifier "bVar46") (; ";")) (declaration "bool bVar47;" (primitive_type "bool") (identifier "bVar47") (; ";")) (declaration "byte bVar48;" (type_identifier "byte") (identifier "bVar48") (; ";")) (declaration "undefined8 uVar49;" (type_identifier "undefined8") (identifier "uVar49") (; ";")) (declaration "longlong lVar50;" (type_identifier "longlong") (identifier "lVar50") (; ";")) (declaration "longlong lVar51;" (type_identifier "longlong") (identifier "lVar51") (; ";")) (declaration "void *pvVar52;" (primitive_type "void") (pointer_declarator "*pvVar52" (* "*") (identifier "pvVar52")) (; ";")) (declaration "size_t sVar53;" (primitive_type "size_t") (identifier "sVar53") (; ";")) (declaration "void *__dest;" (primitive_type "void") (pointer_declarator "*__dest" (* "*") (identifier "__dest")) (; ";")) (declaration "size_t sVar54;" (primitive_type "size_t") (identifier "sVar54") (; ";")) (declaration "size_t sVar55;" (primitive_type "size_t") (identifier "sVar55") (; ";")) (declaration "uint local_bc;" (type_identifier "uint") (identifier "local_bc") (; ";")) (declaration "uint local_b8;" (type_identifier "uint") (identifier "local_b8") (; ";")) (declaration "void *local_b4;" (primitive_type "void") (pointer_declarator "*local_b4" (* "*") (identifier "local_b4")) (; ";")) (declaration "size_t *local_a8;" (primitive_type "size_t") (pointer_declarator "*local_a8" (* "*") (identifier "local_a8")) (; ";")) (declaration "int local_a4;" (primitive_type "int") (identifier "local_a4") (; ";")) (declaration "int local_8c;" (primitive_type "int") (identifier "local_8c") (; ";")) (declaration "int *local_84;" (primitive_type "int") (pointer_declarator "*local_84" (* "*") (identifier "local_84")) (; ";")) (declaration "uint local_7c;" (type_identifier "uint") (identifier "local_7c") (; ";")) (declaration "uint local_78;" (type_identifier "uint") (identifier "local_78") (; ";")) (declaration "size_t *local_74;" (primitive_type "size_t") (pointer_declarator "*local_74" (* "*") (identifier "local_74")) (; ";")) (declaration "size_t *local_6c;" (primitive_type "size_t") (pointer_declarator "*local_6c" (* "*") (identifier "local_6c")) (; ";")) (declaration "int local_68;" (primitive_type "int") (identifier "local_68") (; ";")) (declaration "int *local_64;" (primitive_type "int") (pointer_declarator "*local_64" (* "*") (identifier "local_64")) (; ";")) (declaration "undefined4 local_54;" (type_identifier "undefined4") (identifier "local_54") (; ";")) (declaration "undefined4 local_50;" (type_identifier "undefined4") (identifier "local_50") (; ";")) (declaration "undefined4 local_4c;" (type_identifier "undefined4") (identifier "local_4c") (; ";")) (declaration "undefined4 local_48;" (type_identifier "undefined4") (identifier "local_48") (; ";")) (declaration "int *local_34;" (primitive_type "int") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar48 = 0;" (assignment_expression "bVar48 = 0" (identifier "bVar48") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x1892b;" (assignment_expression "uStack_14 = 0x1892b" (identifier "uStack_14") (= "=") (number_literal "0x1892b")) (; ";")) (expression_statement "iVar12 = *(int *)(*(int *)((int)param_1 + 4) + 8);" (assignment_expression "iVar12 = *(int *)(*(int *)((int)param_1 + 4) + 8)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(*(int *)((int)param_1 + 4) + 8)" (* "*") (cast_expression "(int *)(*(int *)((int)param_1 + 4) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)((int)param_1 + 4) + 8)" (( "(") (binary_expression "*(int *)((int)param_1 + 4) + 8" (pointer_expression "*(int *)((int)param_1 + 4)" (* "*") (cast_expression "(int *)((int)param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 4)" (( "(") (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if ((iVar12 != *(int *)(((int *)param_2)[1] + 8) && iVar12 != 2) &&\n     (*(int *)(((int *)param_2)[1] + 8) != 2)) {\n    uVar13 = dcgettext(0,"Unable to change endianness of input file(s)",5);\n    FUN_0002c910(uVar13);\n    return 0;\n  }" (if "if") (parenthesized_expression "((iVar12 != *(int *)(((int *)param_2)[1] + 8) && iVar12 != 2) &&\n     (*(int *)(((int *)param_2)[1] + 8) != 2))" (( "(") (binary_expression "(iVar12 != *(int *)(((int *)param_2)[1] + 8) && iVar12 != 2) &&\n     (*(int *)(((int *)param_2)[1] + 8) != 2)" (parenthesized_expression "(iVar12 != *(int *)(((int *)param_2)[1] + 8) && iVar12 != 2)" (( "(") (binary_expression "iVar12 != *(int *)(((int *)param_2)[1] + 8) && iVar12 != 2" (binary_expression "iVar12 != *(int *)(((int *)param_2)[1] + 8)" (identifier "iVar12") (!= "!=") (pointer_expression "*(int *)(((int *)param_2)[1] + 8)" (* "*") (cast_expression "(int *)(((int *)param_2)[1] + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((int *)param_2)[1] + 8)" (( "(") (binary_expression "((int *)param_2)[1] + 8" (subscript_expression "((int *)param_2)[1]" (parenthesized_expression "((int *)param_2)" (( "(") (cast_expression "(int *)param_2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2")) () ")")) ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "8")) () ")"))))) (&& "&&") (binary_expression "iVar12 != 2" (identifier "iVar12") (!= "!=") (number_literal "2"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(((int *)param_2)[1] + 8) != 2)" (( "(") (binary_expression "*(int *)(((int *)param_2)[1] + 8) != 2" (pointer_expression "*(int *)(((int *)param_2)[1] + 8)" (* "*") (cast_expression "(int *)(((int *)param_2)[1] + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((int *)param_2)[1] + 8)" (( "(") (binary_expression "((int *)param_2)[1] + 8" (subscript_expression "((int *)param_2)[1]" (parenthesized_expression "((int *)param_2)" (( "(") (cast_expression "(int *)param_2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2")) () ")")) ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n    uVar13 = dcgettext(0,"Unable to change endianness of input file(s)",5);\n    FUN_0002c910(uVar13);\n    return 0;\n  }" ({ "{") (expression_statement "uVar13 = dcgettext(0,"Unable to change endianness of input file(s)",5);" (assignment_expression "uVar13 = dcgettext(0,"Unable to change endianness of input file(s)",5)" (identifier "uVar13") (= "=") (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_0002c910(uVar13);" (call_expression "FUN_0002c910(uVar13)" (identifier "FUN_0002c910") (argument_list "(uVar13)" (( "(") (identifier "uVar13") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar12 = bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7);" (assignment_expression "iVar12 = bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7)" (identifier "iVar12") (= "=") (call_expression "bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7)" (identifier "bfd_set_format") (argument_list "(param_2,*(byte *)((int)param_1 + 0x28) & 7)" (( "(") (identifier "param_2") (, ",") (binary_expression "*(byte *)((int)param_1 + 0x28) & 7" (pointer_expression "*(byte *)((int)param_1 + 0x28)" (* "*") (cast_expression "(byte *)((int)param_1 + 0x28)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x28)" (( "(") (binary_expression "(int)param_1 + 0x28" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x28")) () ")")))) (& "&") (number_literal "7")) () ")")))) (; ";")) (if_statement "if (iVar12 == 0) {\n    FUN_0002d3a0(0,param_2,0,0);\n    return 0;\n  }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0002d3a0(0,param_2,0,0);\n    return 0;\n  }" ({ "{") (expression_statement "FUN_0002d3a0(0,param_2,0,0);" (call_expression "FUN_0002d3a0(0,param_2,0,0)" (identifier "FUN_0002d3a0") (argument_list "(0,param_2,0,0)" (( "(") (number_literal "0") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (*(int *)((int)param_1 + 0x60) == 0) {\n    uVar13 = FUN_0002d2a0(param_1);\n    pcVar25 = "error: the input file \'%s\' has no sections";\n    goto LAB_00018f38;\n  }" (if "if") (parenthesized_expression "(*(int *)((int)param_1 + 0x60) == 0)" (( "(") (binary_expression "*(int *)((int)param_1 + 0x60) == 0" (pointer_expression "*(int *)((int)param_1 + 0x60)" (* "*") (cast_expression "(int *)((int)param_1 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x60)" (( "(") (binary_expression "(int)param_1 + 0x60" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x60")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar13 = FUN_0002d2a0(param_1);\n    pcVar25 = "error: the input file \'%s\' has no sections";\n    goto LAB_00018f38;\n  }" ({ "{") (expression_statement "uVar13 = FUN_0002d2a0(param_1);" (assignment_expression "uVar13 = FUN_0002d2a0(param_1)" (identifier "uVar13") (= "=") (call_expression "FUN_0002d2a0(param_1)" (identifier "FUN_0002d2a0") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "pcVar25 = "error: the input file \'%s\' has no sections";" (assignment_expression "pcVar25 = "error: the input file \'%s\' has no sections"" (identifier "pcVar25") (= "=") (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") (" """))) (; ";")) (goto_statement "goto LAB_00018f38;" (goto "goto") (statement_identifier "LAB_00018f38") (; ";")) (} "}"))) (if_statement "if ((*(undefined4 **)((int)param_1 + 4))[1] != 5) {\n    if ((DAT_00040b44 != 1) && ((DAT_00040b44 & 1) != 0)) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\nLAB_00018f38:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }\n    if (DAT_00040b40 != 0) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      goto LAB_00018f38;\n    }\n  }" (if "if") (parenthesized_expression "((*(undefined4 **)((int)param_1 + 4))[1] != 5)" (( "(") (binary_expression "(*(undefined4 **)((int)param_1 + 4))[1] != 5" (subscript_expression "(*(undefined4 **)((int)param_1 + 4))[1]" (parenthesized_expression "(*(undefined4 **)((int)param_1 + 4))" (( "(") (pointer_expression "*(undefined4 **)((int)param_1 + 4)" (* "*") (cast_expression "(undefined4 **)((int)param_1 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)param_1 + 4)" (( "(") (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "4")) () ")")))) () ")")) ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "5")) () ")")) (compound_statement "{\n    if ((DAT_00040b44 != 1) && ((DAT_00040b44 & 1) != 0)) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\nLAB_00018f38:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }\n    if (DAT_00040b40 != 0) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      goto LAB_00018f38;\n    }\n  }" ({ "{") (if_statement "if ((DAT_00040b44 != 1) && ((DAT_00040b44 & 1) != 0)) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\nLAB_00018f38:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }" (if "if") (parenthesized_expression "((DAT_00040b44 != 1) && ((DAT_00040b44 & 1) != 0))" (( "(") (binary_expression "(DAT_00040b44 != 1) && ((DAT_00040b44 & 1) != 0)" (parenthesized_expression "(DAT_00040b44 != 1)" (( "(") (binary_expression "DAT_00040b44 != 1" (identifier "DAT_00040b44") (!= "!=") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "((DAT_00040b44 & 1) != 0)" (( "(") (binary_expression "(DAT_00040b44 & 1) != 0" (parenthesized_expression "(DAT_00040b44 & 1)" (( "(") (binary_expression "DAT_00040b44 & 1" (identifier "DAT_00040b44") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";\nLAB_00018f38:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }" ({ "{") (expression_statement "uVar13 = FUN_0002d2a0(param_1);" (assignment_expression "uVar13 = FUN_0002d2a0(param_1)" (identifier "uVar13") (= "=") (call_expression "FUN_0002d2a0(param_1)" (identifier "FUN_0002d2a0") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "pcVar25 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";" (assignment_expression "pcVar25 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'"" (identifier "pcVar25") (= "=") (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_00018f38:\n      uVar14 = dcgettext(0,pcVar25,5);" (statement_identifier "LAB_00018f38") (: ":") (expression_statement "uVar14 = dcgettext(0,pcVar25,5);" (assignment_expression "uVar14 = dcgettext(0,pcVar25,5)" (identifier "uVar14") (= "=") (call_expression "dcgettext(0,pcVar25,5)" (identifier "dcgettext") (argument_list "(0,pcVar25,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar25") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_0002c910(uVar14,uVar13);" (call_expression "FUN_0002c910(uVar14,uVar13)" (identifier "FUN_0002c910") (argument_list "(uVar14,uVar13)" (( "(") (identifier "uVar14") (, ",") (identifier "uVar13") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (DAT_00040b40 != 0) {\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      goto LAB_00018f38;\n    }" (if "if") (parenthesized_expression "(DAT_00040b40 != 0)" (( "(") (binary_expression "DAT_00040b40 != 0" (identifier "DAT_00040b40") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar13 = FUN_0002d2a0(param_1);\n      pcVar25 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";\n      goto LAB_00018f38;\n    }" ({ "{") (expression_statement "uVar13 = FUN_0002d2a0(param_1);" (assignment_expression "uVar13 = FUN_0002d2a0(param_1)" (identifier "uVar13") (= "=") (call_expression "FUN_0002d2a0(param_1)" (identifier "FUN_0002d2a0") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "pcVar25 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";" (assignment_expression "pcVar25 = "--elf-stt-common=[yes|no] is unsupported on `%s\'"" (identifier "pcVar25") (= "=") (string_literal ""--elf-stt-common=[yes|no] is unsupported on `%s\'"" (" """) (string_content "--elf-stt-common=[yes|no] is unsupported on `%s") (escape_sequence "\'") (" """))) (; ";")) (goto_statement "goto LAB_00018f38;" (goto "goto") (statement_identifier "LAB_00018f38") (; ";")) (} "}"))) (} "}"))) (if_statement "if (DAT_00040bd0 != 0) {\n    uVar13 = **(undefined4 **)((int)param_1 + 4);\n    uVar14 = *(undefined4 *)((int *)param_2)[1];\n    iVar12 = *param_2;\n    uVar15 = FUN_0002d2a0(param_1);\n    pcVar25 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n    printf(pcVar25,uVar15,uVar13,iVar12,uVar14);\n  }" (if "if") (parenthesized_expression "(DAT_00040bd0 != 0)" (( "(") (binary_expression "DAT_00040bd0 != 0" (identifier "DAT_00040bd0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar13 = **(undefined4 **)((int)param_1 + 4);\n    uVar14 = *(undefined4 *)((int *)param_2)[1];\n    iVar12 = *param_2;\n    uVar15 = FUN_0002d2a0(param_1);\n    pcVar25 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);\n    printf(pcVar25,uVar15,uVar13,iVar12,uVar14);\n  }" ({ "{") (expression_statement "uVar13 = **(undefined4 **)((int)param_1 + 4);" (assignment_expression "uVar13 = **(undefined4 **)((int)param_1 + 4)" (identifier "uVar13") (= "=") (pointer_expression "**(undefined4 **)((int)param_1 + 4)" (* "*") (pointer_expression "*(undefined4 **)((int)param_1 + 4)" (* "*") (cast_expression "(undefined4 **)((int)param_1 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)param_1 + 4)" (( "(") (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "4")) () ")")))))) (; ";")) (expression_statement "uVar14 = *(undefined4 *)((int *)param_2)[1];" (assignment_expression "uVar14 = *(undefined4 *)((int *)param_2)[1]" (identifier "uVar14") (= "=") (pointer_expression "*(undefined4 *)((int *)param_2)[1]" (* "*") (cast_expression "(undefined4 *)((int *)param_2)[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "((int *)param_2)[1]" (parenthesized_expression "((int *)param_2)" (( "(") (cast_expression "(int *)param_2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2")) () ")")) ([ "[") (number_literal "1") (] "]"))))) (; ";")) (expression_statement "iVar12 = *param_2;" (assignment_expression "iVar12 = *param_2" (identifier "iVar12") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "uVar15 = FUN_0002d2a0(param_1);" (assignment_expression "uVar15 = FUN_0002d2a0(param_1)" (identifier "uVar15") (= "=") (call_expression "FUN_0002d2a0(param_1)" (identifier "FUN_0002d2a0") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "pcVar25 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);" (assignment_expression "pcVar25 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5)" (identifier "pcVar25") (= "=") (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(pcVar25,uVar15,uVar13,iVar12,uVar14);" (call_expression "printf(pcVar25,uVar15,uVar13,iVar12,uVar14)" (identifier "printf") (argument_list "(pcVar25,uVar15,uVar13,iVar12,uVar14)" (( "(") (identifier "pcVar25") (, ",") (identifier "uVar15") (, ",") (identifier "uVar13") (, ",") (identifier "iVar12") (, ",") (identifier "uVar14") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar31 = 0;" (assignment_expression "iVar31 = 0" (identifier "iVar31") (= "=") (number_literal "0")) (; ";")) (if_statement "if (DAT_00040aec == 0) {\n    uVar39 = DAT_00040b88;\n    iVar31 = DAT_00040b8c;\n    if (DAT_00040b90 == 0) {\n      uVar39 = *(uint *)((int)param_1 + 0x70);\n      iVar31 = *(int *)((int)param_1 + 0x74);\n    }\n    iVar12 = uVar39 + DAT_00040b98;\n    iVar31 = iVar31 + DAT_00040b9c + (uint)CARRY4(uVar39,DAT_00040b98);\n  }" (if "if") (parenthesized_expression "(DAT_00040aec == 0)" (( "(") (binary_expression "DAT_00040aec == 0" (identifier "DAT_00040aec") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar39 = DAT_00040b88;\n    iVar31 = DAT_00040b8c;\n    if (DAT_00040b90 == 0) {\n      uVar39 = *(uint *)((int)param_1 + 0x70);\n      iVar31 = *(int *)((int)param_1 + 0x74);\n    }\n    iVar12 = uVar39 + DAT_00040b98;\n    iVar31 = iVar31 + DAT_00040b9c + (uint)CARRY4(uVar39,DAT_00040b98);\n  }" ({ "{") (expression_statement "uVar39 = DAT_00040b88;" (assignment_expression "uVar39 = DAT_00040b88" (identifier "uVar39") (= "=") (identifier "DAT_00040b88")) (; ";")) (expression_statement "iVar31 = DAT_00040b8c;" (assignment_expression "iVar31 = DAT_00040b8c" (identifier "iVar31") (= "=") (identifier "DAT_00040b8c")) (; ";")) (if_statement "if (DAT_00040b90 == 0) {\n      uVar39 = *(uint *)((int)param_1 + 0x70);\n      iVar31 = *(int *)((int)param_1 + 0x74);\n    }" (if "if") (parenthesized_expression "(DAT_00040b90 == 0)" (( "(") (binary_expression "DAT_00040b90 == 0" (identifier "DAT_00040b90") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar39 = *(uint *)((int)param_1 + 0x70);\n      iVar31 = *(int *)((int)param_1 + 0x74);\n    }" ({ "{") (expression_statement "uVar39 = *(uint *)((int)param_1 + 0x70);" (assignment_expression "uVar39 = *(uint *)((int)param_1 + 0x70)" (identifier "uVar39") (= "=") (pointer_expression "*(uint *)((int)param_1 + 0x70)" (* "*") (cast_expression "(uint *)((int)param_1 + 0x70)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x70)" (( "(") (binary_expression "(int)param_1 + 0x70" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x70")) () ")"))))) (; ";")) (expression_statement "iVar31 = *(int *)((int)param_1 + 0x74);" (assignment_expression "iVar31 = *(int *)((int)param_1 + 0x74)" (identifier "iVar31") (= "=") (pointer_expression "*(int *)((int)param_1 + 0x74)" (* "*") (cast_expression "(int *)((int)param_1 + 0x74)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x74)" (( "(") (binary_expression "(int)param_1 + 0x74" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x74")) () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar12 = uVar39 + DAT_00040b98;" (assignment_expression "iVar12 = uVar39 + DAT_00040b98" (identifier "iVar12") (= "=") (binary_expression "uVar39 + DAT_00040b98" (identifier "uVar39") (+ "+") (identifier "DAT_00040b98"))) (; ";")) (expression_statement "iVar31 = iVar31 + DAT_00040b9c + (uint)CARRY4(uVar39,DAT_00040b98);" (assignment_expression "iVar31 = iVar31 + DAT_00040b9c + (uint)CARRY4(uVar39,DAT_00040b98)" (identifier "iVar31") (= "=") (binary_expression "iVar31 + DAT_00040b9c + (uint)CARRY4(uVar39,DAT_00040b98)" (binary_expression "iVar31 + DAT_00040b9c" (identifier "iVar31") (+ "+") (identifier "DAT_00040b9c")) (+ "+") (cast_expression "(uint)CARRY4(uVar39,DAT_00040b98)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar39,DAT_00040b98)" (identifier "CARRY4") (argument_list "(uVar39,DAT_00040b98)" (( "(") (identifier "uVar39") (, ",") (identifier "DAT_00040b98") () ")")))))) (; ";")) (} "}"))) (if_statement "if ((*(byte *)((int *)param_2 + 10) & 7) != 3) {\n    uVar39 = ~DAT_00040b5c & *(uint *)(((int *)param_2)[1] + 0x10) &\n             (*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff | DAT_00040b60);\n    if (DAT_00040bb0 == 7) {\n      uVar39 = uVar39 & 0xfffffffe;\n    }\n    iVar12 = bfd_set_start_address(param_2,iVar12,iVar31);\n    if ((iVar12 == 0) || (iVar12 = bfd_set_file_flags(param_2,uVar39), iVar12 == 0))\n    goto LAB_00018b70;\n  }" (if "if") (parenthesized_expression "((*(byte *)((int *)param_2 + 10) & 7) != 3)" (( "(") (binary_expression "(*(byte *)((int *)param_2 + 10) & 7) != 3" (parenthesized_expression "(*(byte *)((int *)param_2 + 10) & 7)" (( "(") (binary_expression "*(byte *)((int *)param_2 + 10) & 7" (pointer_expression "*(byte *)((int *)param_2 + 10)" (* "*") (cast_expression "(byte *)((int *)param_2 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int *)param_2 + 10)" (( "(") (binary_expression "(int *)param_2 + 10" (cast_expression "(int *)param_2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2")) (+ "+") (number_literal "10")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n    uVar39 = ~DAT_00040b5c & *(uint *)(((int *)param_2)[1] + 0x10) &\n             (*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff | DAT_00040b60);\n    if (DAT_00040bb0 == 7) {\n      uVar39 = uVar39 & 0xfffffffe;\n    }\n    iVar12 = bfd_set_start_address(param_2,iVar12,iVar31);\n    if ((iVar12 == 0) || (iVar12 = bfd_set_file_flags(param_2,uVar39), iVar12 == 0))\n    goto LAB_00018b70;\n  }" ({ "{") (expression_statement "uVar39 = ~DAT_00040b5c & *(uint *)(((int *)param_2)[1] + 0x10) &\n             (*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff | DAT_00040b60);" (assignment_expression "uVar39 = ~DAT_00040b5c & *(uint *)(((int *)param_2)[1] + 0x10) &\n             (*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff | DAT_00040b60)" (identifier "uVar39") (= "=") (binary_expression "~DAT_00040b5c & *(uint *)(((int *)param_2)[1] + 0x10) &\n             (*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff | DAT_00040b60)" (binary_expression "~DAT_00040b5c & *(uint *)(((int *)param_2)[1] + 0x10)" (unary_expression "~DAT_00040b5c" (~ "~") (identifier "DAT_00040b5c")) (& "&") (pointer_expression "*(uint *)(((int *)param_2)[1] + 0x10)" (* "*") (cast_expression "(uint *)(((int *)param_2)[1] + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((int *)param_2)[1] + 0x10)" (( "(") (binary_expression "((int *)param_2)[1] + 0x10" (subscript_expression "((int *)param_2)[1]" (parenthesized_expression "((int *)param_2)" (( "(") (cast_expression "(int *)param_2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2")) () ")")) ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x10")) () ")"))))) (& "&") (parenthesized_expression "(*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff | DAT_00040b60)" (( "(") (binary_expression "*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff | DAT_00040b60" (binary_expression "*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff" (binary_expression "*(uint *)((int)param_1 + 0x28) >> 5" (pointer_expression "*(uint *)((int)param_1 + 0x28)" (* "*") (cast_expression "(uint *)((int)param_1 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x28)" (( "(") (binary_expression "(int)param_1 + 0x28" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x28")) () ")")))) (>> ">>") (number_literal "5")) (& "&") (number_literal "0xfffff")) (| "|") (identifier "DAT_00040b60")) () ")")))) (; ";")) (if_statement "if (DAT_00040bb0 == 7) {\n      uVar39 = uVar39 & 0xfffffffe;\n    }" (if "if") (parenthesized_expression "(DAT_00040bb0 == 7)" (( "(") (binary_expression "DAT_00040bb0 == 7" (identifier "DAT_00040bb0") (== "==") (number_literal "7")) () ")")) (compound_statement "{\n      uVar39 = uVar39 & 0xfffffffe;\n    }" ({ "{") (expression_statement "uVar39 = uVar39 & 0xfffffffe;" (assignment_expression "uVar39 = uVar39 & 0xfffffffe" (identifier "uVar39") (= "=") (binary_expression "uVar39 & 0xfffffffe" (identifier "uVar39") (& "&") (number_literal "0xfffffffe"))) (; ";")) (} "}"))) (expression_statement "iVar12 = bfd_set_start_address(param_2,iVar12,iVar31);" (assignment_expression "iVar12 = bfd_set_start_address(param_2,iVar12,iVar31)" (identifier "iVar12") (= "=") (call_expression "bfd_set_start_address(param_2,iVar12,iVar31)" (identifier "bfd_set_start_address") (argument_list "(param_2,iVar12,iVar31)" (( "(") (identifier "param_2") (, ",") (identifier "iVar12") (, ",") (identifier "iVar31") () ")")))) (; ";")) (if_statement "if ((iVar12 == 0) || (iVar12 = bfd_set_file_flags(param_2,uVar39), iVar12 == 0))\n    goto LAB_00018b70;" (if "if") (parenthesized_expression "((iVar12 == 0) || (iVar12 = bfd_set_file_flags(param_2,uVar39), iVar12 == 0))" (( "(") (binary_expression "(iVar12 == 0) || (iVar12 = bfd_set_file_flags(param_2,uVar39), iVar12 == 0)" (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar12 = bfd_set_file_flags(param_2,uVar39), iVar12 == 0)" (( "(") (comma_expression "iVar12 = bfd_set_file_flags(param_2,uVar39), iVar12 == 0" (assignment_expression "iVar12 = bfd_set_file_flags(param_2,uVar39)" (identifier "iVar12") (= "=") (call_expression "bfd_set_file_flags(param_2,uVar39)" (identifier "bfd_set_file_flags") (argument_list "(param_2,uVar39)" (( "(") (identifier "param_2") (, ",") (identifier "uVar39") () ")")))) (, ",") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_00018b70;" (goto "goto") (statement_identifier "LAB_00018b70") (; ";"))) (} "}"))) (expression_statement "uVar13 = bfd_get_arch(param_1);" (assignment_expression "uVar13 = bfd_get_arch(param_1)" (identifier "uVar13") (= "=") (call_expression "bfd_get_arch(param_1)" (identifier "bfd_get_arch") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "uVar14 = bfd_get_mach(param_1);" (assignment_expression "uVar14 = bfd_get_mach(param_1)" (identifier "uVar14") (= "=") (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    iVar12 = bfd_get_arch_info(param_1);\n    if ((iVar12 == 0) || (iVar12 = bfd_get_arch_info(param_1), *(int *)(iVar12 + 0xc) == 0)) {\n      uVar13 = *(undefined4 *)(param_3 + 0xc);\n      uVar14 = *(undefined4 *)(param_3 + 0x10);\n    }\n    else {\n      uVar15 = FUN_0002d2a0(param_1);\n      uVar16 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n      FUN_0002c910(uVar16,uVar15);\n    }\n  }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar12 = bfd_get_arch_info(param_1);\n    if ((iVar12 == 0) || (iVar12 = bfd_get_arch_info(param_1), *(int *)(iVar12 + 0xc) == 0)) {\n      uVar13 = *(undefined4 *)(param_3 + 0xc);\n      uVar14 = *(undefined4 *)(param_3 + 0x10);\n    }\n    else {\n      uVar15 = FUN_0002d2a0(param_1);\n      uVar16 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n      FUN_0002c910(uVar16,uVar15);\n    }\n  }" ({ "{") (expression_statement "iVar12 = bfd_get_arch_info(param_1);" (assignment_expression "iVar12 = bfd_get_arch_info(param_1)" (identifier "iVar12") (= "=") (call_expression "bfd_get_arch_info(param_1)" (identifier "bfd_get_arch_info") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if ((iVar12 == 0) || (iVar12 = bfd_get_arch_info(param_1), *(int *)(iVar12 + 0xc) == 0)) {\n      uVar13 = *(undefined4 *)(param_3 + 0xc);\n      uVar14 = *(undefined4 *)(param_3 + 0x10);\n    }\n    else {\n      uVar15 = FUN_0002d2a0(param_1);\n      uVar16 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n      FUN_0002c910(uVar16,uVar15);\n    }" (if "if") (parenthesized_expression "((iVar12 == 0) || (iVar12 = bfd_get_arch_info(param_1), *(int *)(iVar12 + 0xc) == 0))" (( "(") (binary_expression "(iVar12 == 0) || (iVar12 = bfd_get_arch_info(param_1), *(int *)(iVar12 + 0xc) == 0)" (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar12 = bfd_get_arch_info(param_1), *(int *)(iVar12 + 0xc) == 0)" (( "(") (comma_expression "iVar12 = bfd_get_arch_info(param_1), *(int *)(iVar12 + 0xc) == 0" (assignment_expression "iVar12 = bfd_get_arch_info(param_1)" (identifier "iVar12") (= "=") (call_expression "bfd_get_arch_info(param_1)" (identifier "bfd_get_arch_info") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (, ",") (binary_expression "*(int *)(iVar12 + 0xc) == 0" (pointer_expression "*(int *)(iVar12 + 0xc)" (* "*") (cast_expression "(int *)(iVar12 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xc)" (( "(") (binary_expression "iVar12 + 0xc" (identifier "iVar12") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      uVar13 = *(undefined4 *)(param_3 + 0xc);\n      uVar14 = *(undefined4 *)(param_3 + 0x10);\n    }" ({ "{") (expression_statement "uVar13 = *(undefined4 *)(param_3 + 0xc);" (assignment_expression "uVar13 = *(undefined4 *)(param_3 + 0xc)" (identifier "uVar13") (= "=") (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 "uVar14 = *(undefined4 *)(param_3 + 0x10);" (assignment_expression "uVar14 = *(undefined4 *)(param_3 + 0x10)" (identifier "uVar14") (= "=") (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      uVar15 = FUN_0002d2a0(param_1);\n      uVar16 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n      FUN_0002c910(uVar16,uVar15);\n    }" (else "else") (compound_statement "{\n      uVar15 = FUN_0002d2a0(param_1);\n      uVar16 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);\n      FUN_0002c910(uVar16,uVar15);\n    }" ({ "{") (expression_statement "uVar15 = FUN_0002d2a0(param_1);" (assignment_expression "uVar15 = FUN_0002d2a0(param_1)" (identifier "uVar15") (= "=") (call_expression "FUN_0002d2a0(param_1)" (identifier "FUN_0002d2a0") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "uVar16 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);" (assignment_expression "uVar16 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5)" (identifier "uVar16") (= "=") (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_0002c910(uVar16,uVar15);" (call_expression "FUN_0002c910(uVar16,uVar15)" (identifier "FUN_0002c910") (argument_list "(uVar16,uVar15)" (( "(") (identifier "uVar16") (, ",") (identifier "uVar15") () ")"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "iVar12 = (**(code **)(((int *)param_2)[1] + 0x154))(param_2,uVar13,uVar14);" (assignment_expression "iVar12 = (**(code **)(((int *)param_2)[1] + 0x154))(param_2,uVar13,uVar14)" (identifier "iVar12") (= "=") (call_expression "(**(code **)(((int *)param_2)[1] + 0x154))(param_2,uVar13,uVar14)" (parenthesized_expression "(**(code **)(((int *)param_2)[1] + 0x154))" (( "(") (pointer_expression "**(code **)(((int *)param_2)[1] + 0x154)" (* "*") (pointer_expression "*(code **)(((int *)param_2)[1] + 0x154)" (* "*") (cast_expression "(code **)(((int *)param_2)[1] + 0x154)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(((int *)param_2)[1] + 0x154)" (( "(") (binary_expression "((int *)param_2)[1] + 0x154" (subscript_expression "((int *)param_2)[1]" (parenthesized_expression "((int *)param_2)" (( "(") (cast_expression "(int *)param_2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2")) () ")")) ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x154")) () ")"))))) () ")")) (argument_list "(param_2,uVar13,uVar14)" (( "(") (identifier "param_2") (, ",") (identifier "uVar13") (, ",") (identifier "uVar14") () ")")))) (; ";")) (if_statement "if (iVar12 == 0) {\n    if ((*(byte *)((int)param_1 + 0x2b) & 4) != 0) {\nLAB_00018b20:\n      iVar12 = bfd_get_arch(param_1);\n      if (iVar12 == 0) {\n        uVar13 = FUN_0002d2a0(param_1);\n        pcVar25 = "Unable to recognise the format of the input file `%s\'";\n      }\n      else {\n        uVar13 = bfd_get_mach(param_1);\n        uVar14 = bfd_get_arch(param_1);\n        uVar13 = bfd_printable_arch_mach(uVar14,uVar13);\n        pcVar25 = "Output file cannot represent architecture `%s\'";\n      }\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }\n    iVar12 = bfd_get_arch(param_1);\n    iVar31 = bfd_get_arch(param_2);\n    if (iVar12 != iVar31) goto LAB_00018b20;\n  }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if ((*(byte *)((int)param_1 + 0x2b) & 4) != 0) {\nLAB_00018b20:\n      iVar12 = bfd_get_arch(param_1);\n      if (iVar12 == 0) {\n        uVar13 = FUN_0002d2a0(param_1);\n        pcVar25 = "Unable to recognise the format of the input file `%s\'";\n      }\n      else {\n        uVar13 = bfd_get_mach(param_1);\n        uVar14 = bfd_get_arch(param_1);\n        uVar13 = bfd_printable_arch_mach(uVar14,uVar13);\n        pcVar25 = "Output file cannot represent architecture `%s\'";\n      }\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }\n    iVar12 = bfd_get_arch(param_1);\n    iVar31 = bfd_get_arch(param_2);\n    if (iVar12 != iVar31) goto LAB_00018b20;\n  }" ({ "{") (if_statement "if ((*(byte *)((int)param_1 + 0x2b) & 4) != 0) {\nLAB_00018b20:\n      iVar12 = bfd_get_arch(param_1);\n      if (iVar12 == 0) {\n        uVar13 = FUN_0002d2a0(param_1);\n        pcVar25 = "Unable to recognise the format of the input file `%s\'";\n      }\n      else {\n        uVar13 = bfd_get_mach(param_1);\n        uVar14 = bfd_get_arch(param_1);\n        uVar13 = bfd_printable_arch_mach(uVar14,uVar13);\n        pcVar25 = "Output file cannot represent architecture `%s\'";\n      }\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }" (if "if") (parenthesized_expression "((*(byte *)((int)param_1 + 0x2b) & 4) != 0)" (( "(") (binary_expression "(*(byte *)((int)param_1 + 0x2b) & 4) != 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x2b) & 4)" (( "(") (binary_expression "*(byte *)((int)param_1 + 0x2b) & 4" (pointer_expression "*(byte *)((int)param_1 + 0x2b)" (* "*") (cast_expression "(byte *)((int)param_1 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x2b)" (( "(") (binary_expression "(int)param_1 + 0x2b" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x2b")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00018b20:\n      iVar12 = bfd_get_arch(param_1);\n      if (iVar12 == 0) {\n        uVar13 = FUN_0002d2a0(param_1);\n        pcVar25 = "Unable to recognise the format of the input file `%s\'";\n      }\n      else {\n        uVar13 = bfd_get_mach(param_1);\n        uVar14 = bfd_get_arch(param_1);\n        uVar13 = bfd_printable_arch_mach(uVar14,uVar13);\n        pcVar25 = "Output file cannot represent architecture `%s\'";\n      }\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002c910(uVar14,uVar13);\n      return 0;\n    }" ({ "{") (labeled_statement "LAB_00018b20:\n      iVar12 = bfd_get_arch(param_1);" (statement_identifier "LAB_00018b20") (: ":") (expression_statement "iVar12 = bfd_get_arch(param_1);" (assignment_expression "iVar12 = bfd_get_arch(param_1)" (identifier "iVar12") (= "=") (call_expression "bfd_get_arch(param_1)" (identifier "bfd_get_arch") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";"))) (if_statement "if (iVar12 == 0) {\n        uVar13 = FUN_0002d2a0(param_1);\n        pcVar25 = "Unable to recognise the format of the input file `%s\'";\n      }\n      else {\n        uVar13 = bfd_get_mach(param_1);\n        uVar14 = bfd_get_arch(param_1);\n        uVar13 = bfd_printable_arch_mach(uVar14,uVar13);\n        pcVar25 = "Output file cannot represent architecture `%s\'";\n      }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar13 = FUN_0002d2a0(param_1);\n        pcVar25 = "Unable to recognise the format of the input file `%s\'";\n      }" ({ "{") (expression_statement "uVar13 = FUN_0002d2a0(param_1);" (assignment_expression "uVar13 = FUN_0002d2a0(param_1)" (identifier "uVar13") (= "=") (call_expression "FUN_0002d2a0(param_1)" (identifier "FUN_0002d2a0") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "pcVar25 = "Unable to recognise the format of the input file `%s\'";" (assignment_expression "pcVar25 = "Unable to recognise the format of the input file `%s\'"" (identifier "pcVar25") (= "=") (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        uVar13 = bfd_get_mach(param_1);\n        uVar14 = bfd_get_arch(param_1);\n        uVar13 = bfd_printable_arch_mach(uVar14,uVar13);\n        pcVar25 = "Output file cannot represent architecture `%s\'";\n      }" (else "else") (compound_statement "{\n        uVar13 = bfd_get_mach(param_1);\n        uVar14 = bfd_get_arch(param_1);\n        uVar13 = bfd_printable_arch_mach(uVar14,uVar13);\n        pcVar25 = "Output file cannot represent architecture `%s\'";\n      }" ({ "{") (expression_statement "uVar13 = bfd_get_mach(param_1);" (assignment_expression "uVar13 = bfd_get_mach(param_1)" (identifier "uVar13") (= "=") (call_expression "bfd_get_mach(param_1)" (identifier "bfd_get_mach") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "uVar14 = bfd_get_arch(param_1);" (assignment_expression "uVar14 = bfd_get_arch(param_1)" (identifier "uVar14") (= "=") (call_expression "bfd_get_arch(param_1)" (identifier "bfd_get_arch") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "uVar13 = bfd_printable_arch_mach(uVar14,uVar13);" (assignment_expression "uVar13 = bfd_printable_arch_mach(uVar14,uVar13)" (identifier "uVar13") (= "=") (call_expression "bfd_printable_arch_mach(uVar14,uVar13)" (identifier "bfd_printable_arch_mach") (argument_list "(uVar14,uVar13)" (( "(") (identifier "uVar14") (, ",") (identifier "uVar13") () ")")))) (; ";")) (expression_statement "pcVar25 = "Output file cannot represent architecture `%s\'";" (assignment_expression "pcVar25 = "Output file cannot represent architecture `%s\'"" (identifier "pcVar25") (= "=") (string_literal ""Output file cannot represent architecture `%s\'"" (" """) (string_content "Output file cannot represent architecture `%s") (escape_sequence "\'") (" """))) (; ";")) (} "}")))) (expression_statement "uVar14 = dcgettext(0,pcVar25,5);" (assignment_expression "uVar14 = dcgettext(0,pcVar25,5)" (identifier "uVar14") (= "=") (call_expression "dcgettext(0,pcVar25,5)" (identifier "dcgettext") (argument_list "(0,pcVar25,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar25") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002c910(uVar14,uVar13);" (call_expression "FUN_0002c910(uVar14,uVar13)" (identifier "FUN_0002c910") (argument_list "(uVar14,uVar13)" (( "(") (identifier "uVar14") (, ",") (identifier "uVar13") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar12 = bfd_get_arch(param_1);" (assignment_expression "iVar12 = bfd_get_arch(param_1)" (identifier "iVar12") (= "=") (call_expression "bfd_get_arch(param_1)" (identifier "bfd_get_arch") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "iVar31 = bfd_get_arch(param_2);" (assignment_expression "iVar31 = bfd_get_arch(param_2)" (identifier "iVar31") (= "=") (call_expression "bfd_get_arch(param_2)" (identifier "bfd_get_arch") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar12 != iVar31) goto LAB_00018b20;" (if "if") (parenthesized_expression "(iVar12 != iVar31)" (( "(") (binary_expression "iVar12 != iVar31" (identifier "iVar12") (!= "!=") (identifier "iVar31")) () ")")) (goto_statement "goto LAB_00018b20;" (goto "goto") (statement_identifier "LAB_00018b20") (; ";"))) (} "}"))) (expression_statement "iVar12 = bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7);" (assignment_expression "iVar12 = bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7)" (identifier "iVar12") (= "=") (call_expression "bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7)" (identifier "bfd_set_format") (argument_list "(param_2,*(byte *)((int)param_1 + 0x28) & 7)" (( "(") (identifier "param_2") (, ",") (binary_expression "*(byte *)((int)param_1 + 0x28) & 7" (pointer_expression "*(byte *)((int)param_1 + 0x28)" (* "*") (cast_expression "(byte *)((int)param_1 + 0x28)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x28)" (( "(") (binary_expression "(int)param_1 + 0x28" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x28")) () ")")))) (& "&") (number_literal "7")) () ")")))) (; ";")) (if_statement "if (iVar12 == 0) {\nLAB_00018b70:\n    FUN_0002d3a0(0,param_1,0,0);\n    return 0;\n  }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00018b70:\n    FUN_0002d3a0(0,param_1,0,0);\n    return 0;\n  }" ({ "{") (labeled_statement "LAB_00018b70:\n    FUN_0002d3a0(0,param_1,0,0);" (statement_identifier "LAB_00018b70") (: ":") (expression_statement "FUN_0002d3a0(0,param_1,0,0);" (call_expression "FUN_0002d3a0(0,param_1,0,0)" (identifier "FUN_0002d3a0") (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 "uVar39 = ((undefined4 *)((int *)param_2)[1])[1];" (assignment_expression "uVar39 = ((undefined4 *)((int *)param_2)[1])[1]" (identifier "uVar39") (= "=") (subscript_expression "((undefined4 *)((int *)param_2)[1])[1]" (parenthesized_expression "((undefined4 *)((int *)param_2)[1])" (( "(") (cast_expression "(undefined4 *)((int *)param_2)[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "((int *)param_2)[1]" (parenthesized_expression "((int *)param_2)" (( "(") (cast_expression "(int *)param_2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2")) () ")")) ([ "[") (number_literal "1") (] "]"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "bVar46 = uVar39 < 2;" (assignment_expression "bVar46 = uVar39 < 2" (identifier "bVar46") (= "=") (binary_expression "uVar39 < 2" (identifier "uVar39") (< "<") (number_literal "2"))) (; ";")) (expression_statement "bVar47 = uVar39 == 2;" (assignment_expression "bVar47 = uVar39 == 2" (identifier "bVar47") (= "=") (binary_expression "uVar39 == 2" (identifier "uVar39") (== "==") (number_literal "2"))) (; ";")) (if_statement "if (bVar47) {\n    iVar12 = 4;\n    pbVar36 = *(byte **)((int *)param_2)[1];\n    pbVar41 = &DAT_0002f16a;\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar46 = *pbVar36 < *pbVar41;\n      bVar47 = *pbVar36 == *pbVar41;\n      pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n      pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n    } while (bVar47);\n    if ((!bVar46 && !bVar47) == bVar46) {\n      iVar12 = ((int *)param_2)[0x28];\n      uVar39 = (*(undefined4 **)((int)param_1 + 4))[1];\n      bVar46 = uVar39 < 2;\n      bVar47 = uVar39 == 2;\n      if (bVar47) {\n        iVar31 = 4;\n        pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4);\n        pbVar41 = &DAT_0002f16a;\n        do {\n          if (iVar31 == 0) break;\n          iVar31 = iVar31 + -1;\n          bVar46 = *pbVar36 < *pbVar41;\n          bVar47 = *pbVar36 == *pbVar41;\n          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n        } while (bVar47);\n        if ((!bVar46 && !bVar47) == bVar46) {\n          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);\n          puVar42 = (undefined4 *)(iVar12 + 0x7c);\n          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }\n        }\n      }\n      uVar39 = DAT_000402b4;\n      if ((DAT_000402b4 & DAT_000402b0) == 0xffffffff) {\n        DAT_000402b0 = 0x200;\n        DAT_000402b4 = 0;\n      }\n      else {\n        *(uint *)(iVar12 + 0xb4) = DAT_000402b0;\n        *(uint *)(iVar12 + 0xb8) = uVar39;\n      }\n      uVar39 = DAT_000402ac;\n      if ((DAT_000402ac & DAT_000402a8) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a8;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_000402a4;\n      if ((DAT_000402a4 & DAT_000402a0) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a0;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_0004029c;\n      if ((DAT_0004029c & DAT_00040298) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xa4) = DAT_00040298;\n        *(uint *)(iVar12 + 0xa8) = uVar39;\n      }\n      uVar39 = DAT_00040294;\n      local_64 = (int *)DAT_00040290;\n      if ((DAT_00040290 & DAT_00040294) == 0xffffffff) {\n        DAT_00040290 = 0x1000;\n        uVar39 = 0;\n        DAT_00040294 = 0;\n        local_64 = (int *)0x1000;\n      }\n      else {\n        *(uint *)(iVar12 + 0xac) = DAT_00040290;\n        *(uint *)(iVar12 + 0xb0) = uVar39;\n      }\n      uVar17 = DAT_0004028c;\n      if ((DAT_0004028c & DAT_00040288) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040288;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      uVar17 = DAT_00040284;\n      if ((DAT_00040284 & DAT_00040280) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040280;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      if (DAT_0004027c != -1) {\n        *(short *)(iVar12 + 0xd8) = DAT_0004027c;\n      }\n      if (DAT_0004027a != -1) {\n        *(short *)(iVar12 + 0xc4) = DAT_0004027a;\n      }\n      if (DAT_00040278 != -1) {\n        *(short *)(iVar12 + 0xc6) = DAT_00040278;\n      }\n      if (uVar39 < DAT_000402b4 || uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0)) {\n        sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4);\n        sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294);\n        uVar13 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n        FUN_0002c910(uVar13,&local_4c,&local_34);\n      }\n    }\n  }" (if "if") (parenthesized_expression "(bVar47)" (( "(") (identifier "bVar47") () ")")) (compound_statement "{\n    iVar12 = 4;\n    pbVar36 = *(byte **)((int *)param_2)[1];\n    pbVar41 = &DAT_0002f16a;\n    do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar46 = *pbVar36 < *pbVar41;\n      bVar47 = *pbVar36 == *pbVar41;\n      pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n      pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n    } while (bVar47);\n    if ((!bVar46 && !bVar47) == bVar46) {\n      iVar12 = ((int *)param_2)[0x28];\n      uVar39 = (*(undefined4 **)((int)param_1 + 4))[1];\n      bVar46 = uVar39 < 2;\n      bVar47 = uVar39 == 2;\n      if (bVar47) {\n        iVar31 = 4;\n        pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4);\n        pbVar41 = &DAT_0002f16a;\n        do {\n          if (iVar31 == 0) break;\n          iVar31 = iVar31 + -1;\n          bVar46 = *pbVar36 < *pbVar41;\n          bVar47 = *pbVar36 == *pbVar41;\n          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n        } while (bVar47);\n        if ((!bVar46 && !bVar47) == bVar46) {\n          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);\n          puVar42 = (undefined4 *)(iVar12 + 0x7c);\n          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }\n        }\n      }\n      uVar39 = DAT_000402b4;\n      if ((DAT_000402b4 & DAT_000402b0) == 0xffffffff) {\n        DAT_000402b0 = 0x200;\n        DAT_000402b4 = 0;\n      }\n      else {\n        *(uint *)(iVar12 + 0xb4) = DAT_000402b0;\n        *(uint *)(iVar12 + 0xb8) = uVar39;\n      }\n      uVar39 = DAT_000402ac;\n      if ((DAT_000402ac & DAT_000402a8) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a8;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_000402a4;\n      if ((DAT_000402a4 & DAT_000402a0) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a0;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_0004029c;\n      if ((DAT_0004029c & DAT_00040298) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xa4) = DAT_00040298;\n        *(uint *)(iVar12 + 0xa8) = uVar39;\n      }\n      uVar39 = DAT_00040294;\n      local_64 = (int *)DAT_00040290;\n      if ((DAT_00040290 & DAT_00040294) == 0xffffffff) {\n        DAT_00040290 = 0x1000;\n        uVar39 = 0;\n        DAT_00040294 = 0;\n        local_64 = (int *)0x1000;\n      }\n      else {\n        *(uint *)(iVar12 + 0xac) = DAT_00040290;\n        *(uint *)(iVar12 + 0xb0) = uVar39;\n      }\n      uVar17 = DAT_0004028c;\n      if ((DAT_0004028c & DAT_00040288) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040288;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      uVar17 = DAT_00040284;\n      if ((DAT_00040284 & DAT_00040280) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040280;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      if (DAT_0004027c != -1) {\n        *(short *)(iVar12 + 0xd8) = DAT_0004027c;\n      }\n      if (DAT_0004027a != -1) {\n        *(short *)(iVar12 + 0xc4) = DAT_0004027a;\n      }\n      if (DAT_00040278 != -1) {\n        *(short *)(iVar12 + 0xc6) = DAT_00040278;\n      }\n      if (uVar39 < DAT_000402b4 || uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0)) {\n        sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4);\n        sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294);\n        uVar13 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n        FUN_0002c910(uVar13,&local_4c,&local_34);\n      }\n    }\n  }" ({ "{") (expression_statement "iVar12 = 4;" (assignment_expression "iVar12 = 4" (identifier "iVar12") (= "=") (number_literal "4")) (; ";")) (expression_statement "pbVar36 = *(byte **)((int *)param_2)[1];" (assignment_expression "pbVar36 = *(byte **)((int *)param_2)[1]" (identifier "pbVar36") (= "=") (pointer_expression "*(byte **)((int *)param_2)[1]" (* "*") (cast_expression "(byte **)((int *)param_2)[1]" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (subscript_expression "((int *)param_2)[1]" (parenthesized_expression "((int *)param_2)" (( "(") (cast_expression "(int *)param_2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2")) () ")")) ([ "[") (number_literal "1") (] "]"))))) (; ";")) (expression_statement "pbVar41 = &DAT_0002f16a;" (assignment_expression "pbVar41 = &DAT_0002f16a" (identifier "pbVar41") (= "=") (pointer_expression "&DAT_0002f16a" (& "&") (identifier "DAT_0002f16a"))) (; ";")) (do_statement "do {\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar46 = *pbVar36 < *pbVar41;\n      bVar47 = *pbVar36 == *pbVar41;\n      pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n      pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n    } while (bVar47);" (do "do") (compound_statement "{\n      if (iVar12 == 0) break;\n      iVar12 = iVar12 + -1;\n      bVar46 = *pbVar36 < *pbVar41;\n      bVar47 = *pbVar36 == *pbVar41;\n      pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n      pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar12 == 0) break;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar46 = *pbVar36 < *pbVar41;" (assignment_expression "bVar46 = *pbVar36 < *pbVar41" (identifier "bVar46") (= "=") (binary_expression "*pbVar36 < *pbVar41" (pointer_expression "*pbVar36" (* "*") (identifier "pbVar36")) (< "<") (pointer_expression "*pbVar41" (* "*") (identifier "pbVar41")))) (; ";")) (expression_statement "bVar47 = *pbVar36 == *pbVar41;" (assignment_expression "bVar47 = *pbVar36 == *pbVar41" (identifier "bVar47") (= "=") (binary_expression "*pbVar36 == *pbVar41" (pointer_expression "*pbVar36" (* "*") (identifier "pbVar36")) (== "==") (pointer_expression "*pbVar41" (* "*") (identifier "pbVar41")))) (; ";")) (expression_statement "pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;" (assignment_expression "pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1" (identifier "pbVar36") (= "=") (binary_expression "pbVar36 + (uint)bVar48 * -2 + 1" (binary_expression "pbVar36 + (uint)bVar48 * -2" (identifier "pbVar36") (+ "+") (binary_expression "(uint)bVar48 * -2" (cast_expression "(uint)bVar48" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar48")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;" (assignment_expression "pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1" (identifier "pbVar41") (= "=") (binary_expression "pbVar41 + (uint)bVar48 * -2 + 1" (binary_expression "pbVar41 + (uint)bVar48 * -2" (identifier "pbVar41") (+ "+") (binary_expression "(uint)bVar48 * -2" (cast_expression "(uint)bVar48" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar48")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar47)" (( "(") (identifier "bVar47") () ")")) (; ";")) (if_statement "if ((!bVar46 && !bVar47) == bVar46) {\n      iVar12 = ((int *)param_2)[0x28];\n      uVar39 = (*(undefined4 **)((int)param_1 + 4))[1];\n      bVar46 = uVar39 < 2;\n      bVar47 = uVar39 == 2;\n      if (bVar47) {\n        iVar31 = 4;\n        pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4);\n        pbVar41 = &DAT_0002f16a;\n        do {\n          if (iVar31 == 0) break;\n          iVar31 = iVar31 + -1;\n          bVar46 = *pbVar36 < *pbVar41;\n          bVar47 = *pbVar36 == *pbVar41;\n          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n        } while (bVar47);\n        if ((!bVar46 && !bVar47) == bVar46) {\n          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);\n          puVar42 = (undefined4 *)(iVar12 + 0x7c);\n          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }\n        }\n      }\n      uVar39 = DAT_000402b4;\n      if ((DAT_000402b4 & DAT_000402b0) == 0xffffffff) {\n        DAT_000402b0 = 0x200;\n        DAT_000402b4 = 0;\n      }\n      else {\n        *(uint *)(iVar12 + 0xb4) = DAT_000402b0;\n        *(uint *)(iVar12 + 0xb8) = uVar39;\n      }\n      uVar39 = DAT_000402ac;\n      if ((DAT_000402ac & DAT_000402a8) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a8;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_000402a4;\n      if ((DAT_000402a4 & DAT_000402a0) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a0;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_0004029c;\n      if ((DAT_0004029c & DAT_00040298) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xa4) = DAT_00040298;\n        *(uint *)(iVar12 + 0xa8) = uVar39;\n      }\n      uVar39 = DAT_00040294;\n      local_64 = (int *)DAT_00040290;\n      if ((DAT_00040290 & DAT_00040294) == 0xffffffff) {\n        DAT_00040290 = 0x1000;\n        uVar39 = 0;\n        DAT_00040294 = 0;\n        local_64 = (int *)0x1000;\n      }\n      else {\n        *(uint *)(iVar12 + 0xac) = DAT_00040290;\n        *(uint *)(iVar12 + 0xb0) = uVar39;\n      }\n      uVar17 = DAT_0004028c;\n      if ((DAT_0004028c & DAT_00040288) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040288;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      uVar17 = DAT_00040284;\n      if ((DAT_00040284 & DAT_00040280) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040280;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      if (DAT_0004027c != -1) {\n        *(short *)(iVar12 + 0xd8) = DAT_0004027c;\n      }\n      if (DAT_0004027a != -1) {\n        *(short *)(iVar12 + 0xc4) = DAT_0004027a;\n      }\n      if (DAT_00040278 != -1) {\n        *(short *)(iVar12 + 0xc6) = DAT_00040278;\n      }\n      if (uVar39 < DAT_000402b4 || uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0)) {\n        sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4);\n        sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294);\n        uVar13 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n        FUN_0002c910(uVar13,&local_4c,&local_34);\n      }\n    }" (if "if") (parenthesized_expression "((!bVar46 && !bVar47) == bVar46)" (( "(") (binary_expression "(!bVar46 && !bVar47) == bVar46" (parenthesized_expression "(!bVar46 && !bVar47)" (( "(") (binary_expression "!bVar46 && !bVar47" (unary_expression "!bVar46" (! "!") (identifier "bVar46")) (&& "&&") (unary_expression "!bVar47" (! "!") (identifier "bVar47"))) () ")")) (== "==") (identifier "bVar46")) () ")")) (compound_statement "{\n      iVar12 = ((int *)param_2)[0x28];\n      uVar39 = (*(undefined4 **)((int)param_1 + 4))[1];\n      bVar46 = uVar39 < 2;\n      bVar47 = uVar39 == 2;\n      if (bVar47) {\n        iVar31 = 4;\n        pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4);\n        pbVar41 = &DAT_0002f16a;\n        do {\n          if (iVar31 == 0) break;\n          iVar31 = iVar31 + -1;\n          bVar46 = *pbVar36 < *pbVar41;\n          bVar47 = *pbVar36 == *pbVar41;\n          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n        } while (bVar47);\n        if ((!bVar46 && !bVar47) == bVar46) {\n          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);\n          puVar42 = (undefined4 *)(iVar12 + 0x7c);\n          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }\n        }\n      }\n      uVar39 = DAT_000402b4;\n      if ((DAT_000402b4 & DAT_000402b0) == 0xffffffff) {\n        DAT_000402b0 = 0x200;\n        DAT_000402b4 = 0;\n      }\n      else {\n        *(uint *)(iVar12 + 0xb4) = DAT_000402b0;\n        *(uint *)(iVar12 + 0xb8) = uVar39;\n      }\n      uVar39 = DAT_000402ac;\n      if ((DAT_000402ac & DAT_000402a8) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a8;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_000402a4;\n      if ((DAT_000402a4 & DAT_000402a0) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a0;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }\n      uVar39 = DAT_0004029c;\n      if ((DAT_0004029c & DAT_00040298) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xa4) = DAT_00040298;\n        *(uint *)(iVar12 + 0xa8) = uVar39;\n      }\n      uVar39 = DAT_00040294;\n      local_64 = (int *)DAT_00040290;\n      if ((DAT_00040290 & DAT_00040294) == 0xffffffff) {\n        DAT_00040290 = 0x1000;\n        uVar39 = 0;\n        DAT_00040294 = 0;\n        local_64 = (int *)0x1000;\n      }\n      else {\n        *(uint *)(iVar12 + 0xac) = DAT_00040290;\n        *(uint *)(iVar12 + 0xb0) = uVar39;\n      }\n      uVar17 = DAT_0004028c;\n      if ((DAT_0004028c & DAT_00040288) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040288;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      uVar17 = DAT_00040284;\n      if ((DAT_00040284 & DAT_00040280) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040280;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }\n      if (DAT_0004027c != -1) {\n        *(short *)(iVar12 + 0xd8) = DAT_0004027c;\n      }\n      if (DAT_0004027a != -1) {\n        *(short *)(iVar12 + 0xc4) = DAT_0004027a;\n      }\n      if (DAT_00040278 != -1) {\n        *(short *)(iVar12 + 0xc6) = DAT_00040278;\n      }\n      if (uVar39 < DAT_000402b4 || uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0)) {\n        sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4);\n        sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294);\n        uVar13 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n        FUN_0002c910(uVar13,&local_4c,&local_34);\n      }\n    }" ({ "{") (expression_statement "iVar12 = ((int *)param_2)[0x28];" (assignment_expression "iVar12 = ((int *)param_2)[0x28]" (identifier "iVar12") (= "=") (subscript_expression "((int *)param_2)[0x28]" (parenthesized_expression "((int *)param_2)" (( "(") (cast_expression "(int *)param_2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2")) () ")")) ([ "[") (number_literal "0x28") (] "]"))) (; ";")) (expression_statement "uVar39 = (*(undefined4 **)((int)param_1 + 4))[1];" (assignment_expression "uVar39 = (*(undefined4 **)((int)param_1 + 4))[1]" (identifier "uVar39") (= "=") (subscript_expression "(*(undefined4 **)((int)param_1 + 4))[1]" (parenthesized_expression "(*(undefined4 **)((int)param_1 + 4))" (( "(") (pointer_expression "*(undefined4 **)((int)param_1 + 4)" (* "*") (cast_expression "(undefined4 **)((int)param_1 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)param_1 + 4)" (( "(") (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "4")) () ")")))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "bVar46 = uVar39 < 2;" (assignment_expression "bVar46 = uVar39 < 2" (identifier "bVar46") (= "=") (binary_expression "uVar39 < 2" (identifier "uVar39") (< "<") (number_literal "2"))) (; ";")) (expression_statement "bVar47 = uVar39 == 2;" (assignment_expression "bVar47 = uVar39 == 2" (identifier "bVar47") (= "=") (binary_expression "uVar39 == 2" (identifier "uVar39") (== "==") (number_literal "2"))) (; ";")) (if_statement "if (bVar47) {\n        iVar31 = 4;\n        pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4);\n        pbVar41 = &DAT_0002f16a;\n        do {\n          if (iVar31 == 0) break;\n          iVar31 = iVar31 + -1;\n          bVar46 = *pbVar36 < *pbVar41;\n          bVar47 = *pbVar36 == *pbVar41;\n          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n        } while (bVar47);\n        if ((!bVar46 && !bVar47) == bVar46) {\n          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);\n          puVar42 = (undefined4 *)(iVar12 + 0x7c);\n          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(bVar47)" (( "(") (identifier "bVar47") () ")")) (compound_statement "{\n        iVar31 = 4;\n        pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4);\n        pbVar41 = &DAT_0002f16a;\n        do {\n          if (iVar31 == 0) break;\n          iVar31 = iVar31 + -1;\n          bVar46 = *pbVar36 < *pbVar41;\n          bVar47 = *pbVar36 == *pbVar41;\n          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n        } while (bVar47);\n        if ((!bVar46 && !bVar47) == bVar46) {\n          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);\n          puVar42 = (undefined4 *)(iVar12 + 0x7c);\n          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }\n        }\n      }" ({ "{") (expression_statement "iVar31 = 4;" (assignment_expression "iVar31 = 4" (identifier "iVar31") (= "=") (number_literal "4")) (; ";")) (expression_statement "pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4);" (assignment_expression "pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4)" (identifier "pbVar36") (= "=") (cast_expression "(byte *)**(undefined4 **)((int)param_1 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)((int)param_1 + 4)" (* "*") (pointer_expression "*(undefined4 **)((int)param_1 + 4)" (* "*") (cast_expression "(undefined4 **)((int)param_1 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)param_1 + 4)" (( "(") (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "4")) () ")"))))))) (; ";")) (expression_statement "pbVar41 = &DAT_0002f16a;" (assignment_expression "pbVar41 = &DAT_0002f16a" (identifier "pbVar41") (= "=") (pointer_expression "&DAT_0002f16a" (& "&") (identifier "DAT_0002f16a"))) (; ";")) (do_statement "do {\n          if (iVar31 == 0) break;\n          iVar31 = iVar31 + -1;\n          bVar46 = *pbVar36 < *pbVar41;\n          bVar47 = *pbVar36 == *pbVar41;\n          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n        } while (bVar47);" (do "do") (compound_statement "{\n          if (iVar31 == 0) break;\n          iVar31 = iVar31 + -1;\n          bVar46 = *pbVar36 < *pbVar41;\n          bVar47 = *pbVar36 == *pbVar41;\n          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;\n          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;\n        }" ({ "{") (if_statement "if (iVar31 == 0) break;" (if "if") (parenthesized_expression "(iVar31 == 0)" (( "(") (binary_expression "iVar31 == 0" (identifier "iVar31") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar31 = iVar31 + -1;" (assignment_expression "iVar31 = iVar31 + -1" (identifier "iVar31") (= "=") (binary_expression "iVar31 + -1" (identifier "iVar31") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar46 = *pbVar36 < *pbVar41;" (assignment_expression "bVar46 = *pbVar36 < *pbVar41" (identifier "bVar46") (= "=") (binary_expression "*pbVar36 < *pbVar41" (pointer_expression "*pbVar36" (* "*") (identifier "pbVar36")) (< "<") (pointer_expression "*pbVar41" (* "*") (identifier "pbVar41")))) (; ";")) (expression_statement "bVar47 = *pbVar36 == *pbVar41;" (assignment_expression "bVar47 = *pbVar36 == *pbVar41" (identifier "bVar47") (= "=") (binary_expression "*pbVar36 == *pbVar41" (pointer_expression "*pbVar36" (* "*") (identifier "pbVar36")) (== "==") (pointer_expression "*pbVar41" (* "*") (identifier "pbVar41")))) (; ";")) (expression_statement "pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;" (assignment_expression "pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1" (identifier "pbVar36") (= "=") (binary_expression "pbVar36 + (uint)bVar48 * -2 + 1" (binary_expression "pbVar36 + (uint)bVar48 * -2" (identifier "pbVar36") (+ "+") (binary_expression "(uint)bVar48 * -2" (cast_expression "(uint)bVar48" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar48")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;" (assignment_expression "pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1" (identifier "pbVar41") (= "=") (binary_expression "pbVar41 + (uint)bVar48 * -2 + 1" (binary_expression "pbVar41 + (uint)bVar48 * -2" (identifier "pbVar41") (+ "+") (binary_expression "(uint)bVar48 * -2" (cast_expression "(uint)bVar48" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar48")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar47)" (( "(") (identifier "bVar47") () ")")) (; ";")) (if_statement "if ((!bVar46 && !bVar47) == bVar46) {\n          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);\n          puVar42 = (undefined4 *)(iVar12 + 0x7c);\n          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }\n        }" (if "if") (parenthesized_expression "((!bVar46 && !bVar47) == bVar46)" (( "(") (binary_expression "(!bVar46 && !bVar47) == bVar46" (parenthesized_expression "(!bVar46 && !bVar47)" (( "(") (binary_expression "!bVar46 && !bVar47" (unary_expression "!bVar46" (! "!") (identifier "bVar46")) (&& "&&") (unary_expression "!bVar47" (! "!") (identifier "bVar47"))) () ")")) (== "==") (identifier "bVar46")) () ")")) (compound_statement "{\n          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);\n          puVar42 = (undefined4 *)(iVar12 + 0x7c);\n          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }\n        }" ({ "{") (expression_statement "puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);" (assignment_expression "puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c)" (identifier "puVar35") (= "=") (cast_expression "(undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)((int)param_1 + 0xa0) + 0x7c)" (( "(") (binary_expression "*(int *)((int)param_1 + 0xa0) + 0x7c" (pointer_expression "*(int *)((int)param_1 + 0xa0)" (* "*") (cast_expression "(int *)((int)param_1 + 0xa0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0xa0)" (( "(") (binary_expression "(int)param_1 + 0xa0" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0xa0")) () ")")))) (+ "+") (number_literal "0x7c")) () ")")))) (; ";")) (expression_statement "puVar42 = (undefined4 *)(iVar12 + 0x7c);" (assignment_expression "puVar42 = (undefined4 *)(iVar12 + 0x7c)" (identifier "puVar42") (= "=") (cast_expression "(undefined4 *)(iVar12 + 0x7c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x7c)" (( "(") (binary_expression "iVar12 + 0x7c" (identifier "iVar12") (+ "+") (number_literal "0x7c")) () ")")))) (; ";")) (for_statement "for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }" (for "for") (( "(") (assignment_expression "iVar31 = 0x52" (identifier "iVar31") (= "=") (number_literal "0x52")) (; ";") (binary_expression "iVar31 != 0" (identifier "iVar31") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar31 = iVar31 + -1" (identifier "iVar31") (= "=") (binary_expression "iVar31 + -1" (identifier "iVar31") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n            *puVar42 = *puVar35;\n            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;\n            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;\n          }" ({ "{") (expression_statement "*puVar42 = *puVar35;" (assignment_expression "*puVar42 = *puVar35" (pointer_expression "*puVar42" (* "*") (identifier "puVar42")) (= "=") (pointer_expression "*puVar35" (* "*") (identifier "puVar35"))) (; ";")) (expression_statement "puVar35 = puVar35 + (uint)bVar48 * -2 + 1;" (assignment_expression "puVar35 = puVar35 + (uint)bVar48 * -2 + 1" (identifier "puVar35") (= "=") (binary_expression "puVar35 + (uint)bVar48 * -2 + 1" (binary_expression "puVar35 + (uint)bVar48 * -2" (identifier "puVar35") (+ "+") (binary_expression "(uint)bVar48 * -2" (cast_expression "(uint)bVar48" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar48")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar42 = puVar42 + (uint)bVar48 * -2 + 1;" (assignment_expression "puVar42 = puVar42 + (uint)bVar48 * -2 + 1" (identifier "puVar42") (= "=") (binary_expression "puVar42 + (uint)bVar48 * -2 + 1" (binary_expression "puVar42 + (uint)bVar48 * -2" (identifier "puVar42") (+ "+") (binary_expression "(uint)bVar48 * -2" (cast_expression "(uint)bVar48" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar48")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "uVar39 = DAT_000402b4;" (assignment_expression "uVar39 = DAT_000402b4" (identifier "uVar39") (= "=") (identifier "DAT_000402b4")) (; ";")) (if_statement "if ((DAT_000402b4 & DAT_000402b0) == 0xffffffff) {\n        DAT_000402b0 = 0x200;\n        DAT_000402b4 = 0;\n      }\n      else {\n        *(uint *)(iVar12 + 0xb4) = DAT_000402b0;\n        *(uint *)(iVar12 + 0xb8) = uVar39;\n      }" (if "if") (parenthesized_expression "((DAT_000402b4 & DAT_000402b0) == 0xffffffff)" (( "(") (binary_expression "(DAT_000402b4 & DAT_000402b0) == 0xffffffff" (parenthesized_expression "(DAT_000402b4 & DAT_000402b0)" (( "(") (binary_expression "DAT_000402b4 & DAT_000402b0" (identifier "DAT_000402b4") (& "&") (identifier "DAT_000402b0")) () ")")) (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n        DAT_000402b0 = 0x200;\n        DAT_000402b4 = 0;\n      }" ({ "{") (expression_statement "DAT_000402b0 = 0x200;" (assignment_expression "DAT_000402b0 = 0x200" (identifier "DAT_000402b0") (= "=") (number_literal "0x200")) (; ";")) (expression_statement "DAT_000402b4 = 0;" (assignment_expression "DAT_000402b4 = 0" (identifier "DAT_000402b4") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        *(uint *)(iVar12 + 0xb4) = DAT_000402b0;\n        *(uint *)(iVar12 + 0xb8) = uVar39;\n      }" (else "else") (compound_statement "{\n        *(uint *)(iVar12 + 0xb4) = DAT_000402b0;\n        *(uint *)(iVar12 + 0xb8) = uVar39;\n      }" ({ "{") (expression_statement "*(uint *)(iVar12 + 0xb4) = DAT_000402b0;" (assignment_expression "*(uint *)(iVar12 + 0xb4) = DAT_000402b0" (pointer_expression "*(uint *)(iVar12 + 0xb4)" (* "*") (cast_expression "(uint *)(iVar12 + 0xb4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xb4)" (( "(") (binary_expression "iVar12 + 0xb4" (identifier "iVar12") (+ "+") (number_literal "0xb4")) () ")")))) (= "=") (identifier "DAT_000402b0")) (; ";")) (expression_statement "*(uint *)(iVar12 + 0xb8) = uVar39;" (assignment_expression "*(uint *)(iVar12 + 0xb8) = uVar39" (pointer_expression "*(uint *)(iVar12 + 0xb8)" (* "*") (cast_expression "(uint *)(iVar12 + 0xb8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xb8)" (( "(") (binary_expression "iVar12 + 0xb8" (identifier "iVar12") (+ "+") (number_literal "0xb8")) () ")")))) (= "=") (identifier "uVar39")) (; ";")) (} "}")))) (expression_statement "uVar39 = DAT_000402ac;" (assignment_expression "uVar39 = DAT_000402ac" (identifier "uVar39") (= "=") (identifier "DAT_000402ac")) (; ";")) (if_statement "if ((DAT_000402ac & DAT_000402a8) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a8;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }" (if "if") (parenthesized_expression "((DAT_000402ac & DAT_000402a8) != 0xffffffff)" (( "(") (binary_expression "(DAT_000402ac & DAT_000402a8) != 0xffffffff" (parenthesized_expression "(DAT_000402ac & DAT_000402a8)" (( "(") (binary_expression "DAT_000402ac & DAT_000402a8" (identifier "DAT_000402ac") (& "&") (identifier "DAT_000402a8")) () ")")) (!= "!=") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a8;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }" ({ "{") (expression_statement "*(uint *)(iVar12 + 0xf4) = DAT_000402a8;" (assignment_expression "*(uint *)(iVar12 + 0xf4) = DAT_000402a8" (pointer_expression "*(uint *)(iVar12 + 0xf4)" (* "*") (cast_expression "(uint *)(iVar12 + 0xf4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xf4)" (( "(") (binary_expression "iVar12 + 0xf4" (identifier "iVar12") (+ "+") (number_literal "0xf4")) () ")")))) (= "=") (identifier "DAT_000402a8")) (; ";")) (expression_statement "*(uint *)(iVar12 + 0xf8) = uVar39;" (assignment_expression "*(uint *)(iVar12 + 0xf8) = uVar39" (pointer_expression "*(uint *)(iVar12 + 0xf8)" (* "*") (cast_expression "(uint *)(iVar12 + 0xf8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xf8)" (( "(") (binary_expression "iVar12 + 0xf8" (identifier "iVar12") (+ "+") (number_literal "0xf8")) () ")")))) (= "=") (identifier "uVar39")) (; ";")) (} "}"))) (expression_statement "uVar39 = DAT_000402a4;" (assignment_expression "uVar39 = DAT_000402a4" (identifier "uVar39") (= "=") (identifier "DAT_000402a4")) (; ";")) (if_statement "if ((DAT_000402a4 & DAT_000402a0) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a0;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }" (if "if") (parenthesized_expression "((DAT_000402a4 & DAT_000402a0) != 0xffffffff)" (( "(") (binary_expression "(DAT_000402a4 & DAT_000402a0) != 0xffffffff" (parenthesized_expression "(DAT_000402a4 & DAT_000402a0)" (( "(") (binary_expression "DAT_000402a4 & DAT_000402a0" (identifier "DAT_000402a4") (& "&") (identifier "DAT_000402a0")) () ")")) (!= "!=") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n        *(uint *)(iVar12 + 0xf4) = DAT_000402a0;\n        *(uint *)(iVar12 + 0xf8) = uVar39;\n      }" ({ "{") (expression_statement "*(uint *)(iVar12 + 0xf4) = DAT_000402a0;" (assignment_expression "*(uint *)(iVar12 + 0xf4) = DAT_000402a0" (pointer_expression "*(uint *)(iVar12 + 0xf4)" (* "*") (cast_expression "(uint *)(iVar12 + 0xf4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xf4)" (( "(") (binary_expression "iVar12 + 0xf4" (identifier "iVar12") (+ "+") (number_literal "0xf4")) () ")")))) (= "=") (identifier "DAT_000402a0")) (; ";")) (expression_statement "*(uint *)(iVar12 + 0xf8) = uVar39;" (assignment_expression "*(uint *)(iVar12 + 0xf8) = uVar39" (pointer_expression "*(uint *)(iVar12 + 0xf8)" (* "*") (cast_expression "(uint *)(iVar12 + 0xf8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xf8)" (( "(") (binary_expression "iVar12 + 0xf8" (identifier "iVar12") (+ "+") (number_literal "0xf8")) () ")")))) (= "=") (identifier "uVar39")) (; ";")) (} "}"))) (expression_statement "uVar39 = DAT_0004029c;" (assignment_expression "uVar39 = DAT_0004029c" (identifier "uVar39") (= "=") (identifier "DAT_0004029c")) (; ";")) (if_statement "if ((DAT_0004029c & DAT_00040298) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xa4) = DAT_00040298;\n        *(uint *)(iVar12 + 0xa8) = uVar39;\n      }" (if "if") (parenthesized_expression "((DAT_0004029c & DAT_00040298) != 0xffffffff)" (( "(") (binary_expression "(DAT_0004029c & DAT_00040298) != 0xffffffff" (parenthesized_expression "(DAT_0004029c & DAT_00040298)" (( "(") (binary_expression "DAT_0004029c & DAT_00040298" (identifier "DAT_0004029c") (& "&") (identifier "DAT_00040298")) () ")")) (!= "!=") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n        *(uint *)(iVar12 + 0xa4) = DAT_00040298;\n        *(uint *)(iVar12 + 0xa8) = uVar39;\n      }" ({ "{") (expression_statement "*(uint *)(iVar12 + 0xa4) = DAT_00040298;" (assignment_expression "*(uint *)(iVar12 + 0xa4) = DAT_00040298" (pointer_expression "*(uint *)(iVar12 + 0xa4)" (* "*") (cast_expression "(uint *)(iVar12 + 0xa4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xa4)" (( "(") (binary_expression "iVar12 + 0xa4" (identifier "iVar12") (+ "+") (number_literal "0xa4")) () ")")))) (= "=") (identifier "DAT_00040298")) (; ";")) (expression_statement "*(uint *)(iVar12 + 0xa8) = uVar39;" (assignment_expression "*(uint *)(iVar12 + 0xa8) = uVar39" (pointer_expression "*(uint *)(iVar12 + 0xa8)" (* "*") (cast_expression "(uint *)(iVar12 + 0xa8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xa8)" (( "(") (binary_expression "iVar12 + 0xa8" (identifier "iVar12") (+ "+") (number_literal "0xa8")) () ")")))) (= "=") (identifier "uVar39")) (; ";")) (} "}"))) (expression_statement "uVar39 = DAT_00040294;" (assignment_expression "uVar39 = DAT_00040294" (identifier "uVar39") (= "=") (identifier "DAT_00040294")) (; ";")) (expression_statement "local_64 = (int *)DAT_00040290;" (assignment_expression "local_64 = (int *)DAT_00040290" (identifier "local_64") (= "=") (cast_expression "(int *)DAT_00040290" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "DAT_00040290"))) (; ";")) (if_statement "if ((DAT_00040290 & DAT_00040294) == 0xffffffff) {\n        DAT_00040290 = 0x1000;\n        uVar39 = 0;\n        DAT_00040294 = 0;\n        local_64 = (int *)0x1000;\n      }\n      else {\n        *(uint *)(iVar12 + 0xac) = DAT_00040290;\n        *(uint *)(iVar12 + 0xb0) = uVar39;\n      }" (if "if") (parenthesized_expression "((DAT_00040290 & DAT_00040294) == 0xffffffff)" (( "(") (binary_expression "(DAT_00040290 & DAT_00040294) == 0xffffffff" (parenthesized_expression "(DAT_00040290 & DAT_00040294)" (( "(") (binary_expression "DAT_00040290 & DAT_00040294" (identifier "DAT_00040290") (& "&") (identifier "DAT_00040294")) () ")")) (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n        DAT_00040290 = 0x1000;\n        uVar39 = 0;\n        DAT_00040294 = 0;\n        local_64 = (int *)0x1000;\n      }" ({ "{") (expression_statement "DAT_00040290 = 0x1000;" (assignment_expression "DAT_00040290 = 0x1000" (identifier "DAT_00040290") (= "=") (number_literal "0x1000")) (; ";")) (expression_statement "uVar39 = 0;" (assignment_expression "uVar39 = 0" (identifier "uVar39") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00040294 = 0;" (assignment_expression "DAT_00040294 = 0" (identifier "DAT_00040294") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_64 = (int *)0x1000;" (assignment_expression "local_64 = (int *)0x1000" (identifier "local_64") (= "=") (cast_expression "(int *)0x1000" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1000"))) (; ";")) (} "}")) (else_clause "else {\n        *(uint *)(iVar12 + 0xac) = DAT_00040290;\n        *(uint *)(iVar12 + 0xb0) = uVar39;\n      }" (else "else") (compound_statement "{\n        *(uint *)(iVar12 + 0xac) = DAT_00040290;\n        *(uint *)(iVar12 + 0xb0) = uVar39;\n      }" ({ "{") (expression_statement "*(uint *)(iVar12 + 0xac) = DAT_00040290;" (assignment_expression "*(uint *)(iVar12 + 0xac) = DAT_00040290" (pointer_expression "*(uint *)(iVar12 + 0xac)" (* "*") (cast_expression "(uint *)(iVar12 + 0xac)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xac)" (( "(") (binary_expression "iVar12 + 0xac" (identifier "iVar12") (+ "+") (number_literal "0xac")) () ")")))) (= "=") (identifier "DAT_00040290")) (; ";")) (expression_statement "*(uint *)(iVar12 + 0xb0) = uVar39;" (assignment_expression "*(uint *)(iVar12 + 0xb0) = uVar39" (pointer_expression "*(uint *)(iVar12 + 0xb0)" (* "*") (cast_expression "(uint *)(iVar12 + 0xb0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xb0)" (( "(") (binary_expression "iVar12 + 0xb0" (identifier "iVar12") (+ "+") (number_literal "0xb0")) () ")")))) (= "=") (identifier "uVar39")) (; ";")) (} "}")))) (expression_statement "uVar17 = DAT_0004028c;" (assignment_expression "uVar17 = DAT_0004028c" (identifier "uVar17") (= "=") (identifier "DAT_0004028c")) (; ";")) (if_statement "if ((DAT_0004028c & DAT_00040288) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040288;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }" (if "if") (parenthesized_expression "((DAT_0004028c & DAT_00040288) != 0xffffffff)" (( "(") (binary_expression "(DAT_0004028c & DAT_00040288) != 0xffffffff" (parenthesized_expression "(DAT_0004028c & DAT_00040288)" (( "(") (binary_expression "DAT_0004028c & DAT_00040288" (identifier "DAT_0004028c") (& "&") (identifier "DAT_00040288")) () ")")) (!= "!=") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n        *(uint *)(iVar12 + 0xe4) = DAT_00040288;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }" ({ "{") (expression_statement "*(uint *)(iVar12 + 0xe4) = DAT_00040288;" (assignment_expression "*(uint *)(iVar12 + 0xe4) = DAT_00040288" (pointer_expression "*(uint *)(iVar12 + 0xe4)" (* "*") (cast_expression "(uint *)(iVar12 + 0xe4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xe4)" (( "(") (binary_expression "iVar12 + 0xe4" (identifier "iVar12") (+ "+") (number_literal "0xe4")) () ")")))) (= "=") (identifier "DAT_00040288")) (; ";")) (expression_statement "*(uint *)(iVar12 + 0xe8) = uVar17;" (assignment_expression "*(uint *)(iVar12 + 0xe8) = uVar17" (pointer_expression "*(uint *)(iVar12 + 0xe8)" (* "*") (cast_expression "(uint *)(iVar12 + 0xe8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xe8)" (( "(") (binary_expression "iVar12 + 0xe8" (identifier "iVar12") (+ "+") (number_literal "0xe8")) () ")")))) (= "=") (identifier "uVar17")) (; ";")) (} "}"))) (expression_statement "uVar17 = DAT_00040284;" (assignment_expression "uVar17 = DAT_00040284" (identifier "uVar17") (= "=") (identifier "DAT_00040284")) (; ";")) (if_statement "if ((DAT_00040284 & DAT_00040280) != 0xffffffff) {\n        *(uint *)(iVar12 + 0xe4) = DAT_00040280;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }" (if "if") (parenthesized_expression "((DAT_00040284 & DAT_00040280) != 0xffffffff)" (( "(") (binary_expression "(DAT_00040284 & DAT_00040280) != 0xffffffff" (parenthesized_expression "(DAT_00040284 & DAT_00040280)" (( "(") (binary_expression "DAT_00040284 & DAT_00040280" (identifier "DAT_00040284") (& "&") (identifier "DAT_00040280")) () ")")) (!= "!=") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n        *(uint *)(iVar12 + 0xe4) = DAT_00040280;\n        *(uint *)(iVar12 + 0xe8) = uVar17;\n      }" ({ "{") (expression_statement "*(uint *)(iVar12 + 0xe4) = DAT_00040280;" (assignment_expression "*(uint *)(iVar12 + 0xe4) = DAT_00040280" (pointer_expression "*(uint *)(iVar12 + 0xe4)" (* "*") (cast_expression "(uint *)(iVar12 + 0xe4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xe4)" (( "(") (binary_expression "iVar12 + 0xe4" (identifier "iVar12") (+ "+") (number_literal "0xe4")) () ")")))) (= "=") (identifier "DAT_00040280")) (; ";")) (expression_statement "*(uint *)(iVar12 + 0xe8) = uVar17;" (assignment_expression "*(uint *)(iVar12 + 0xe8) = uVar17" (pointer_expression "*(uint *)(iVar12 + 0xe8)" (* "*") (cast_expression "(uint *)(iVar12 + 0xe8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xe8)" (( "(") (binary_expression "iVar12 + 0xe8" (identifier "iVar12") (+ "+") (number_literal "0xe8")) () ")")))) (= "=") (identifier "uVar17")) (; ";")) (} "}"))) (if_statement "if (DAT_0004027c != -1) {\n        *(short *)(iVar12 + 0xd8) = DAT_0004027c;\n      }" (if "if") (parenthesized_expression "(DAT_0004027c != -1)" (( "(") (binary_expression "DAT_0004027c != -1" (identifier "DAT_0004027c") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n        *(short *)(iVar12 + 0xd8) = DAT_0004027c;\n      }" ({ "{") (expression_statement "*(short *)(iVar12 + 0xd8) = DAT_0004027c;" (assignment_expression "*(short *)(iVar12 + 0xd8) = DAT_0004027c" (pointer_expression "*(short *)(iVar12 + 0xd8)" (* "*") (cast_expression "(short *)(iVar12 + 0xd8)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xd8)" (( "(") (binary_expression "iVar12 + 0xd8" (identifier "iVar12") (+ "+") (number_literal "0xd8")) () ")")))) (= "=") (identifier "DAT_0004027c")) (; ";")) (} "}"))) (if_statement "if (DAT_0004027a != -1) {\n        *(short *)(iVar12 + 0xc4) = DAT_0004027a;\n      }" (if "if") (parenthesized_expression "(DAT_0004027a != -1)" (( "(") (binary_expression "DAT_0004027a != -1" (identifier "DAT_0004027a") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n        *(short *)(iVar12 + 0xc4) = DAT_0004027a;\n      }" ({ "{") (expression_statement "*(short *)(iVar12 + 0xc4) = DAT_0004027a;" (assignment_expression "*(short *)(iVar12 + 0xc4) = DAT_0004027a" (pointer_expression "*(short *)(iVar12 + 0xc4)" (* "*") (cast_expression "(short *)(iVar12 + 0xc4)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xc4)" (( "(") (binary_expression "iVar12 + 0xc4" (identifier "iVar12") (+ "+") (number_literal "0xc4")) () ")")))) (= "=") (identifier "DAT_0004027a")) (; ";")) (} "}"))) (if_statement "if (DAT_00040278 != -1) {\n        *(short *)(iVar12 + 0xc6) = DAT_00040278;\n      }" (if "if") (parenthesized_expression "(DAT_00040278 != -1)" (( "(") (binary_expression "DAT_00040278 != -1" (identifier "DAT_00040278") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n        *(short *)(iVar12 + 0xc6) = DAT_00040278;\n      }" ({ "{") (expression_statement "*(short *)(iVar12 + 0xc6) = DAT_00040278;" (assignment_expression "*(short *)(iVar12 + 0xc6) = DAT_00040278" (pointer_expression "*(short *)(iVar12 + 0xc6)" (* "*") (cast_expression "(short *)(iVar12 + 0xc6)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xc6)" (( "(") (binary_expression "iVar12 + 0xc6" (identifier "iVar12") (+ "+") (number_literal "0xc6")) () ")")))) (= "=") (identifier "DAT_00040278")) (; ";")) (} "}"))) (if_statement "if (uVar39 < DAT_000402b4 || uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0)) {\n        sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4);\n        sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294);\n        uVar13 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n        FUN_0002c910(uVar13,&local_4c,&local_34);\n      }" (if "if") (parenthesized_expression "(uVar39 < DAT_000402b4 || uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0))" (( "(") (binary_expression "uVar39 < DAT_000402b4 || uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0)" (binary_expression "uVar39 < DAT_000402b4" (identifier "uVar39") (< "<") (identifier "DAT_000402b4")) (|| "||") (binary_expression "uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0)" (binary_expression "uVar39 - DAT_000402b4" (identifier "uVar39") (- "-") (identifier "DAT_000402b4")) (< "<") (call_expression "(uint)(local_64 < DAT_000402b0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_64 < DAT_000402b0)" (( "(") (binary_expression "local_64 < DAT_000402b0" (identifier "local_64") (< "<") (identifier "DAT_000402b0")) () ")"))))) () ")")) (compound_statement "{\n        sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4);\n        sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294);\n        uVar13 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);\n        FUN_0002c910(uVar13,&local_4c,&local_34);\n      }" ({ "{") (expression_statement "sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4);" (call_expression "sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4)" (identifier "sprintf") (argument_list "((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4)" (( "(") (cast_expression "(char *)&local_4c" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_4c" (& "&") (identifier "local_4c"))) (, ",") (string_literal ""%016llx"" (" """) (string_content "%016llx") (" """)) (, ",") (identifier "DAT_000402b0") (, ",") (identifier "DAT_000402b4") () ")"))) (; ";")) (expression_statement "sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294);" (call_expression "sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294)" (identifier "sprintf") (argument_list "((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294)" (( "(") (cast_expression "(char *)&local_34" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_34" (& "&") (identifier "local_34"))) (, ",") (string_literal ""%016llx"" (" """) (string_content "%016llx") (" """)) (, ",") (identifier "DAT_00040290") (, ",") (identifier "DAT_00040294") () ")"))) (; ";")) (expression_statement "uVar13 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);" (assignment_expression "uVar13 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5)" (identifier "uVar13") (= "=") (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_0002c910(uVar13,&local_4c,&local_34);" (call_expression "FUN_0002c910(uVar13,&local_4c,&local_34)" (identifier "FUN_0002c910") (argument_list "(uVar13,&local_4c,&local_34)" (( "(") (identifier "uVar13") (, ",") (pointer_expression "&local_4c" (& "&") (identifier "local_4c")) (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "piVar19 = DAT_00040bdc;" (assignment_expression "piVar19 = DAT_00040bdc" (identifier "piVar19") (= "=") (identifier "DAT_00040bdc")) (; ";")) (if_statement "if (DAT_00040bdc != (int *)0x0) {\n    free(DAT_00040bdc);\n  }" (if "if") (parenthesized_expression "(DAT_00040bdc != (int *)0x0)" (( "(") (binary_expression "DAT_00040bdc != (int *)0x0" (identifier "DAT_00040bdc") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    free(DAT_00040bdc);\n  }" ({ "{") (expression_statement "free(DAT_00040bdc);" (call_expression "free(DAT_00040bdc)" (identifier "free") (argument_list "(DAT_00040bdc)" (( "(") (identifier "DAT_00040bdc") () ")"))) (; ";")) (} "}"))) (if_statement "if (piVar19 != DAT_00040bd8) {\n    free(DAT_00040bd8);\n  }" (if "if") (parenthesized_expression "(piVar19 != DAT_00040bd8)" (( "(") (binary_expression "piVar19 != DAT_00040bd8" (identifier "piVar19") (!= "!=") (identifier "DAT_00040bd8")) () ")")) (compound_statement "{\n    free(DAT_00040bd8);\n  }" ({ "{") (expression_statement "free(DAT_00040bd8);" (call_expression "free(DAT_00040bd8)" (identifier "free") (argument_list "(DAT_00040bd8)" (( "(") (identifier "DAT_00040bd8") () ")"))) (; ";")) (} "}"))) (expression_statement "DAT_00040bdc = (int *)0x0;" (assignment_expression "DAT_00040bdc = (int *)0x0" (identifier "DAT_00040bdc") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "DAT_00040bd8 = (int *)0x0;" (assignment_expression "DAT_00040bd8 = (int *)0x0" (identifier "DAT_00040bd8") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar12 = (**(code **)(*(int *)((int)param_1 + 4) + 0x104))(param_1);" (assignment_expression "iVar12 = (**(code **)(*(int *)((int)param_1 + 4) + 0x104))(param_1)" (identifier "iVar12") (= "=") (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x104))(param_1)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x104))" (( "(") (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x104)" (* "*") (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x104)" (* "*") (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x104)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x104)" (( "(") (binary_expression "*(int *)((int)param_1 + 4) + 0x104" (pointer_expression "*(int *)((int)param_1 + 4)" (* "*") (cast_expression "(int *)((int)param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 4)" (( "(") (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x104")) () ")"))))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar12 < 0) goto LAB_00018b70;" (if "if") (parenthesized_expression "(iVar12 < 0)" (( "(") (binary_expression "iVar12 < 0" (identifier "iVar12") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_00018b70;" (goto "goto") (statement_identifier "LAB_00018b70") (; ";"))) (expression_statement "DAT_00040bd8 = (int *)xmalloc(iVar12);" (assignment_expression "DAT_00040bd8 = (int *)xmalloc(iVar12)" (identifier "DAT_00040bd8") (= "=") (cast_expression "(int *)xmalloc(iVar12)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(iVar12)" (identifier "xmalloc") (argument_list "(iVar12)" (( "(") (identifier "iVar12") () ")"))))) (; ";")) (expression_statement "DAT_00040bdc = DAT_00040bd8;" (assignment_expression "DAT_00040bdc = DAT_00040bd8" (identifier "DAT_00040bdc") (= "=") (identifier "DAT_00040bd8")) (; ";")) (expression_statement "local_8c = (**(code **)(*(int *)((int)param_1 + 4) + 0x108))(param_1,DAT_00040bd8);" (assignment_expression "local_8c = (**(code **)(*(int *)((int)param_1 + 4) + 0x108))(param_1,DAT_00040bd8)" (identifier "local_8c") (= "=") (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x108))(param_1,DAT_00040bd8)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x108))" (( "(") (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x108)" (* "*") (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x108)" (* "*") (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x108)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x108)" (( "(") (binary_expression "*(int *)((int)param_1 + 4) + 0x108" (pointer_expression "*(int *)((int)param_1 + 4)" (* "*") (cast_expression "(int *)((int)param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 4)" (( "(") (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x108")) () ")"))))) () ")")) (argument_list "(param_1,DAT_00040bd8)" (( "(") (identifier "param_1") (, ",") (identifier "DAT_00040bd8") () ")")))) (; ";")) (if_statement "if (local_8c < 0) goto LAB_00018b70;" (if "if") (parenthesized_expression "(local_8c < 0)" (( "(") (binary_expression "local_8c < 0" (identifier "local_8c") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_00018b70;" (goto "goto") (statement_identifier "LAB_00018b70") (; ";"))) (if_statement "if (local_8c == 0) {\n    free(DAT_00040bdc);\n    DAT_00040bdc = (int *)0x0;\n    DAT_00040bd8 = (int *)0x0;\n  }" (if "if") (parenthesized_expression "(local_8c == 0)" (( "(") (binary_expression "local_8c == 0" (identifier "local_8c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    free(DAT_00040bdc);\n    DAT_00040bdc = (int *)0x0;\n    DAT_00040bd8 = (int *)0x0;\n  }" ({ "{") (expression_statement "free(DAT_00040bdc);" (call_expression "free(DAT_00040bdc)" (identifier "free") (argument_list "(DAT_00040bdc)" (( "(") (identifier "DAT_00040bdc") () ")"))) (; ";")) (expression_statement "DAT_00040bdc = (int *)0x0;" (assignment_expression "DAT_00040bdc = (int *)0x0" (identifier "DAT_00040bdc") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "DAT_00040bd8 = (int *)0x0;" (assignment_expression "DAT_00040bd8 = (int *)0x0" (identifier "DAT_00040bd8") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (expression_statement "bfd_map_over_sections(param_1,FUN_00017af0,param_2);" (call_expression "bfd_map_over_sections(param_1,FUN_00017af0,param_2)" (identifier "bfd_map_over_sections") (argument_list "(param_1,FUN_00017af0,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "FUN_00017af0") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "puVar35 = DAT_00040b58;" (assignment_expression "puVar35 = DAT_00040b58" (identifier "puVar35") (= "=") (identifier "DAT_00040b58")) (; ";")) (if_statement "if ((DAT_00040aec == 0) &&\n     (iVar12 = (**(code **)(((int *)param_2)[1] + 0xbc))(param_1,param_2), puVar35 = DAT_00040b58,\n     iVar12 == 0)) {\n    DAT_00040bc8 = 1;\n    uVar13 = dcgettext(0,"error in private header data",5);\n    FUN_0002d3a0(0,param_1,0,uVar13);\n    puVar35 = DAT_00040b58;\n  }" (if "if") (parenthesized_expression "((DAT_00040aec == 0) &&\n     (iVar12 = (**(code **)(((int *)param_2)[1] + 0xbc))(param_1,param_2), puVar35 = DAT_00040b58,\n     iVar12 == 0))" (( "(") (binary_expression "(DAT_00040aec == 0) &&\n     (iVar12 = (**(code **)(((int *)param_2)[1] + 0xbc))(param_1,param_2), puVar35 = DAT_00040b58,\n     iVar12 == 0)" (parenthesized_expression "(DAT_00040aec == 0)" (( "(") (binary_expression "DAT_00040aec == 0" (identifier "DAT_00040aec") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar12 = (**(code **)(((int *)param_2)[1] + 0xbc))(param_1,param_2), puVar35 = DAT_00040b58,\n     iVar12 == 0)" (( "(") (comma_expression "iVar12 = (**(code **)(((int *)param_2)[1] + 0xbc))(param_1,param_2), puVar35 = DAT_00040b58,\n     iVar12 == 0" (assignment_expression "iVar12 = (**(code **)(((int *)param_2)[1] + 0xbc))(param_1,param_2)" (identifier "iVar12") (= "=") (call_expression "(**(code **)(((int *)param_2)[1] + 0xbc))(param_1,param_2)" (parenthesized_expression "(**(code **)(((int *)param_2)[1] + 0xbc))" (( "(") (pointer_expression "**(code **)(((int *)param_2)[1] + 0xbc)" (* "*") (pointer_expression "*(code **)(((int *)param_2)[1] + 0xbc)" (* "*") (cast_expression "(code **)(((int *)param_2)[1] + 0xbc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(((int *)param_2)[1] + 0xbc)" (( "(") (binary_expression "((int *)param_2)[1] + 0xbc" (subscript_expression "((int *)param_2)[1]" (parenthesized_expression "((int *)param_2)" (( "(") (cast_expression "(int *)param_2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2")) () ")")) ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0xbc")) () ")"))))) () ")")) (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")")))) (, ",") (comma_expression "puVar35 = DAT_00040b58,\n     iVar12 == 0" (assignment_expression "puVar35 = DAT_00040b58" (identifier "puVar35") (= "=") (identifier "DAT_00040b58")) (, ",") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")))) () ")"))) () ")")) (compound_statement "{\n    DAT_00040bc8 = 1;\n    uVar13 = dcgettext(0,"error in private header data",5);\n    FUN_0002d3a0(0,param_1,0,uVar13);\n    puVar35 = DAT_00040b58;\n  }" ({ "{") (expression_statement "DAT_00040bc8 = 1;" (assignment_expression "DAT_00040bc8 = 1" (identifier "DAT_00040bc8") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar13 = dcgettext(0,"error in private header data",5);" (assignment_expression "uVar13 = dcgettext(0,"error in private header data",5)" (identifier "uVar13") (= "=") (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_0002d3a0(0,param_1,0,uVar13);" (call_expression "FUN_0002d3a0(0,param_1,0,uVar13)" (identifier "FUN_0002d3a0") (argument_list "(0,param_1,0,uVar13)" (( "(") (number_literal "0") (, ",") (identifier "param_1") (, ",") (number_literal "0") (, ",") (identifier "uVar13") () ")"))) (; ";")) (expression_statement "puVar35 = DAT_00040b58;" (assignment_expression "puVar35 = DAT_00040b58" (identifier "puVar35") (= "=") (identifier "DAT_00040b58")) (; ";")) (} "}"))) (for_statement "for (; puVar42 = DAT_00040b54, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)*puVar35) {\n    uVar39 = 0x128;\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      uVar39 = *(uint *)(iVar12 + 0x20) | 0x100;\n    }\n    iVar12 = bfd_get_section_by_name(param_2,puVar35[1]);\n    if (iVar12 != 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t add section \'%s\'";\nLAB_00019591:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n      return 0;\n    }\n    iVar12 = bfd_make_section_with_flags(param_2,puVar35[1],uVar39 | 0x100000);\n    puVar35[5] = iVar12;\n    if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t create section `%s\'";\n      goto LAB_00019591;\n    }\n    iVar12 = bfd_set_section_size(param_2,iVar12,puVar35[3],0);\n    if (iVar12 == 0) goto LAB_00019d5e;\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x14);\n      uVar14 = *(undefined4 *)(iVar12 + 0x10);\n      *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      *(undefined4 *)(iVar31 + 0x24) = uVar14;\n      *(undefined4 *)(iVar31 + 0x28) = uVar13;\n      *(undefined4 *)(iVar31 + 0x1c) = uVar14;\n      *(undefined4 *)(iVar31 + 0x20) = uVar13;\n    }\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x18);\n      *(undefined4 *)(iVar31 + 0x28) = *(undefined4 *)(iVar12 + 0x1c);\n      *(undefined4 *)(iVar31 + 0x24) = uVar13;\n    }\n  }" (for "for") (( "(") (; ";") (comma_expression "puVar42 = DAT_00040b54, puVar35 != (undefined4 *)0x0" (assignment_expression "puVar42 = DAT_00040b54" (identifier "puVar42") (= "=") (identifier "DAT_00040b54")) (, ",") (binary_expression "puVar35 != (undefined4 *)0x0" (identifier "puVar35") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";") (assignment_expression "puVar35 = (undefined4 *)*puVar35" (identifier "puVar35") (= "=") (cast_expression "(undefined4 *)*puVar35" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar35" (* "*") (identifier "puVar35")))) () ")") (compound_statement "{\n    uVar39 = 0x128;\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      uVar39 = *(uint *)(iVar12 + 0x20) | 0x100;\n    }\n    iVar12 = bfd_get_section_by_name(param_2,puVar35[1]);\n    if (iVar12 != 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t add section \'%s\'";\nLAB_00019591:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n      return 0;\n    }\n    iVar12 = bfd_make_section_with_flags(param_2,puVar35[1],uVar39 | 0x100000);\n    puVar35[5] = iVar12;\n    if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t create section `%s\'";\n      goto LAB_00019591;\n    }\n    iVar12 = bfd_set_section_size(param_2,iVar12,puVar35[3],0);\n    if (iVar12 == 0) goto LAB_00019d5e;\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x14);\n      uVar14 = *(undefined4 *)(iVar12 + 0x10);\n      *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      *(undefined4 *)(iVar31 + 0x24) = uVar14;\n      *(undefined4 *)(iVar31 + 0x28) = uVar13;\n      *(undefined4 *)(iVar31 + 0x1c) = uVar14;\n      *(undefined4 *)(iVar31 + 0x20) = uVar13;\n    }\n    iVar12 = FUN_00016a30();\n    if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x18);\n      *(undefined4 *)(iVar31 + 0x28) = *(undefined4 *)(iVar12 + 0x1c);\n      *(undefined4 *)(iVar31 + 0x24) = uVar13;\n    }\n  }" ({ "{") (expression_statement "uVar39 = 0x128;" (assignment_expression "uVar39 = 0x128" (identifier "uVar39") (= "=") (number_literal "0x128")) (; ";")) (expression_statement "iVar12 = FUN_00016a30();" (assignment_expression "iVar12 = FUN_00016a30()" (identifier "iVar12") (= "=") (call_expression "FUN_00016a30()" (identifier "FUN_00016a30") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar12 != 0) {\n      uVar39 = *(uint *)(iVar12 + 0x20) | 0x100;\n    }" (if "if") (parenthesized_expression "(iVar12 != 0)" (( "(") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar39 = *(uint *)(iVar12 + 0x20) | 0x100;\n    }" ({ "{") (expression_statement "uVar39 = *(uint *)(iVar12 + 0x20) | 0x100;" (assignment_expression "uVar39 = *(uint *)(iVar12 + 0x20) | 0x100" (identifier "uVar39") (= "=") (binary_expression "*(uint *)(iVar12 + 0x20) | 0x100" (pointer_expression "*(uint *)(iVar12 + 0x20)" (* "*") (cast_expression "(uint *)(iVar12 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x20)" (( "(") (binary_expression "iVar12 + 0x20" (identifier "iVar12") (+ "+") (number_literal "0x20")) () ")")))) (| "|") (number_literal "0x100"))) (; ";")) (} "}"))) (expression_statement "iVar12 = bfd_get_section_by_name(param_2,puVar35[1]);" (assignment_expression "iVar12 = bfd_get_section_by_name(param_2,puVar35[1])" (identifier "iVar12") (= "=") (call_expression "bfd_get_section_by_name(param_2,puVar35[1])" (identifier "bfd_get_section_by_name") (argument_list "(param_2,puVar35[1])" (( "(") (identifier "param_2") (, ",") (subscript_expression "puVar35[1]" (identifier "puVar35") ([ "[") (number_literal "1") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar12 != 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t add section \'%s\'";\nLAB_00019591:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar12 != 0)" (( "(") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t add section \'%s\'";\nLAB_00019591:\n      uVar14 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n      return 0;\n    }" ({ "{") (expression_statement "uVar13 = puVar35[1];" (assignment_expression "uVar13 = puVar35[1]" (identifier "uVar13") (= "=") (subscript_expression "puVar35[1]" (identifier "puVar35") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pcVar25 = "can\'t add section \'%s\'";" (assignment_expression "pcVar25 = "can\'t add section \'%s\'"" (identifier "pcVar25") (= "=") (string_literal ""can\'t add section \'%s\'"" (" """) (string_content "can") (escape_sequence "\'") (string_content "t add section ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (" """))) (; ";")) (labeled_statement "LAB_00019591:\n      uVar14 = dcgettext(0,pcVar25,5);" (statement_identifier "LAB_00019591") (: ":") (expression_statement "uVar14 = dcgettext(0,pcVar25,5);" (assignment_expression "uVar14 = dcgettext(0,pcVar25,5)" (identifier "uVar14") (= "=") (call_expression "dcgettext(0,pcVar25,5)" (identifier "dcgettext") (argument_list "(0,pcVar25,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar25") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_0002d3a0(0,param_2,0,uVar14,uVar13);" (call_expression "FUN_0002d3a0(0,param_2,0,uVar14,uVar13)" (identifier "FUN_0002d3a0") (argument_list "(0,param_2,0,uVar14,uVar13)" (( "(") (number_literal "0") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "uVar14") (, ",") (identifier "uVar13") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar12 = bfd_make_section_with_flags(param_2,puVar35[1],uVar39 | 0x100000);" (assignment_expression "iVar12 = bfd_make_section_with_flags(param_2,puVar35[1],uVar39 | 0x100000)" (identifier "iVar12") (= "=") (call_expression "bfd_make_section_with_flags(param_2,puVar35[1],uVar39 | 0x100000)" (identifier "bfd_make_section_with_flags") (argument_list "(param_2,puVar35[1],uVar39 | 0x100000)" (( "(") (identifier "param_2") (, ",") (subscript_expression "puVar35[1]" (identifier "puVar35") ([ "[") (number_literal "1") (] "]")) (, ",") (binary_expression "uVar39 | 0x100000" (identifier "uVar39") (| "|") (number_literal "0x100000")) () ")")))) (; ";")) (expression_statement "puVar35[5] = iVar12;" (assignment_expression "puVar35[5] = iVar12" (subscript_expression "puVar35[5]" (identifier "puVar35") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "iVar12")) (; ";")) (if_statement "if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t create section `%s\'";\n      goto LAB_00019591;\n    }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar13 = puVar35[1];\n      pcVar25 = "can\'t create section `%s\'";\n      goto LAB_00019591;\n    }" ({ "{") (expression_statement "uVar13 = puVar35[1];" (assignment_expression "uVar13 = puVar35[1]" (identifier "uVar13") (= "=") (subscript_expression "puVar35[1]" (identifier "puVar35") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pcVar25 = "can\'t create section `%s\'";" (assignment_expression "pcVar25 = "can\'t create section `%s\'"" (identifier "pcVar25") (= "=") (string_literal ""can\'t create section `%s\'"" (" """) (string_content "can") (escape_sequence "\'") (string_content "t create section `%s") (escape_sequence "\'") (" """))) (; ";")) (goto_statement "goto LAB_00019591;" (goto "goto") (statement_identifier "LAB_00019591") (; ";")) (} "}"))) (expression_statement "iVar12 = bfd_set_section_size(param_2,iVar12,puVar35[3],0);" (assignment_expression "iVar12 = bfd_set_section_size(param_2,iVar12,puVar35[3],0)" (identifier "iVar12") (= "=") (call_expression "bfd_set_section_size(param_2,iVar12,puVar35[3],0)" (identifier "bfd_set_section_size") (argument_list "(param_2,iVar12,puVar35[3],0)" (( "(") (identifier "param_2") (, ",") (identifier "iVar12") (, ",") (subscript_expression "puVar35[3]" (identifier "puVar35") ([ "[") (number_literal "3") (] "]")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar12 == 0) goto LAB_00019d5e;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00019d5e;" (goto "goto") (statement_identifier "LAB_00019d5e") (; ";"))) (expression_statement "iVar12 = FUN_00016a30();" (assignment_expression "iVar12 = FUN_00016a30()" (identifier "iVar12") (= "=") (call_expression "FUN_00016a30()" (identifier "FUN_00016a30") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x14);\n      uVar14 = *(undefined4 *)(iVar12 + 0x10);\n      *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      *(undefined4 *)(iVar31 + 0x24) = uVar14;\n      *(undefined4 *)(iVar31 + 0x28) = uVar13;\n      *(undefined4 *)(iVar31 + 0x1c) = uVar14;\n      *(undefined4 *)(iVar31 + 0x20) = uVar13;\n    }" (if "if") (parenthesized_expression "(iVar12 != 0)" (( "(") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x14);\n      uVar14 = *(undefined4 *)(iVar12 + 0x10);\n      *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      *(undefined4 *)(iVar31 + 0x24) = uVar14;\n      *(undefined4 *)(iVar31 + 0x28) = uVar13;\n      *(undefined4 *)(iVar31 + 0x1c) = uVar14;\n      *(undefined4 *)(iVar31 + 0x20) = uVar13;\n    }" ({ "{") (expression_statement "iVar31 = puVar35[5];" (assignment_expression "iVar31 = puVar35[5]" (identifier "iVar31") (= "=") (subscript_expression "puVar35[5]" (identifier "puVar35") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "uVar13 = *(undefined4 *)(iVar12 + 0x14);" (assignment_expression "uVar13 = *(undefined4 *)(iVar12 + 0x14)" (identifier "uVar13") (= "=") (pointer_expression "*(undefined4 *)(iVar12 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x14)" (( "(") (binary_expression "iVar12 + 0x14" (identifier "iVar12") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "uVar14 = *(undefined4 *)(iVar12 + 0x10);" (assignment_expression "uVar14 = *(undefined4 *)(iVar12 + 0x10)" (identifier "uVar14") (= "=") (pointer_expression "*(undefined4 *)(iVar12 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x10)" (( "(") (binary_expression "iVar12 + 0x10" (identifier "iVar12") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "*(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;" (assignment_expression "*(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1" (pointer_expression "*(byte *)(iVar31 + 0x18)" (* "*") (cast_expression "(byte *)(iVar31 + 0x18)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar31 + 0x18)" (( "(") (binary_expression "iVar31 + 0x18" (identifier "iVar31") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (binary_expression "*(byte *)(iVar31 + 0x18) | 1" (pointer_expression "*(byte *)(iVar31 + 0x18)" (* "*") (cast_expression "(byte *)(iVar31 + 0x18)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar31 + 0x18)" (( "(") (binary_expression "iVar31 + 0x18" (identifier "iVar31") (+ "+") (number_literal "0x18")) () ")")))) (| "|") (number_literal "1"))) (; ";")) (expression_statement "*(undefined4 *)(iVar31 + 0x24) = uVar14;" (assignment_expression "*(undefined4 *)(iVar31 + 0x24) = uVar14" (pointer_expression "*(undefined4 *)(iVar31 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar31 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar31 + 0x24)" (( "(") (binary_expression "iVar31 + 0x24" (identifier "iVar31") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "*(undefined4 *)(iVar31 + 0x28) = uVar13;" (assignment_expression "*(undefined4 *)(iVar31 + 0x28) = uVar13" (pointer_expression "*(undefined4 *)(iVar31 + 0x28)" (* "*") (cast_expression "(undefined4 *)(iVar31 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar31 + 0x28)" (( "(") (binary_expression "iVar31 + 0x28" (identifier "iVar31") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "uVar13")) (; ";")) (expression_statement "*(undefined4 *)(iVar31 + 0x1c) = uVar14;" (assignment_expression "*(undefined4 *)(iVar31 + 0x1c) = uVar14" (pointer_expression "*(undefined4 *)(iVar31 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar31 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar31 + 0x1c)" (( "(") (binary_expression "iVar31 + 0x1c" (identifier "iVar31") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "*(undefined4 *)(iVar31 + 0x20) = uVar13;" (assignment_expression "*(undefined4 *)(iVar31 + 0x20) = uVar13" (pointer_expression "*(undefined4 *)(iVar31 + 0x20)" (* "*") (cast_expression "(undefined4 *)(iVar31 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar31 + 0x20)" (( "(") (binary_expression "iVar31 + 0x20" (identifier "iVar31") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "uVar13")) (; ";")) (} "}"))) (expression_statement "iVar12 = FUN_00016a30();" (assignment_expression "iVar12 = FUN_00016a30()" (identifier "iVar12") (= "=") (call_expression "FUN_00016a30()" (identifier "FUN_00016a30") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar12 != 0) {\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x18);\n      *(undefined4 *)(iVar31 + 0x28) = *(undefined4 *)(iVar12 + 0x1c);\n      *(undefined4 *)(iVar31 + 0x24) = uVar13;\n    }" (if "if") (parenthesized_expression "(iVar12 != 0)" (( "(") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar31 = puVar35[5];\n      uVar13 = *(undefined4 *)(iVar12 + 0x18);\n      *(undefined4 *)(iVar31 + 0x28) = *(undefined4 *)(iVar12 + 0x1c);\n      *(undefined4 *)(iVar31 + 0x24) = uVar13;\n    }" ({ "{") (expression_statement "iVar31 = puVar35[5];" (assignment_expression "iVar31 = puVar35[5]" (identifier "iVar31") (= "=") (subscript_expression "puVar35[5]" (identifier "puVar35") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "uVar13 = *(undefined4 *)(iVar12 + 0x18);" (assignment_expression "uVar13 = *(undefined4 *)(iVar12 + 0x18)" (identifier "uVar13") (= "=") (pointer_expression "*(undefined4 *)(iVar12 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x18)" (( "(") (binary_expression "iVar12 + 0x18" (identifier "iVar12") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar31 + 0x28) = *(undefined4 *)(iVar12 + 0x1c);" (assignment_expression "*(undefined4 *)(iVar31 + 0x28) = *(undefined4 *)(iVar12 + 0x1c)" (pointer_expression "*(undefined4 *)(iVar31 + 0x28)" (* "*") (cast_expression "(undefined4 *)(iVar31 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar31 + 0x28)" (( "(") (binary_expression "iVar31 + 0x28" (identifier "iVar31") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar12 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x1c)" (( "(") (binary_expression "iVar12 + 0x1c" (identifier "iVar12") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar31 + 0x24) = uVar13;" (assignment_expression "*(undefined4 *)(iVar31 + 0x24) = uVar13" (pointer_expression "*(undefined4 *)(iVar31 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar31 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar31 + 0x24)" (( "(") (binary_expression "iVar31 + 0x24" (identifier "iVar31") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (identifier "uVar13")) (; ";")) (} "}"))) (} "}"))) (for_statement "for (; local_6c = param_2, puVar42 != (undefined4 *)0x0; puVar42 = (undefined4 *)*puVar42) {\n    iVar12 = bfd_get_section_by_name(param_1,puVar42[1]);\n    puVar42[5] = iVar12;\n    if (iVar12 == 0) {\n      uVar13 = puVar42[1];\n      pcVar25 = "error: %s not found, can\'t be updated";\n      goto LAB_00018f38;\n    }\n    psVar43 = *(size_t **)(iVar12 + 0x54);\n    iVar12 = bfd_set_section_size(param_2,psVar43,puVar42[3],0);\n    if (iVar12 == 0) goto LAB_00019fa0;\n  }" (for "for") (( "(") (; ";") (comma_expression "local_6c = param_2, puVar42 != (undefined4 *)0x0" (assignment_expression "local_6c = param_2" (identifier "local_6c") (= "=") (identifier "param_2")) (, ",") (binary_expression "puVar42 != (undefined4 *)0x0" (identifier "puVar42") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";") (assignment_expression "puVar42 = (undefined4 *)*puVar42" (identifier "puVar42") (= "=") (cast_expression "(undefined4 *)*puVar42" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar42" (* "*") (identifier "puVar42")))) () ")") (compound_statement "{\n    iVar12 = bfd_get_section_by_name(param_1,puVar42[1]);\n    puVar42[5] = iVar12;\n    if (iVar12 == 0) {\n      uVar13 = puVar42[1];\n      pcVar25 = "error: %s not found, can\'t be updated";\n      goto LAB_00018f38;\n    }\n    psVar43 = *(size_t **)(iVar12 + 0x54);\n    iVar12 = bfd_set_section_size(param_2,psVar43,puVar42[3],0);\n    if (iVar12 == 0) goto LAB_00019fa0;\n  }" ({ "{") (expression_statement "iVar12 = bfd_get_section_by_name(param_1,puVar42[1]);" (assignment_expression "iVar12 = bfd_get_section_by_name(param_1,puVar42[1])" (identifier "iVar12") (= "=") (call_expression "bfd_get_section_by_name(param_1,puVar42[1])" (identifier "bfd_get_section_by_name") (argument_list "(param_1,puVar42[1])" (( "(") (identifier "param_1") (, ",") (subscript_expression "puVar42[1]" (identifier "puVar42") ([ "[") (number_literal "1") (] "]")) () ")")))) (; ";")) (expression_statement "puVar42[5] = iVar12;" (assignment_expression "puVar42[5] = iVar12" (subscript_expression "puVar42[5]" (identifier "puVar42") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "iVar12")) (; ";")) (if_statement "if (iVar12 == 0) {\n      uVar13 = puVar42[1];\n      pcVar25 = "error: %s not found, can\'t be updated";\n      goto LAB_00018f38;\n    }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar13 = puVar42[1];\n      pcVar25 = "error: %s not found, can\'t be updated";\n      goto LAB_00018f38;\n    }" ({ "{") (expression_statement "uVar13 = puVar42[1];" (assignment_expression "uVar13 = puVar42[1]" (identifier "uVar13") (= "=") (subscript_expression "puVar42[1]" (identifier "puVar42") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pcVar25 = "error: %s not found, can\'t be updated";" (assignment_expression "pcVar25 = "error: %s not found, can\'t be updated"" (identifier "pcVar25") (= "=") (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_00018f38;" (goto "goto") (statement_identifier "LAB_00018f38") (; ";")) (} "}"))) (expression_statement "psVar43 = *(size_t **)(iVar12 + 0x54);" (assignment_expression "psVar43 = *(size_t **)(iVar12 + 0x54)" (identifier "psVar43") (= "=") (pointer_expression "*(size_t **)(iVar12 + 0x54)" (* "*") (cast_expression "(size_t **)(iVar12 + 0x54)" (( "(") (type_descriptor "size_t **" (primitive_type "size_t") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar12 + 0x54)" (( "(") (binary_expression "iVar12 + 0x54" (identifier "iVar12") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (expression_statement "iVar12 = bfd_set_section_size(param_2,psVar43,puVar42[3],0);" (assignment_expression "iVar12 = bfd_set_section_size(param_2,psVar43,puVar42[3],0)" (identifier "iVar12") (= "=") (call_expression "bfd_set_section_size(param_2,psVar43,puVar42[3],0)" (identifier "bfd_set_section_size") (argument_list "(param_2,psVar43,puVar42[3],0)" (( "(") (identifier "param_2") (, ",") (identifier "psVar43") (, ",") (subscript_expression "puVar42[3]" (identifier "puVar42") ([ "[") (number_literal "3") (] "]")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar12 == 0) goto LAB_00019fa0;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00019fa0;" (goto "goto") (statement_identifier "LAB_00019fa0") (; ";"))) (} "}"))) (if_statement "if ((((DAT_00040bc4 != 0) &&\n       (iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0)) &&\n      (DAT_00040bc4 != 0)) &&\n     ((*(int *)(*(int *)((int)param_1 + 4) + 4) == 5 && (iVar31 = FUN_000176d0(), iVar31 != 0)))) {\n    uVar39 = *(uint *)(iVar12 + 0x30);\n    sVar22 = *(size_t *)(iVar12 + 0x2c);\n    if (uVar39 == 0 && sVar22 == 0) {\n      uVar13 = dcgettext(0,"warning: note section is empty",5,sVar22);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n      DAT_00040bc4 = 0;\n    }\n    else {\n      iVar31 = bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22);\n      pvVar6 = DAT_00040bc0;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"warning: could not load note section",5,0);\n        FUN_0002d3a0(0,param_1,iVar12,uVar13);\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n      }\n      else {\n        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);\n        sVar23 = extraout_ECX_01;\n        pvVar26 = param_1;\n        if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar52 = (void *)0x30;\n        sVar53 = sVar23;\n        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);\n        local_74 = (size_t *)xcalloc(uVar13);\n        local_bc = 0;\n        sVar54 = 0;\n        local_b8 = 0;\n        sVar55 = 0;\n        local_84 = (int *)0x0;\n        local_a8 = (size_t *)0x0;\n        local_a4 = 0;\n        pvVar26 = pvVar6;\n        psVar43 = local_74;\n        local_7c = sVar22;\n        local_78 = uVar39;\n        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }\n        if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        DAT_00040bb8 = 0;\n        DAT_00040bbc = 0;\n      }\n    }\n  }" (if "if") (parenthesized_expression "((((DAT_00040bc4 != 0) &&\n       (iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0)) &&\n      (DAT_00040bc4 != 0)) &&\n     ((*(int *)(*(int *)((int)param_1 + 4) + 4) == 5 && (iVar31 = FUN_000176d0(), iVar31 != 0))))" (( "(") (binary_expression "(((DAT_00040bc4 != 0) &&\n       (iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0)) &&\n      (DAT_00040bc4 != 0)) &&\n     ((*(int *)(*(int *)((int)param_1 + 4) + 4) == 5 && (iVar31 = FUN_000176d0(), iVar31 != 0)))" (parenthesized_expression "(((DAT_00040bc4 != 0) &&\n       (iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0)) &&\n      (DAT_00040bc4 != 0))" (( "(") (binary_expression "((DAT_00040bc4 != 0) &&\n       (iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0)) &&\n      (DAT_00040bc4 != 0)" (parenthesized_expression "((DAT_00040bc4 != 0) &&\n       (iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0))" (( "(") (binary_expression "(DAT_00040bc4 != 0) &&\n       (iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0)" (parenthesized_expression "(DAT_00040bc4 != 0)" (( "(") (binary_expression "DAT_00040bc4 != 0" (identifier "DAT_00040bc4") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0)" (( "(") (comma_expression "iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0" (assignment_expression "iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes")" (identifier "iVar12") (= "=") (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 "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(DAT_00040bc4 != 0)" (( "(") (binary_expression "DAT_00040bc4 != 0" (identifier "DAT_00040bc4") (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(int *)(*(int *)((int)param_1 + 4) + 4) == 5 && (iVar31 = FUN_000176d0(), iVar31 != 0)))" (( "(") (parenthesized_expression "(*(int *)(*(int *)((int)param_1 + 4) + 4) == 5 && (iVar31 = FUN_000176d0(), iVar31 != 0))" (( "(") (binary_expression "*(int *)(*(int *)((int)param_1 + 4) + 4) == 5 && (iVar31 = FUN_000176d0(), iVar31 != 0)" (binary_expression "*(int *)(*(int *)((int)param_1 + 4) + 4) == 5" (pointer_expression "*(int *)(*(int *)((int)param_1 + 4) + 4)" (* "*") (cast_expression "(int *)(*(int *)((int)param_1 + 4) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)((int)param_1 + 4) + 4)" (( "(") (binary_expression "*(int *)((int)param_1 + 4) + 4" (pointer_expression "*(int *)((int)param_1 + 4)" (* "*") (cast_expression "(int *)((int)param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 4)" (( "(") (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "5")) (&& "&&") (parenthesized_expression "(iVar31 = FUN_000176d0(), iVar31 != 0)" (( "(") (comma_expression "iVar31 = FUN_000176d0(), iVar31 != 0" (assignment_expression "iVar31 = FUN_000176d0()" (identifier "iVar31") (= "=") (call_expression "FUN_000176d0()" (identifier "FUN_000176d0") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar31 != 0" (identifier "iVar31") (!= "!=") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n    uVar39 = *(uint *)(iVar12 + 0x30);\n    sVar22 = *(size_t *)(iVar12 + 0x2c);\n    if (uVar39 == 0 && sVar22 == 0) {\n      uVar13 = dcgettext(0,"warning: note section is empty",5,sVar22);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n      DAT_00040bc4 = 0;\n    }\n    else {\n      iVar31 = bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22);\n      pvVar6 = DAT_00040bc0;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"warning: could not load note section",5,0);\n        FUN_0002d3a0(0,param_1,iVar12,uVar13);\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n      }\n      else {\n        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);\n        sVar23 = extraout_ECX_01;\n        pvVar26 = param_1;\n        if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar52 = (void *)0x30;\n        sVar53 = sVar23;\n        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);\n        local_74 = (size_t *)xcalloc(uVar13);\n        local_bc = 0;\n        sVar54 = 0;\n        local_b8 = 0;\n        sVar55 = 0;\n        local_84 = (int *)0x0;\n        local_a8 = (size_t *)0x0;\n        local_a4 = 0;\n        pvVar26 = pvVar6;\n        psVar43 = local_74;\n        local_7c = sVar22;\n        local_78 = uVar39;\n        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }\n        if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        DAT_00040bb8 = 0;\n        DAT_00040bbc = 0;\n      }\n    }\n  }" ({ "{") (expression_statement "uVar39 = *(uint *)(iVar12 + 0x30);" (assignment_expression "uVar39 = *(uint *)(iVar12 + 0x30)" (identifier "uVar39") (= "=") (pointer_expression "*(uint *)(iVar12 + 0x30)" (* "*") (cast_expression "(uint *)(iVar12 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x30)" (( "(") (binary_expression "iVar12 + 0x30" (identifier "iVar12") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "sVar22 = *(size_t *)(iVar12 + 0x2c);" (assignment_expression "sVar22 = *(size_t *)(iVar12 + 0x2c)" (identifier "sVar22") (= "=") (pointer_expression "*(size_t *)(iVar12 + 0x2c)" (* "*") (cast_expression "(size_t *)(iVar12 + 0x2c)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x2c)" (( "(") (binary_expression "iVar12 + 0x2c" (identifier "iVar12") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (if_statement "if (uVar39 == 0 && sVar22 == 0) {\n      uVar13 = dcgettext(0,"warning: note section is empty",5,sVar22);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n      DAT_00040bc4 = 0;\n    }\n    else {\n      iVar31 = bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22);\n      pvVar6 = DAT_00040bc0;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"warning: could not load note section",5,0);\n        FUN_0002d3a0(0,param_1,iVar12,uVar13);\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n      }\n      else {\n        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);\n        sVar23 = extraout_ECX_01;\n        pvVar26 = param_1;\n        if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar52 = (void *)0x30;\n        sVar53 = sVar23;\n        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);\n        local_74 = (size_t *)xcalloc(uVar13);\n        local_bc = 0;\n        sVar54 = 0;\n        local_b8 = 0;\n        sVar55 = 0;\n        local_84 = (int *)0x0;\n        local_a8 = (size_t *)0x0;\n        local_a4 = 0;\n        pvVar26 = pvVar6;\n        psVar43 = local_74;\n        local_7c = sVar22;\n        local_78 = uVar39;\n        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }\n        if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        DAT_00040bb8 = 0;\n        DAT_00040bbc = 0;\n      }\n    }" (if "if") (parenthesized_expression "(uVar39 == 0 && sVar22 == 0)" (( "(") (binary_expression "uVar39 == 0 && sVar22 == 0" (binary_expression "uVar39 == 0" (identifier "uVar39") (== "==") (number_literal "0")) (&& "&&") (binary_expression "sVar22 == 0" (identifier "sVar22") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n      uVar13 = dcgettext(0,"warning: note section is empty",5,sVar22);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n      DAT_00040bc4 = 0;\n    }" ({ "{") (expression_statement "uVar13 = dcgettext(0,"warning: note section is empty",5,sVar22);" (assignment_expression "uVar13 = dcgettext(0,"warning: note section is empty",5,sVar22)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,"warning: note section is empty",5,sVar22)" (identifier "dcgettext") (argument_list "(0,"warning: note section is empty",5,sVar22)" (( "(") (number_literal "0") (, ",") (string_literal ""warning: note section is empty"" (" """) (string_content "warning: note section is empty") (" """)) (, ",") (number_literal "5") (, ",") (identifier "sVar22") () ")")))) (; ";")) (expression_statement "FUN_0002d3a0(0,param_1,iVar12,uVar13);" (call_expression "FUN_0002d3a0(0,param_1,iVar12,uVar13)" (identifier "FUN_0002d3a0") (argument_list "(0,param_1,iVar12,uVar13)" (( "(") (number_literal "0") (, ",") (identifier "param_1") (, ",") (identifier "iVar12") (, ",") (identifier "uVar13") () ")"))) (; ";")) (expression_statement "DAT_00040bc4 = 0;" (assignment_expression "DAT_00040bc4 = 0" (identifier "DAT_00040bc4") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      iVar31 = bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22);\n      pvVar6 = DAT_00040bc0;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"warning: could not load note section",5,0);\n        FUN_0002d3a0(0,param_1,iVar12,uVar13);\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n      }\n      else {\n        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);\n        sVar23 = extraout_ECX_01;\n        pvVar26 = param_1;\n        if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar52 = (void *)0x30;\n        sVar53 = sVar23;\n        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);\n        local_74 = (size_t *)xcalloc(uVar13);\n        local_bc = 0;\n        sVar54 = 0;\n        local_b8 = 0;\n        sVar55 = 0;\n        local_84 = (int *)0x0;\n        local_a8 = (size_t *)0x0;\n        local_a4 = 0;\n        pvVar26 = pvVar6;\n        psVar43 = local_74;\n        local_7c = sVar22;\n        local_78 = uVar39;\n        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }\n        if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        DAT_00040bb8 = 0;\n        DAT_00040bbc = 0;\n      }\n    }" (else "else") (compound_statement "{\n      iVar31 = bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22);\n      pvVar6 = DAT_00040bc0;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"warning: could not load note section",5,0);\n        FUN_0002d3a0(0,param_1,iVar12,uVar13);\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n      }\n      else {\n        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);\n        sVar23 = extraout_ECX_01;\n        pvVar26 = param_1;\n        if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar52 = (void *)0x30;\n        sVar53 = sVar23;\n        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);\n        local_74 = (size_t *)xcalloc(uVar13);\n        local_bc = 0;\n        sVar54 = 0;\n        local_b8 = 0;\n        sVar55 = 0;\n        local_84 = (int *)0x0;\n        local_a8 = (size_t *)0x0;\n        local_a4 = 0;\n        pvVar26 = pvVar6;\n        psVar43 = local_74;\n        local_7c = sVar22;\n        local_78 = uVar39;\n        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }\n        if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        DAT_00040bb8 = 0;\n        DAT_00040bbc = 0;\n      }\n    }" ({ "{") (expression_statement "iVar31 = bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22);" (assignment_expression "iVar31 = bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22)" (identifier "iVar31") (= "=") (call_expression "bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22)" (identifier "bfd_get_full_section_contents") (argument_list "(param_1,iVar12,&DAT_00040bc0,sVar22)" (( "(") (identifier "param_1") (, ",") (identifier "iVar12") (, ",") (pointer_expression "&DAT_00040bc0" (& "&") (identifier "DAT_00040bc0")) (, ",") (identifier "sVar22") () ")")))) (; ";")) (expression_statement "pvVar6 = DAT_00040bc0;" (assignment_expression "pvVar6 = DAT_00040bc0" (identifier "pvVar6") (= "=") (identifier "DAT_00040bc0")) (; ";")) (if_statement "if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"warning: could not load note section",5,0);\n        FUN_0002d3a0(0,param_1,iVar12,uVar13);\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n      }\n      else {\n        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);\n        sVar23 = extraout_ECX_01;\n        pvVar26 = param_1;\n        if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar52 = (void *)0x30;\n        sVar53 = sVar23;\n        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);\n        local_74 = (size_t *)xcalloc(uVar13);\n        local_bc = 0;\n        sVar54 = 0;\n        local_b8 = 0;\n        sVar55 = 0;\n        local_84 = (int *)0x0;\n        local_a8 = (size_t *)0x0;\n        local_a4 = 0;\n        pvVar26 = pvVar6;\n        psVar43 = local_74;\n        local_7c = sVar22;\n        local_78 = uVar39;\n        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }\n        if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        DAT_00040bb8 = 0;\n        DAT_00040bbc = 0;\n      }" (if "if") (parenthesized_expression "(iVar31 == 0)" (( "(") (binary_expression "iVar31 == 0" (identifier "iVar31") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar13 = dcgettext(0,"warning: could not load note section",5,0);\n        FUN_0002d3a0(0,param_1,iVar12,uVar13);\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n      }" ({ "{") (expression_statement "uVar13 = dcgettext(0,"warning: could not load note section",5,0);" (assignment_expression "uVar13 = dcgettext(0,"warning: could not load note section",5,0)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,"warning: could not load note section",5,0)" (identifier "dcgettext") (argument_list "(0,"warning: could not load note section",5,0)" (( "(") (number_literal "0") (, ",") (string_literal ""warning: could not load note section"" (" """) (string_content "warning: could not load note section") (" """)) (, ",") (number_literal "5") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "FUN_0002d3a0(0,param_1,iVar12,uVar13);" (call_expression "FUN_0002d3a0(0,param_1,iVar12,uVar13)" (identifier "FUN_0002d3a0") (argument_list "(0,param_1,iVar12,uVar13)" (( "(") (number_literal "0") (, ",") (identifier "param_1") (, ",") (identifier "iVar12") (, ",") (identifier "uVar13") () ")"))) (; ";")) (expression_statement "free(DAT_00040bc0);" (call_expression "free(DAT_00040bc0)" (identifier "free") (argument_list "(DAT_00040bc0)" (( "(") (identifier "DAT_00040bc0") () ")"))) (; ";")) (expression_statement "DAT_00040bc0 = (void *)0x0;" (assignment_expression "DAT_00040bc0 = (void *)0x0" (identifier "DAT_00040bc0") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "DAT_00040bc4 = 0;" (assignment_expression "DAT_00040bc4 = 0" (identifier "DAT_00040bc4") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);\n        sVar23 = extraout_ECX_01;\n        pvVar26 = param_1;\n        if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar52 = (void *)0x30;\n        sVar53 = sVar23;\n        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);\n        local_74 = (size_t *)xcalloc(uVar13);\n        local_bc = 0;\n        sVar54 = 0;\n        local_b8 = 0;\n        sVar55 = 0;\n        local_84 = (int *)0x0;\n        local_a8 = (size_t *)0x0;\n        local_a4 = 0;\n        pvVar26 = pvVar6;\n        psVar43 = local_74;\n        local_7c = sVar22;\n        local_78 = uVar39;\n        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }\n        if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        DAT_00040bb8 = 0;\n        DAT_00040bbc = 0;\n      }" (else "else") (compound_statement "{\n        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);\n        sVar23 = extraout_ECX_01;\n        pvVar26 = param_1;\n        if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }\nLAB_0001ab09:\n        pvVar52 = (void *)0x30;\n        sVar53 = sVar23;\n        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);\n        local_74 = (size_t *)xcalloc(uVar13);\n        local_bc = 0;\n        sVar54 = 0;\n        local_b8 = 0;\n        sVar55 = 0;\n        local_84 = (int *)0x0;\n        local_a8 = (size_t *)0x0;\n        local_a4 = 0;\n        pvVar26 = pvVar6;\n        psVar43 = local_74;\n        local_7c = sVar22;\n        local_78 = uVar39;\n        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }\n        if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        DAT_00040bb8 = 0;\n        DAT_00040bbc = 0;\n      }" ({ "{") (expression_statement "iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);" (assignment_expression "iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12)" (identifier "iVar31") (= "=") (call_expression "bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12)" (identifier "bfd_get_reloc_upper_bound") (argument_list "(param_1,iVar12,iVar12,iVar12)" (( "(") (identifier "param_1") (, ",") (identifier "iVar12") (, ",") (identifier "iVar12") (, ",") (identifier "iVar12") () ")")))) (; ";")) (expression_statement "sVar23 = extraout_ECX_01;" (assignment_expression "sVar23 = extraout_ECX_01" (identifier "sVar23") (= "=") (identifier "extraout_ECX_01")) (; ";")) (expression_statement "pvVar26 = param_1;" (assignment_expression "pvVar26 = param_1" (identifier "pvVar26") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (0 < iVar31) {\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }" (if "if") (parenthesized_expression "(0 < iVar31)" (( "(") (binary_expression "0 < iVar31" (number_literal "0") (< "<") (identifier "iVar31")) () ")")) (compound_statement "{\n          pvVar26 = (void *)xmalloc(iVar31);\n          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);\n          free(pvVar26);\n          sVar23 = extraout_ECX_02;\n          if (iVar31 == 0) goto LAB_0001ab09;\n          local_74 = (size_t *)0x0;\n          goto LAB_0001ae41;\n        }" ({ "{") (expression_statement "pvVar26 = (void *)xmalloc(iVar31);" (assignment_expression "pvVar26 = (void *)xmalloc(iVar31)" (identifier "pvVar26") (= "=") (cast_expression "(void *)xmalloc(iVar31)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(iVar31)" (identifier "xmalloc") (argument_list "(iVar31)" (( "(") (identifier "iVar31") () ")"))))) (; ";")) (expression_statement "iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);" (assignment_expression "iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc)" (identifier "iVar31") (= "=") (call_expression "bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc)" (identifier "bfd_canonicalize_reloc") (argument_list "(param_1,iVar12,pvVar26,DAT_00040bdc)" (( "(") (identifier "param_1") (, ",") (identifier "iVar12") (, ",") (identifier "pvVar26") (, ",") (identifier "DAT_00040bdc") () ")")))) (; ";")) (expression_statement "free(pvVar26);" (call_expression "free(pvVar26)" (identifier "free") (argument_list "(pvVar26)" (( "(") (identifier "pvVar26") () ")"))) (; ";")) (expression_statement "sVar23 = extraout_ECX_02;" (assignment_expression "sVar23 = extraout_ECX_02" (identifier "sVar23") (= "=") (identifier "extraout_ECX_02")) (; ";")) (if_statement "if (iVar31 == 0) goto LAB_0001ab09;" (if "if") (parenthesized_expression "(iVar31 == 0)" (( "(") (binary_expression "iVar31 == 0" (identifier "iVar31") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001ab09;" (goto "goto") (statement_identifier "LAB_0001ab09") (; ";"))) (expression_statement "local_74 = (size_t *)0x0;" (assignment_expression "local_74 = (size_t *)0x0" (identifier "local_74") (= "=") (cast_expression "(size_t *)0x0" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_0001ae41;" (goto "goto") (statement_identifier "LAB_0001ae41") (; ";")) (} "}"))) (labeled_statement "LAB_0001ab09:\n        pvVar52 = (void *)0x30;" (statement_identifier "LAB_0001ab09") (: ":") (expression_statement "pvVar52 = (void *)0x30;" (assignment_expression "pvVar52 = (void *)0x30" (identifier "pvVar52") (= "=") (cast_expression "(void *)0x30" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x30"))) (; ";"))) (expression_statement "sVar53 = sVar23;" (assignment_expression "sVar53 = sVar23" (identifier "sVar53") (= "=") (identifier "sVar23")) (; ";")) (expression_statement "uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);" (assignment_expression "uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23)" (identifier "uVar13") (= "=") (call_expression "FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23)" (identifier "FUN_0002e730") (argument_list "(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23)" (( "(") (identifier "sVar22") (, ",") (identifier "uVar39") (, ",") (number_literal "0xc") (, ",") (number_literal "0") (, ",") (identifier "pvVar26") (, ",") (number_literal "0x30") (, ",") (identifier "sVar23") (, ",") (identifier "sVar23") () ")")))) (; ";")) (expression_statement "local_74 = (size_t *)xcalloc(uVar13);" (assignment_expression "local_74 = (size_t *)xcalloc(uVar13)" (identifier "local_74") (= "=") (cast_expression "(size_t *)xcalloc(uVar13)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xcalloc(uVar13)" (identifier "xcalloc") (argument_list "(uVar13)" (( "(") (identifier "uVar13") () ")"))))) (; ";")) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" (identifier "local_bc") (= "=") (number_literal "0")) (; ";")) (expression_statement "sVar54 = 0;" (assignment_expression "sVar54 = 0" (identifier "sVar54") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" (identifier "local_b8") (= "=") (number_literal "0")) (; ";")) (expression_statement "sVar55 = 0;" (assignment_expression "sVar55 = 0" (identifier "sVar55") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_84 = (int *)0x0;" (assignment_expression "local_84 = (int *)0x0" (identifier "local_84") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_a8 = (size_t *)0x0;" (assignment_expression "local_a8 = (size_t *)0x0" (identifier "local_a8") (= "=") (cast_expression "(size_t *)0x0" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" (identifier "local_a4") (= "=") (number_literal "0")) (; ";")) (expression_statement "pvVar26 = pvVar6;" (assignment_expression "pvVar26 = pvVar6" (identifier "pvVar26") (= "=") (identifier "pvVar6")) (; ";")) (expression_statement "psVar43 = local_74;" (assignment_expression "psVar43 = local_74" (identifier "psVar43") (= "=") (identifier "local_74")) (; ";")) (expression_statement "local_7c = sVar22;" (assignment_expression "local_7c = sVar22" (identifier "local_7c") (= "=") (identifier "sVar22")) (; ";")) (expression_statement "local_78 = uVar39;" (assignment_expression "local_78 = uVar39" (identifier "local_78") (= "=") (identifier "uVar39")) (; ";")) (while_statement "while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }" (while "while") (parenthesized_expression "(local_78 != 0 || -local_78 < (uint)(0xb < local_7c))" (( "(") (binary_expression "local_78 != 0 || -local_78 < (uint)(0xb < local_7c)" (binary_expression "local_78 != 0" (identifier "local_78") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "-local_78 < (uint)(0xb < local_7c)" (unary_expression "-local_78" (- "-") (identifier "local_78")) (< "<") (call_expression "(uint)(0xb < local_7c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0xb < local_7c)" (( "(") (binary_expression "0xb < local_7c" (number_literal "0xb") (< "<") (identifier "local_7c")) () ")"))))) () ")")) (compound_statement "{\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);\n          uVar17 = iVar31 + 3U & 0xfffffffc;\n          *psVar43 = uVar17;\n          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);\n          uVar27 = iVar31 + 3U & 0xfffffffc;\n          psVar43[1] = uVar27;\n          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);\n          sVar30 = (size_t)uVar49;\n          psVar43[2] = sVar30;\n          if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }\n          uVar37 = uVar17 + 0xc + uVar27;\n          iVar31 = local_78 - (local_7c < uVar37);\n          if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }\n          psVar43[3] = (int)pvVar26 + 0xc;\n          sVar28 = (int)pvVar26 + uVar17 + 0xc;\n          bVar46 = local_7c < uVar37;\n          local_7c = local_7c - uVar37;\n          local_78 = local_78 - bVar46;\n          psVar43[4] = sVar28;\n          bVar3 = *(byte *)((int)pvVar26 + 0xc);\n          uVar44 = (uint)bVar3;\n          if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }\n          if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }\n          if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }\n          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }\n          psVar43 = psVar43 + 0xc;\n          pvVar26 = (void *)(uVar37 + (int)pvVar26);\n        }" ({ "{") (expression_statement "iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);" (assignment_expression "iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26)" (identifier "iVar31") (= "=") (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x28))" (( "(") (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x28)" (* "*") (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x28)" (* "*") (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x28)" (( "(") (binary_expression "*(int *)((int)param_1 + 4) + 0x28" (pointer_expression "*(int *)((int)param_1 + 4)" (* "*") (cast_expression "(int *)((int)param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 4)" (( "(") (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "(pvVar26)" (( "(") (identifier "pvVar26") () ")")))) (; ";")) (expression_statement "uVar17 = iVar31 + 3U & 0xfffffffc;" (assignment_expression "uVar17 = iVar31 + 3U & 0xfffffffc" (identifier "uVar17") (= "=") (binary_expression "iVar31 + 3U & 0xfffffffc" (binary_expression "iVar31 + 3U" (identifier "iVar31") (+ "+") (number_literal "3U")) (& "&") (number_literal "0xfffffffc"))) (; ";")) (expression_statement "*psVar43 = uVar17;" (assignment_expression "*psVar43 = uVar17" (pointer_expression "*psVar43" (* "*") (identifier "psVar43")) (= "=") (identifier "uVar17")) (; ";")) (expression_statement "iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);" (assignment_expression "iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4)" (identifier "iVar31") (= "=") (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x28))" (( "(") (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x28)" (* "*") (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x28)" (* "*") (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x28)" (( "(") (binary_expression "*(int *)((int)param_1 + 4) + 0x28" (pointer_expression "*(int *)((int)param_1 + 4)" (* "*") (cast_expression "(int *)((int)param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 4)" (( "(") (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "((int)pvVar26 + 4)" (( "(") (binary_expression "(int)pvVar26 + 4" (cast_expression "(int)pvVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar26")) (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "uVar27 = iVar31 + 3U & 0xfffffffc;" (assignment_expression "uVar27 = iVar31 + 3U & 0xfffffffc" (identifier "uVar27") (= "=") (binary_expression "iVar31 + 3U & 0xfffffffc" (binary_expression "iVar31 + 3U" (identifier "iVar31") (+ "+") (number_literal "3U")) (& "&") (number_literal "0xfffffffc"))) (; ";")) (expression_statement "psVar43[1] = uVar27;" (assignment_expression "psVar43[1] = uVar27" (subscript_expression "psVar43[1]" (identifier "psVar43") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar27")) (; ";")) (expression_statement "uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);" (assignment_expression "uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8)" (identifier "uVar49") (= "=") (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x28))" (( "(") (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x28)" (* "*") (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x28)" (* "*") (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x28)" (( "(") (binary_expression "*(int *)((int)param_1 + 4) + 0x28" (pointer_expression "*(int *)((int)param_1 + 4)" (* "*") (cast_expression "(int *)((int)param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 4)" (( "(") (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "((int)pvVar26 + 8)" (( "(") (binary_expression "(int)pvVar26 + 8" (cast_expression "(int)pvVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar26")) (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "sVar30 = (size_t)uVar49;" (assignment_expression "sVar30 = (size_t)uVar49" (identifier "sVar30") (= "=") (cast_expression "(size_t)uVar49" (( "(") (type_descriptor "size_t" (primitive_type "size_t")) () ")") (identifier "uVar49"))) (; ";")) (expression_statement "psVar43[2] = sVar30;" (assignment_expression "psVar43[2] = sVar30" (subscript_expression "psVar43[2]" (identifier "psVar43") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "sVar30")) (; ";")) (if_statement "if (1 < sVar30 - 0x100) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }" (if "if") (parenthesized_expression "(1 < sVar30 - 0x100)" (( "(") (binary_expression "1 < sVar30 - 0x100" (number_literal "1") (< "<") (binary_expression "sVar30 - 0x100" (identifier "sVar30") (- "-") (number_literal "0x100"))) () ")")) (compound_statement "{\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));\n            goto LAB_0001ae12;\n          }" ({ "{") (expression_statement "iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20));" (assignment_expression "iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20))" (identifier "iVar31") (= "=") (call_expression "dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20))" (identifier "dcgettext") (argument_list "(0,"corrupt GNU build attribute note: wrong note type",5,\n                               (int)((ulonglong)uVar49 >> 0x20))" (( "(") (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") (, ",") (cast_expression "(int)((ulonglong)uVar49 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar49 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar49 >> 0x20" (cast_expression "(ulonglong)uVar49" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar49")) (>> ">>") (number_literal "0x20")) () ")"))) () ")")))) (; ";")) (goto_statement "goto LAB_0001ae12;" (goto "goto") (statement_identifier "LAB_0001ae12") (; ";")) (} "}"))) (expression_statement "uVar37 = uVar17 + 0xc + uVar27;" (assignment_expression "uVar37 = uVar17 + 0xc + uVar27" (identifier "uVar37") (= "=") (binary_expression "uVar17 + 0xc + uVar27" (binary_expression "uVar17 + 0xc" (identifier "uVar17") (+ "+") (number_literal "0xc")) (+ "+") (identifier "uVar27"))) (; ";")) (expression_statement "iVar31 = local_78 - (local_7c < uVar37);" (assignment_expression "iVar31 = local_78 - (local_7c < uVar37)" (identifier "iVar31") (= "=") (binary_expression "local_78 - (local_7c < uVar37)" (identifier "local_78") (- "-") (parenthesized_expression "(local_7c < uVar37)" (( "(") (binary_expression "local_7c < uVar37" (identifier "local_7c") (< "<") (identifier "uVar37")) () ")")))) (; ";")) (if_statement "if (local_78 < (local_7c < uVar37)) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }" (if "if") (parenthesized_expression "(local_78 < (local_7c < uVar37))" (( "(") (binary_expression "local_78 < (local_7c < uVar37)" (identifier "local_78") (< "<") (parenthesized_expression "(local_7c < uVar37)" (( "(") (binary_expression "local_7c < uVar37" (identifier "local_7c") (< "<") (identifier "uVar37")) () ")"))) () ")")) (compound_statement "{\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);\n            goto LAB_0001ae12;\n          }" ({ "{") (expression_statement "iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);" (assignment_expression "iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31)" (identifier "iVar31") (= "=") (call_expression "dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31)" (identifier "dcgettext") (argument_list "(0,"corrupt GNU build attribute note: note too big",5,iVar31)" (( "(") (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") (, ",") (identifier "iVar31") () ")")))) (; ";")) (goto_statement "goto LAB_0001ae12;" (goto "goto") (statement_identifier "LAB_0001ae12") (; ";")) (} "}"))) (if_statement "if (uVar17 < 2) {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }" (if "if") (parenthesized_expression "(uVar17 < 2)" (( "(") (binary_expression "uVar17 < 2" (identifier "uVar17") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);\n            goto LAB_0001ae12;\n          }" ({ "{") (expression_statement "iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);" (assignment_expression "iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31)" (identifier "iVar31") (= "=") (call_expression "dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31)" (identifier "dcgettext") (argument_list "(0,"corrupt GNU build attribute note: name too small",5,iVar31)" (( "(") (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") (, ",") (identifier "iVar31") () ")")))) (; ";")) (goto_statement "goto LAB_0001ae12;" (goto "goto") (statement_identifier "LAB_0001ae12") (; ";")) (} "}"))) (expression_statement "psVar43[3] = (int)pvVar26 + 0xc;" (assignment_expression "psVar43[3] = (int)pvVar26 + 0xc" (subscript_expression "psVar43[3]" (identifier "psVar43") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "(int)pvVar26 + 0xc" (cast_expression "(int)pvVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar26")) (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "sVar28 = (int)pvVar26 + uVar17 + 0xc;" (assignment_expression "sVar28 = (int)pvVar26 + uVar17 + 0xc" (identifier "sVar28") (= "=") (binary_expression "(int)pvVar26 + uVar17 + 0xc" (binary_expression "(int)pvVar26 + uVar17" (cast_expression "(int)pvVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar26")) (+ "+") (identifier "uVar17")) (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "bVar46 = local_7c < uVar37;" (assignment_expression "bVar46 = local_7c < uVar37" (identifier "bVar46") (= "=") (binary_expression "local_7c < uVar37" (identifier "local_7c") (< "<") (identifier "uVar37"))) (; ";")) (expression_statement "local_7c = local_7c - uVar37;" (assignment_expression "local_7c = local_7c - uVar37" (identifier "local_7c") (= "=") (binary_expression "local_7c - uVar37" (identifier "local_7c") (- "-") (identifier "uVar37"))) (; ";")) (expression_statement "local_78 = local_78 - bVar46;" (assignment_expression "local_78 = local_78 - bVar46" (identifier "local_78") (= "=") (binary_expression "local_78 - bVar46" (identifier "local_78") (- "-") (identifier "bVar46"))) (; ";")) (expression_statement "psVar43[4] = sVar28;" (assignment_expression "psVar43[4] = sVar28" (subscript_expression "psVar43[4]" (identifier "psVar43") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "sVar28")) (; ";")) (expression_statement "bVar3 = *(byte *)((int)pvVar26 + 0xc);" (assignment_expression "bVar3 = *(byte *)((int)pvVar26 + 0xc)" (identifier "bVar3") (= "=") (pointer_expression "*(byte *)((int)pvVar26 + 0xc)" (* "*") (cast_expression "(byte *)((int)pvVar26 + 0xc)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar26 + 0xc)" (( "(") (binary_expression "(int)pvVar26 + 0xc" (cast_expression "(int)pvVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar26")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "uVar44 = (uint)bVar3;" (assignment_expression "uVar44 = (uint)bVar3" (identifier "uVar44") (= "=") (cast_expression "(uint)bVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar3"))) (; ";")) (if_statement "if (bVar3 == 0x24) {\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }\n          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }" (if "if") (parenthesized_expression "(bVar3 == 0x24)" (( "(") (binary_expression "bVar3 == 0x24" (identifier "bVar3") (== "==") (number_literal "0x24")) () ")")) (compound_statement "{\n            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }\n          }" ({ "{") (if_statement "if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))\n            {\n              local_a4 = local_a4 + 1;\n            }" (if "if") (parenthesized_expression "((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))" (( "(") (binary_expression "(*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1')" (parenthesized_expression "(*(char *)((int)pvVar26 + 0xd) == '\x01')" (( "(") (binary_expression "*(char *)((int)pvVar26 + 0xd) == '\x01'" (pointer_expression "*(char *)((int)pvVar26 + 0xd)" (* "*") (cast_expression "(char *)((int)pvVar26 + 0xd)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar26 + 0xd)" (( "(") (binary_expression "(int)pvVar26 + 0xd" (cast_expression "(int)pvVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar26")) (+ "+") (number_literal "0xd")) () ")")))) (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)((int)pvVar26 + 0xe) == '1')" (( "(") (binary_expression "*(char *)((int)pvVar26 + 0xe) == '1'" (pointer_expression "*(char *)((int)pvVar26 + 0xe)" (* "*") (cast_expression "(char *)((int)pvVar26 + 0xe)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar26 + 0xe)" (( "(") (binary_expression "(int)pvVar26 + 0xe" (cast_expression "(int)pvVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar26")) (+ "+") (number_literal "0xe")) () ")")))) (== "==") (char_literal "'1'" (' "'") (character "1") (' "'"))) () ")"))) () ")")) (compound_statement "{\n              local_a4 = local_a4 + 1;\n            }" ({ "{") (expression_statement "local_a4 = local_a4 + 1;" (assignment_expression "local_a4 = local_a4 + 1" (identifier "local_a4") (= "=") (binary_expression "local_a4 + 1" (identifier "local_a4") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}")) (else_clause "else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }" (else "else") (if_statement "if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }" (if "if") (parenthesized_expression "((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01'))))" (( "(") (binary_expression "(((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&\n                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))" (parenthesized_expression "(((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A'))" (( "(") (binary_expression "((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')" (parenthesized_expression "((4 < uVar17) && (bVar3 == 0x47))" (( "(") (binary_expression "(4 < uVar17) && (bVar3 == 0x47)" (parenthesized_expression "(4 < uVar17)" (( "(") (binary_expression "4 < uVar17" (number_literal "4") (< "<") (identifier "uVar17")) () ")")) (&& "&&") (parenthesized_expression "(bVar3 == 0x47)" (( "(") (binary_expression "bVar3 == 0x47" (identifier "bVar3") (== "==") (number_literal "0x47")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)((int)pvVar26 + 0xd) == 'A')" (( "(") (binary_expression "*(char *)((int)pvVar26 + 0xd) == 'A'" (pointer_expression "*(char *)((int)pvVar26 + 0xd)" (* "*") (cast_expression "(char *)((int)pvVar26 + 0xd)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar26 + 0xd)" (( "(") (binary_expression "(int)pvVar26 + 0xd" (cast_expression "(int)pvVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar26")) (+ "+") (number_literal "0xd")) () ")")))) (== "==") (char_literal "'A'" (' "'") (character "A") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))" (( "(") (parenthesized_expression "(*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01'))" (( "(") (binary_expression "*(char *)((int)pvVar26 + 0xe) == '$' &&\n                   (*(char *)((int)pvVar26 + 0xf) == '\x01')" (binary_expression "*(char *)((int)pvVar26 + 0xe) == '$'" (pointer_expression "*(char *)((int)pvVar26 + 0xe)" (* "*") (cast_expression "(char *)((int)pvVar26 + 0xe)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar26 + 0xe)" (( "(") (binary_expression "(int)pvVar26 + 0xe" (cast_expression "(int)pvVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar26")) (+ "+") (number_literal "0xe")) () ")")))) (== "==") (char_literal "'$'" (' "'") (character "$") (' "'"))) (&& "&&") (parenthesized_expression "(*(char *)((int)pvVar26 + 0xf) == '\x01')" (( "(") (binary_expression "*(char *)((int)pvVar26 + 0xf) == '\x01'" (pointer_expression "*(char *)((int)pvVar26 + 0xf)" (* "*") (cast_expression "(char *)((int)pvVar26 + 0xf)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar26 + 0xf)" (( "(") (binary_expression "(int)pvVar26 + 0xf" (cast_expression "(int)pvVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar26")) (+ "+") (number_literal "0xf")) () ")")))) (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n            bVar3 = *(byte *)((int)pvVar26 + 0x10);\n            uVar44 = (uint)bVar3;\n            if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }\n          }" ({ "{") (expression_statement "bVar3 = *(byte *)((int)pvVar26 + 0x10);" (assignment_expression "bVar3 = *(byte *)((int)pvVar26 + 0x10)" (identifier "bVar3") (= "=") (pointer_expression "*(byte *)((int)pvVar26 + 0x10)" (* "*") (cast_expression "(byte *)((int)pvVar26 + 0x10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar26 + 0x10)" (( "(") (binary_expression "(int)pvVar26 + 0x10" (cast_expression "(int)pvVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar26")) (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar44 = (uint)bVar3;" (assignment_expression "uVar44 = (uint)bVar3" (identifier "uVar44") (= "=") (cast_expression "(uint)bVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar3"))) (; ";")) (if_statement "if (bVar3 == 0x32) {\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }\n            else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }" (if "if") (parenthesized_expression "(bVar3 == 0x32)" (( "(") (binary_expression "bVar3 == 0x32" (identifier "bVar3") (== "==") (number_literal "0x32")) () ")")) (compound_statement "{\n              local_a8 = (size_t *)((int)local_a8 + 1);\n            }" ({ "{") (expression_statement "local_a8 = (size_t *)((int)local_a8 + 1);" (assignment_expression "local_a8 = (size_t *)((int)local_a8 + 1)" (identifier "local_a8") (= "=") (cast_expression "(size_t *)((int)local_a8 + 1)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a8 + 1)" (( "(") (binary_expression "(int)local_a8 + 1" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }" (else "else") (compound_statement "{\n              if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }\n              local_84 = (int *)((int)local_84 + 1);\n            }" ({ "{") (if_statement "if (bVar3 != 0x33) {\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }" (if "if") (parenthesized_expression "(bVar3 != 0x33)" (( "(") (binary_expression "bVar3 != 0x33" (identifier "bVar3") (!= "!=") (number_literal "0x33")) () ")")) (compound_statement "{\n                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);\n                goto LAB_0001ae12;\n              }" ({ "{") (expression_statement "iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44);" (assignment_expression "iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44)" (identifier "iVar31") (= "=") (call_expression "dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44)" (identifier "dcgettext") (argument_list "(0,"corrupt GNU build attribute note: unsupported version",5,\n                                   uVar44)" (( "(") (number_literal "0") (, ",") (string_literal ""corrupt GNU build attribute note: unsupported version"" (" """) (string_content "corrupt GNU build attribute note: unsupported version") (" """)) (, ",") (number_literal "5") (, ",") (identifier "uVar44") () ")")))) (; ";")) (goto_statement "goto LAB_0001ae12;" (goto "goto") (statement_identifier "LAB_0001ae12") (; ";")) (} "}"))) (expression_statement "local_84 = (int *)((int)local_84 + 1);" (assignment_expression "local_84 = (int *)((int)local_84 + 1)" (identifier "local_84") (= "=") (cast_expression "(int *)((int)local_84 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_84 + 1)" (( "(") (binary_expression "(int)local_84 + 1" (cast_expression "(int)local_84" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_84")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")))) (} "}"))))) (if_statement "if (uVar27 == 4) {\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }\n          else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }" (if "if") (parenthesized_expression "(uVar27 == 4)" (( "(") (binary_expression "uVar27 == 4" (identifier "uVar27") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);\nLAB_0001ade8:\n            lVar51 = -1;\n          }" ({ "{") (expression_statement "lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);" (assignment_expression "lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28)" (identifier "lVar50") (= "=") (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x28))" (( "(") (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x28)" (* "*") (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x28)" (* "*") (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x28)" (( "(") (binary_expression "*(int *)((int)param_1 + 4) + 0x28" (pointer_expression "*(int *)((int)param_1 + 4)" (* "*") (cast_expression "(int *)((int)param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 4)" (( "(") (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "(sVar28)" (( "(") (identifier "sVar28") () ")")))) (; ";")) (labeled_statement "LAB_0001ade8:\n            lVar51 = -1;" (statement_identifier "LAB_0001ade8") (: ":") (expression_statement "lVar51 = -1;" (assignment_expression "lVar51 = -1" (identifier "lVar51") (= "=") (number_literal "-1")) (; ";"))) (} "}")) (else_clause "else if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }" (else "else") (if_statement "if (uVar27 < 5) {\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }\n          else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }" (if "if") (parenthesized_expression "(uVar27 < 5)" (( "(") (binary_expression "uVar27 < 5" (identifier "uVar27") (< "<") (number_literal "5")) () ")")) (compound_statement "{\n            if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }\n            lVar51 = 0;\n            lVar50 = 0;\n          }" ({ "{") (if_statement "if (uVar27 != 0) {\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }" (if "if") (parenthesized_expression "(uVar27 != 0)" (( "(") (binary_expression "uVar27 != 0" (identifier "uVar27") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );\n              goto LAB_0001ae12;\n            }" ({ "{") (labeled_statement "LAB_0001ae8d:\n              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );" (statement_identifier "LAB_0001ae8d") (: ":") (expression_statement "iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                );" (assignment_expression "iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                )" (identifier "iVar31") (= "=") (call_expression "dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                )" (identifier "dcgettext") (argument_list "(0,"corrupt GNU build attribute note: bad description size",5,uVar44\n                                )" (( "(") (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") (, ",") (identifier "uVar44") () ")")))) (; ";"))) (goto_statement "goto LAB_0001ae12;" (goto "goto") (statement_identifier "LAB_0001ae12") (; ";")) (} "}"))) (expression_statement "lVar51 = 0;" (assignment_expression "lVar51 = 0" (identifier "lVar51") (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar50 = 0;" (assignment_expression "lVar50 = 0" (identifier "lVar50") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }" (else "else") (if_statement "if (uVar27 == 8) {\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }\n          else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }" (if "if") (parenthesized_expression "(uVar27 == 8)" (( "(") (binary_expression "uVar27 == 8" (identifier "uVar27") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n            iVar31 = *(int *)((int)param_1 + 4);\n            if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }\n            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);\n          }" ({ "{") (expression_statement "iVar31 = *(int *)((int)param_1 + 4);" (assignment_expression "iVar31 = *(int *)((int)param_1 + 4)" (identifier "iVar31") (= "=") (pointer_expression "*(int *)((int)param_1 + 4)" (* "*") (cast_expression "(int *)((int)param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 4)" (( "(") (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if ((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }" (if "if") (parenthesized_expression "((*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02'))" (( "(") (binary_expression "(*(int *)(iVar31 + 4) == 5) &&\n               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')" (parenthesized_expression "(*(int *)(iVar31 + 4) == 5)" (( "(") (binary_expression "*(int *)(iVar31 + 4) == 5" (pointer_expression "*(int *)(iVar31 + 4)" (* "*") (cast_expression "(int *)(iVar31 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar31 + 4)" (( "(") (binary_expression "iVar31 + 4" (identifier "iVar31") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "5")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')" (( "(") (binary_expression "*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02'" (pointer_expression "*(char *)(*(int *)((int)param_1 + 0xa0) + 4)" (* "*") (cast_expression "(char *)(*(int *)((int)param_1 + 0xa0) + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)((int)param_1 + 0xa0) + 4)" (( "(") (binary_expression "*(int *)((int)param_1 + 0xa0) + 4" (pointer_expression "*(int *)((int)param_1 + 0xa0)" (* "*") (cast_expression "(int *)((int)param_1 + 0xa0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0xa0)" (( "(") (binary_expression "(int)param_1 + 0xa0" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0xa0")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")"))) () ")")) (compound_statement "{\n              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);\n              goto LAB_0001ade8;\n            }" ({ "{") (expression_statement "lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);" (assignment_expression "lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28)" (identifier "lVar50") (= "=") (call_expression "(**(code **)(iVar31 + 0x1c))(sVar28)" (parenthesized_expression "(**(code **)(iVar31 + 0x1c))" (( "(") (pointer_expression "**(code **)(iVar31 + 0x1c)" (* "*") (pointer_expression "*(code **)(iVar31 + 0x1c)" (* "*") (cast_expression "(code **)(iVar31 + 0x1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar31 + 0x1c)" (( "(") (binary_expression "iVar31 + 0x1c" (identifier "iVar31") (+ "+") (number_literal "0x1c")) () ")"))))) () ")")) (argument_list "(sVar28)" (( "(") (identifier "sVar28") () ")")))) (; ";")) (goto_statement "goto LAB_0001ade8;" (goto "goto") (statement_identifier "LAB_0001ade8") (; ";")) (} "}"))) (expression_statement "lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);" (assignment_expression "lVar50 = (**(code **)(iVar31 + 0x28))(sVar28)" (identifier "lVar50") (= "=") (call_expression "(**(code **)(iVar31 + 0x28))(sVar28)" (parenthesized_expression "(**(code **)(iVar31 + 0x28))" (( "(") (pointer_expression "**(code **)(iVar31 + 0x28)" (* "*") (pointer_expression "*(code **)(iVar31 + 0x28)" (* "*") (cast_expression "(code **)(iVar31 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar31 + 0x28)" (( "(") (binary_expression "iVar31 + 0x28" (identifier "iVar31") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "(sVar28)" (( "(") (identifier "sVar28") () ")")))) (; ";")) (expression_statement "lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);" (assignment_expression "lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4)" (identifier "lVar51") (= "=") (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x28))" (( "(") (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x28)" (* "*") (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x28)" (* "*") (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x28)" (( "(") (binary_expression "*(int *)((int)param_1 + 4) + 0x28" (pointer_expression "*(int *)((int)param_1 + 4)" (* "*") (cast_expression "(int *)((int)param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 4)" (( "(") (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "(sVar28 + 4)" (( "(") (binary_expression "sVar28 + 4" (identifier "sVar28") (+ "+") (number_literal "4")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }" (else "else") (compound_statement "{\n            uVar44 = uVar27;\n            if (uVar27 != 0x10) goto LAB_0001ae8d;\n            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);\n            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);\n          }" ({ "{") (expression_statement "uVar44 = uVar27;" (assignment_expression "uVar44 = uVar27" (identifier "uVar44") (= "=") (identifier "uVar27")) (; ";")) (if_statement "if (uVar27 != 0x10) goto LAB_0001ae8d;" (if "if") (parenthesized_expression "(uVar27 != 0x10)" (( "(") (binary_expression "uVar27 != 0x10" (identifier "uVar27") (!= "!=") (number_literal "0x10")) () ")")) (goto_statement "goto LAB_0001ae8d;" (goto "goto") (statement_identifier "LAB_0001ae8d") (; ";"))) (expression_statement "lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);" (assignment_expression "lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28)" (identifier "lVar50") (= "=") (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x1c))" (( "(") (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x1c)" (* "*") (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x1c)" (* "*") (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x1c)" (( "(") (binary_expression "*(int *)((int)param_1 + 4) + 0x1c" (pointer_expression "*(int *)((int)param_1 + 4)" (* "*") (cast_expression "(int *)((int)param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 4)" (( "(") (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x1c")) () ")"))))) () ")")) (argument_list "(sVar28)" (( "(") (identifier "sVar28") () ")")))) (; ";")) (expression_statement "lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);" (assignment_expression "lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8)" (identifier "lVar51") (= "=") (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x1c))" (( "(") (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x1c)" (* "*") (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x1c)" (* "*") (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x1c)" (( "(") (binary_expression "*(int *)((int)param_1 + 4) + 0x1c" (pointer_expression "*(int *)((int)param_1 + 4)" (* "*") (cast_expression "(int *)((int)param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 4)" (( "(") (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x1c")) () ")"))))) () ")")) (argument_list "(sVar28 + 8)" (( "(") (binary_expression "sVar28 + 8" (identifier "sVar28") (+ "+") (number_literal "8")) () ")")))) (; ";")) (} "}")))))))) (if_statement "if (sVar30 == 0x100) {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }\n          else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }" (if "if") (parenthesized_expression "(sVar30 == 0x100)" (( "(") (binary_expression "sVar30 == 0x100" (identifier "sVar30") (== "==") (number_literal "0x100")) () ")")) (compound_statement "{\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }\n            sVar28 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar28;\n            psVar43[10] = 0;\n            local_bc = sVar28;\n            local_b8 = sVar30;\n          }" ({ "{") (expression_statement "sVar30 = (size_t)lVar50;" (assignment_expression "sVar30 = (size_t)lVar50" (identifier "sVar30") (= "=") (cast_expression "(size_t)lVar50" (( "(") (type_descriptor "size_t" (primitive_type "size_t")) () ")") (identifier "lVar50"))) (; ";")) (if_statement "if (lVar50 == 0) {\n              sVar30 = local_b8;\n            }" (if "if") (parenthesized_expression "(lVar50 == 0)" (( "(") (binary_expression "lVar50 == 0" (identifier "lVar50") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              sVar30 = local_b8;\n            }" ({ "{") (expression_statement "sVar30 = local_b8;" (assignment_expression "sVar30 = local_b8" (identifier "sVar30") (= "=") (identifier "local_b8")) (; ";")) (} "}"))) (expression_statement "sVar28 = (size_t)lVar51;" (assignment_expression "sVar28 = (size_t)lVar51" (identifier "sVar28") (= "=") (cast_expression "(size_t)lVar51" (( "(") (type_descriptor "size_t" (primitive_type "size_t")) () ")") (identifier "lVar51"))) (; ";")) (if_statement "if (lVar51 == 0) {\n              sVar28 = local_bc;\n            }" (if "if") (parenthesized_expression "(lVar51 == 0)" (( "(") (binary_expression "lVar51 == 0" (identifier "lVar51") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              sVar28 = local_bc;\n            }" ({ "{") (expression_statement "sVar28 = local_bc;" (assignment_expression "sVar28 = local_bc" (identifier "sVar28") (= "=") (identifier "local_bc")) (; ";")) (} "}"))) (expression_statement "psVar43[8] = 0;" (assignment_expression "psVar43[8] = 0" (subscript_expression "psVar43[8]" (identifier "psVar43") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "psVar43[7] = sVar30;" (assignment_expression "psVar43[7] = sVar30" (subscript_expression "psVar43[7]" (identifier "psVar43") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "sVar30")) (; ";")) (expression_statement "psVar43[9] = sVar28;" (assignment_expression "psVar43[9] = sVar28" (subscript_expression "psVar43[9]" (identifier "psVar43") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "sVar28")) (; ";")) (expression_statement "psVar43[10] = 0;" (assignment_expression "psVar43[10] = 0" (subscript_expression "psVar43[10]" (identifier "psVar43") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_bc = sVar28;" (assignment_expression "local_bc = sVar28" (identifier "local_bc") (= "=") (identifier "sVar28")) (; ";")) (expression_statement "local_b8 = sVar30;" (assignment_expression "local_b8 = sVar30" (identifier "local_b8") (= "=") (identifier "sVar30")) (; ";")) (} "}")) (else_clause "else {\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }" (else "else") (compound_statement "{\n            sVar30 = (size_t)lVar50;\n            if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }\n            sVar55 = (size_t)lVar51;\n            if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }\n            psVar43[8] = 0;\n            psVar43[7] = sVar30;\n            psVar43[9] = sVar55;\n            psVar43[10] = 0;\n            sVar54 = sVar55;\n            sVar55 = sVar30;\n          }" ({ "{") (expression_statement "sVar30 = (size_t)lVar50;" (assignment_expression "sVar30 = (size_t)lVar50" (identifier "sVar30") (= "=") (cast_expression "(size_t)lVar50" (( "(") (type_descriptor "size_t" (primitive_type "size_t")) () ")") (identifier "lVar50"))) (; ";")) (if_statement "if (lVar50 == 0) {\n              sVar30 = sVar55;\n            }" (if "if") (parenthesized_expression "(lVar50 == 0)" (( "(") (binary_expression "lVar50 == 0" (identifier "lVar50") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              sVar30 = sVar55;\n            }" ({ "{") (expression_statement "sVar30 = sVar55;" (assignment_expression "sVar30 = sVar55" (identifier "sVar30") (= "=") (identifier "sVar55")) (; ";")) (} "}"))) (expression_statement "sVar55 = (size_t)lVar51;" (assignment_expression "sVar55 = (size_t)lVar51" (identifier "sVar55") (= "=") (cast_expression "(size_t)lVar51" (( "(") (type_descriptor "size_t" (primitive_type "size_t")) () ")") (identifier "lVar51"))) (; ";")) (if_statement "if (lVar51 == 0) {\n              sVar55 = sVar54;\n            }" (if "if") (parenthesized_expression "(lVar51 == 0)" (( "(") (binary_expression "lVar51 == 0" (identifier "lVar51") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              sVar55 = sVar54;\n            }" ({ "{") (expression_statement "sVar55 = sVar54;" (assignment_expression "sVar55 = sVar54" (identifier "sVar55") (= "=") (identifier "sVar54")) (; ";")) (} "}"))) (expression_statement "psVar43[8] = 0;" (assignment_expression "psVar43[8] = 0" (subscript_expression "psVar43[8]" (identifier "psVar43") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "psVar43[7] = sVar30;" (assignment_expression "psVar43[7] = sVar30" (subscript_expression "psVar43[7]" (identifier "psVar43") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "sVar30")) (; ";")) (expression_statement "psVar43[9] = sVar55;" (assignment_expression "psVar43[9] = sVar55" (subscript_expression "psVar43[9]" (identifier "psVar43") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "sVar55")) (; ";")) (expression_statement "psVar43[10] = 0;" (assignment_expression "psVar43[10] = 0" (subscript_expression "psVar43[10]" (identifier "psVar43") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "sVar54 = sVar55;" (assignment_expression "sVar54 = sVar55" (identifier "sVar54") (= "=") (identifier "sVar55")) (; ";")) (expression_statement "sVar55 = sVar30;" (assignment_expression "sVar55 = sVar30" (identifier "sVar55") (= "=") (identifier "sVar30")) (; ";")) (} "}")))) (if_statement "if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }" (if "if") (parenthesized_expression "(*(char *)((psVar43[3] - 1) + *psVar43) != '\0')" (( "(") (binary_expression "*(char *)((psVar43[3] - 1) + *psVar43) != '\0'" (pointer_expression "*(char *)((psVar43[3] - 1) + *psVar43)" (* "*") (cast_expression "(char *)((psVar43[3] - 1) + *psVar43)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((psVar43[3] - 1) + *psVar43)" (( "(") (binary_expression "(psVar43[3] - 1) + *psVar43" (parenthesized_expression "(psVar43[3] - 1)" (( "(") (binary_expression "psVar43[3] - 1" (subscript_expression "psVar43[3]" (identifier "psVar43") ([ "[") (number_literal "3") (] "]")) (- "-") (number_literal "1")) () ")")) (+ "+") (pointer_expression "*psVar43" (* "*") (identifier "psVar43"))) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);\n            goto LAB_0001ae12;\n          }" ({ "{") (expression_statement "iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43);" (assignment_expression "iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43)" (identifier "iVar31") (= "=") (call_expression "dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43)" (identifier "dcgettext") (argument_list "(0,"corrupt GNU build attribute note: name not NUL terminated",5,\n                               *psVar43)" (( "(") (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") (, ",") (pointer_expression "*psVar43" (* "*") (identifier "psVar43")) () ")")))) (; ";")) (goto_statement "goto LAB_0001ae12;" (goto "goto") (statement_identifier "LAB_0001ae12") (; ";")) (} "}"))) (expression_statement "psVar43 = psVar43 + 0xc;" (assignment_expression "psVar43 = psVar43 + 0xc" (identifier "psVar43") (= "=") (binary_expression "psVar43 + 0xc" (identifier "psVar43") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "pvVar26 = (void *)(uVar37 + (int)pvVar26);" (assignment_expression "pvVar26 = (void *)(uVar37 + (int)pvVar26)" (identifier "pvVar26") (= "=") (cast_expression "(void *)(uVar37 + (int)pvVar26)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar37 + (int)pvVar26)" (( "(") (binary_expression "uVar37 + (int)pvVar26" (identifier "uVar37") (+ "+") (cast_expression "(int)pvVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar26"))) () ")")))) (; ";")) (} "}"))) (if_statement "if (local_78 == 0 && local_7c == 0) {\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }\n        else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }" (if "if") (parenthesized_expression "(local_78 == 0 && local_7c == 0)" (( "(") (binary_expression "local_78 == 0 && local_7c == 0" (binary_expression "local_78 == 0" (identifier "local_78") (== "==") (number_literal "0")) (&& "&&") (binary_expression "local_7c == 0" (identifier "local_7c") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }\n          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }\n          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;\n          uVar17 = -(uint)(local_a4 == 0) & 2;\n          iVar31 = uVar17 + 1;\n          if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }\n          bVar46 = false;\n          iVar18 = uVar17 + 2;\n          psVar38 = local_74;\nLAB_0001afd1:\n          psVar9 = psVar38;\n          local_6c = psVar9 + 0xc;\n          psVar38 = local_6c;\n          if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }\n          local_6c = param_2;\n          if (!bVar46) goto LAB_0001ae41;\n          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);\n          pvVar26 = pvVar52;\n          sVar53 = local_78;\n          sVar23 = local_7c;\n          local_a8 = (size_t *)pvVar6;\n          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }\n          sVar23 = (int)pvVar26 - (int)pvVar52;\n          uVar17 = (int)sVar23 >> 0x1f;\n          memcpy(pvVar6,pvVar52,sVar23);\n          free(pvVar52);\n          free(local_74);\n          local_6c = param_2;\n          DAT_00040bb8 = sVar23;\n          DAT_00040bbc = uVar17;\n          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }\n        }" ({ "{") (if_statement "if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }" (if "if") (parenthesized_expression "(local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0))" (( "(") (binary_expression "local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)" (binary_expression "local_a4 == 0" (identifier "local_a4") (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)" (( "(") (binary_expression "local_a8 == (size_t *)0x0 && local_84 == (int *)0x0" (binary_expression "local_a8 == (size_t *)0x0" (identifier "local_a8") (== "==") (cast_expression "(size_t *)0x0" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (&& "&&") (binary_expression "local_84 == (int *)0x0" (identifier "local_84") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));\n            goto LAB_0001ae12;\n          }" ({ "{") (expression_statement "iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c));" (assignment_expression "iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c))" (identifier "iVar31") (= "=") (call_expression "dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c))" (identifier "dcgettext") (argument_list "(0,"bad GNU build attribute notes: no known versions detected",5,\n                               -local_78 - (uint)(0xb < local_7c))" (( "(") (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") (, ",") (binary_expression "-local_78 - (uint)(0xb < local_7c)" (unary_expression "-local_78" (- "-") (identifier "local_78")) (- "-") (call_expression "(uint)(0xb < local_7c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0xb < local_7c)" (( "(") (binary_expression "0xb < local_7c" (number_literal "0xb") (< "<") (identifier "local_7c")) () ")")))) () ")")))) (; ";")) (goto_statement "goto LAB_0001ae12;" (goto "goto") (statement_identifier "LAB_0001ae12") (; ";")) (} "}"))) (if_statement "if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }" (if "if") (parenthesized_expression "(((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0))))" (( "(") (binary_expression "((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||\n             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))" (parenthesized_expression "((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0))" (( "(") (binary_expression "(local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)" (parenthesized_expression "(local_a4 != 0)" (( "(") (binary_expression "local_a4 != 0" (identifier "local_a4") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)" (( "(") (binary_expression "local_a8 != (size_t *)0x0 || local_84 != (int *)0x0" (binary_expression "local_a8 != (size_t *)0x0" (identifier "local_a8") (!= "!=") (cast_expression "(size_t *)0x0" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (|| "||") (binary_expression "local_84 != (int *)0x0" (identifier "local_84") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))" (( "(") (parenthesized_expression "(local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0))" (( "(") (binary_expression "local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)" (binary_expression "local_a8 != (size_t *)0x0" (identifier "local_a8") (!= "!=") (cast_expression "(size_t *)0x0" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (&& "&&") (parenthesized_expression "(local_84 != (int *)0x0)" (( "(") (binary_expression "local_84 != (int *)0x0" (identifier "local_84") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);\n            goto LAB_0001ae12;\n          }" ({ "{") (expression_statement "iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43);" (assignment_expression "iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43)" (identifier "iVar31") (= "=") (call_expression "dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43)" (identifier "dcgettext") (argument_list "(0,"bad GNU build attribute notes: multiple different versions",5,\n                               psVar43)" (( "(") (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") (, ",") (identifier "psVar43") () ")")))) (; ";")) (goto_statement "goto LAB_0001ae12;" (goto "goto") (statement_identifier "LAB_0001ae12") (; ";")) (} "}"))) (if_statement "if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))\n          goto LAB_0001ae41;" (if "if") (parenthesized_expression "((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))" (( "(") (binary_expression "(local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1)" (parenthesized_expression "(local_a4 == 1 || local_a8 == (size_t *)0x1)" (( "(") (binary_expression "local_a4 == 1 || local_a8 == (size_t *)0x1" (binary_expression "local_a4 == 1" (identifier "local_a4") (== "==") (number_literal "1")) (|| "||") (binary_expression "local_a8 == (size_t *)0x1" (identifier "local_a8") (== "==") (cast_expression "(size_t *)0x1" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1")))) () ")")) (|| "||") (parenthesized_expression "(local_84 == (int *)0x1)" (( "(") (binary_expression "local_84 == (int *)0x1" (identifier "local_84") (== "==") (cast_expression "(int *)0x1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")"))) () ")")) (goto_statement "goto LAB_0001ae41;" (goto "goto") (statement_identifier "LAB_0001ae41") (; ";"))) (expression_statement "uVar17 = -(uint)(local_a4 == 0) & 2;" (assignment_expression "uVar17 = -(uint)(local_a4 == 0) & 2" (identifier "uVar17") (= "=") (binary_expression "-(uint)(local_a4 == 0) & 2" (unary_expression "-(uint)(local_a4 == 0)" (- "-") (call_expression "(uint)(local_a4 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_a4 == 0)" (( "(") (binary_expression "local_a4 == 0" (identifier "local_a4") (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "2"))) (; ";")) (expression_statement "iVar31 = uVar17 + 1;" (assignment_expression "iVar31 = uVar17 + 1" (identifier "iVar31") (= "=") (binary_expression "uVar17 + 1" (identifier "uVar17") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*(char *)(local_74[3] + iVar31) != '\x01') {\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }" (if "if") (parenthesized_expression "(*(char *)(local_74[3] + iVar31) != '\x01')" (( "(") (binary_expression "*(char *)(local_74[3] + iVar31) != '\x01'" (pointer_expression "*(char *)(local_74[3] + iVar31)" (* "*") (cast_expression "(char *)(local_74[3] + iVar31)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_74[3] + iVar31)" (( "(") (binary_expression "local_74[3] + iVar31" (subscript_expression "local_74[3]" (identifier "local_74") ([ "[") (number_literal "3") (] "]")) (+ "+") (identifier "iVar31")) () ")")))) (!= "!=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (compound_statement "{\n            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);\n            goto LAB_0001ae12;\n          }" ({ "{") (expression_statement "iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31);" (assignment_expression "iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31)" (identifier "iVar31") (= "=") (call_expression "dcgettext(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31)" (identifier "dcgettext") (argument_list "(0,"bad GNU build attribute notes: first note not version note",5,\n                               iVar31)" (( "(") (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") (, ",") (identifier "iVar31") () ")")))) (; ";")) (goto_statement "goto LAB_0001ae12;" (goto "goto") (statement_identifier "LAB_0001ae12") (; ";")) (} "}"))) (expression_statement "bVar46 = false;" (assignment_expression "bVar46 = false" (identifier "bVar46") (= "=") (false "false")) (; ";")) (expression_statement "iVar18 = uVar17 + 2;" (assignment_expression "iVar18 = uVar17 + 2" (identifier "iVar18") (= "=") (binary_expression "uVar17 + 2" (identifier "uVar17") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "psVar38 = local_74;" (assignment_expression "psVar38 = local_74" (identifier "psVar38") (= "=") (identifier "local_74")) (; ";")) (labeled_statement "LAB_0001afd1:\n          psVar9 = psVar38;" (statement_identifier "LAB_0001afd1") (: ":") (expression_statement "psVar9 = psVar38;" (assignment_expression "psVar9 = psVar38" (identifier "psVar9") (= "=") (identifier "psVar38")) (; ";"))) (expression_statement "local_6c = psVar9 + 0xc;" (assignment_expression "local_6c = psVar9 + 0xc" (identifier "local_6c") (= "=") (binary_expression "psVar9 + 0xc" (identifier "psVar9") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "psVar38 = local_6c;" (assignment_expression "psVar38 = local_6c" (identifier "psVar38") (= "=") (identifier "local_6c")) (; ";")) (if_statement "if (local_6c < psVar43) {\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }" (if "if") (parenthesized_expression "(local_6c < psVar43)" (( "(") (binary_expression "local_6c < psVar43" (identifier "local_6c") (< "<") (identifier "psVar43")) () ")")) (compound_statement "{\n            if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }\n            goto LAB_0001afd1;\n          }" ({ "{") (if_statement "if (psVar9[0xe] == 0x100) {\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }" (if "if") (parenthesized_expression "(psVar9[0xe] == 0x100)" (( "(") (binary_expression "psVar9[0xe] == 0x100" (subscript_expression "psVar9[0xe]" (identifier "psVar9") ([ "[") (number_literal "0xe") (] "]")) (== "==") (number_literal "0x100")) () ")")) (compound_statement "{\n              local_a8 = (size_t *)0x0;\n              pvVar26 = (void *)psVar9[0xf];\n              local_6c = psVar9;\n              while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }\n            }" ({ "{") (expression_statement "local_a8 = (size_t *)0x0;" (assignment_expression "local_a8 = (size_t *)0x0" (identifier "local_a8") (= "=") (cast_expression "(size_t *)0x0" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pvVar26 = (void *)psVar9[0xf];" (assignment_expression "pvVar26 = (void *)psVar9[0xf]" (identifier "pvVar26") (= "=") (cast_expression "(void *)psVar9[0xf]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "psVar9[0xf]" (identifier "psVar9") ([ "[") (number_literal "0xf") (] "]")))) (; ";")) (expression_statement "local_6c = psVar9;" (assignment_expression "local_6c = psVar9" (identifier "local_6c") (= "=") (identifier "psVar9")) (; ";")) (while_statement "while (psVar10 = local_6c, local_74 <= local_6c) {\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }" (while "while") (parenthesized_expression "(psVar10 = local_6c, local_74 <= local_6c)" (( "(") (comma_expression "psVar10 = local_6c, local_74 <= local_6c" (assignment_expression "psVar10 = local_6c" (identifier "psVar10") (= "=") (identifier "local_6c")) (, ",") (binary_expression "local_74 <= local_6c" (identifier "local_74") (<= "<=") (identifier "local_6c"))) () ")")) (compound_statement "{\n                pvVar32 = (void *)local_6c[3];\n                psVar11 = local_a8;\n                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }\n                local_6c = psVar10 + -0xc;\n              }" ({ "{") (expression_statement "pvVar32 = (void *)local_6c[3];" (assignment_expression "pvVar32 = (void *)local_6c[3]" (identifier "pvVar32") (= "=") (cast_expression "(void *)local_6c[3]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_6c[3]" (identifier "local_6c") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "psVar11 = local_a8;" (assignment_expression "psVar11 = local_a8" (identifier "psVar11") (= "=") (identifier "local_a8")) (; ";")) (if_statement "if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))) {\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }" (if "if") (parenthesized_expression "((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100))))" (( "(") (binary_expression "(((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&\n                   ((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))" (parenthesized_expression "(((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101))" (( "(") (binary_expression "((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||\n                    (psVar11 = local_6c, local_6c[2] != 0x101)" (parenthesized_expression "((local_a8 != (size_t *)0x0) || (local_6c[1] == 0))" (( "(") (binary_expression "(local_a8 != (size_t *)0x0) || (local_6c[1] == 0)" (parenthesized_expression "(local_a8 != (size_t *)0x0)" (( "(") (binary_expression "local_a8 != (size_t *)0x0" (identifier "local_a8") (!= "!=") (cast_expression "(size_t *)0x0" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(local_6c[1] == 0)" (( "(") (binary_expression "local_6c[1] == 0" (subscript_expression "local_6c[1]" (identifier "local_6c") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(psVar11 = local_6c, local_6c[2] != 0x101)" (( "(") (comma_expression "psVar11 = local_6c, local_6c[2] != 0x101" (assignment_expression "psVar11 = local_6c" (identifier "psVar11") (= "=") (identifier "local_6c")) (, ",") (binary_expression "local_6c[2] != 0x101" (subscript_expression "local_6c[2]" (identifier "local_6c") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "0x101"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)))" (( "(") (parenthesized_expression "(local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100))" (( "(") (comma_expression "local_a8 = psVar11,\n                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)" (assignment_expression "local_a8 = psVar11" (identifier "local_a8") (= "=") (identifier "psVar11")) (, ",") (binary_expression "*(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&\n                    (local_6c[2] == 0x100)" (binary_expression "*(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31)" (pointer_expression "*(char *)((int)pvVar26 + iVar31)" (* "*") (cast_expression "(char *)((int)pvVar26 + iVar31)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar26 + iVar31)" (( "(") (binary_expression "(int)pvVar26 + iVar31" (cast_expression "(int)pvVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar26")) (+ "+") (identifier "iVar31")) () ")")))) (== "==") (pointer_expression "*(char *)((int)pvVar32 + iVar31)" (* "*") (cast_expression "(char *)((int)pvVar32 + iVar31)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar32 + iVar31)" (( "(") (binary_expression "(int)pvVar32 + iVar31" (cast_expression "(int)pvVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar32")) (+ "+") (identifier "iVar31")) () ")"))))) (&& "&&") (parenthesized_expression "(local_6c[2] == 0x100)" (( "(") (binary_expression "local_6c[2] == 0x100" (subscript_expression "local_6c[2]" (identifier "local_6c") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0x100")) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n                  sVar54 = *psVar38;\n                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }\n                  uVar17 = 0;\n                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }\n                  local_6c = (size_t *)0x0;\n                  sVar54 = *psVar10;\n                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }\n                  uVar44 = 0;\n                  uVar17 = (int)local_6c + uVar17;\n                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }\n                  if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }\n                }" ({ "{") (expression_statement "sVar54 = *psVar38;" (assignment_expression "sVar54 = *psVar38" (identifier "sVar54") (= "=") (pointer_expression "*psVar38" (* "*") (identifier "psVar38"))) (; ";")) (if_statement "if (*(char *)((int)pvVar32 + iVar31) != '\x04') {\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }" (if "if") (parenthesized_expression "(*(char *)((int)pvVar32 + iVar31) != '\x04')" (( "(") (binary_expression "*(char *)((int)pvVar32 + iVar31) != '\x04'" (pointer_expression "*(char *)((int)pvVar32 + iVar31)" (* "*") (cast_expression "(char *)((int)pvVar32 + iVar31)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar32 + iVar31)" (( "(") (binary_expression "(int)pvVar32 + iVar31" (cast_expression "(int)pvVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar32")) (+ "+") (identifier "iVar31")) () ")")))) (!= "!=") (char_literal "'\x04'" (' "'") (escape_sequence "\x04") (' "'"))) () ")")) (compound_statement "{\n                    sVar55 = *local_6c;\n                    if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }\n                    if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }\n                    break;\n                  }" ({ "{") (expression_statement "sVar55 = *local_6c;" (assignment_expression "sVar55 = *local_6c" (identifier "sVar55") (= "=") (pointer_expression "*local_6c" (* "*") (identifier "local_6c"))) (; ";")) (if_statement "if ((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)) {\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }" (if "if") (parenthesized_expression "((sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0))" (( "(") (binary_expression "(sVar55 == sVar54) &&\n                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)" (parenthesized_expression "(sVar55 == sVar54)" (( "(") (binary_expression "sVar55 == sVar54" (identifier "sVar55") (== "==") (identifier "sVar54")) () ")")) (&& "&&") (parenthesized_expression "(iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0)" (( "(") (comma_expression "iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0" (assignment_expression "iVar21 = memcmp(pvVar32,pvVar26,sVar55)" (identifier "iVar21") (= "=") (call_expression "memcmp(pvVar32,pvVar26,sVar55)" (identifier "memcmp") (argument_list "(pvVar32,pvVar26,sVar55)" (( "(") (identifier "pvVar32") (, ",") (identifier "pvVar26") (, ",") (identifier "sVar55") () ")")))) (, ",") (comma_expression "pvVar52 = pvVar26, sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0" (assignment_expression "pvVar52 = pvVar26" (identifier "pvVar52") (= "=") (identifier "pvVar26")) (, ",") (comma_expression "sVar23 = sVar55,\n                       sVar53 = sVar54, iVar21 == 0" (assignment_expression "sVar23 = sVar55" (identifier "sVar23") (= "=") (identifier "sVar55")) (, ",") (comma_expression "sVar53 = sVar54, iVar21 == 0" (assignment_expression "sVar53 = sVar54" (identifier "sVar53") (= "=") (identifier "sVar54")) (, ",") (binary_expression "iVar21 == 0" (identifier "iVar21") (== "==") (number_literal "0")))))) () ")"))) () ")")) (compound_statement "{\n                      uVar17 = local_6c[10];\n                      uVar27 = local_6c[9];\n                      if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }\n                    }" ({ "{") (expression_statement "uVar17 = local_6c[10];" (assignment_expression "uVar17 = local_6c[10]" (identifier "uVar17") (= "=") (subscript_expression "local_6c[10]" (identifier "local_6c") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "uVar27 = local_6c[9];" (assignment_expression "uVar27 = local_6c[9]" (identifier "uVar27") (= "=") (subscript_expression "local_6c[9]" (identifier "local_6c") ([ "[") (number_literal "9") (] "]"))) (; ";")) (if_statement "if (uVar17 != 0 || uVar27 != 0) {\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }" (if "if") (parenthesized_expression "(uVar17 != 0 || uVar27 != 0)" (( "(") (binary_expression "uVar17 != 0 || uVar27 != 0" (binary_expression "uVar17 != 0" (identifier "uVar17") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "uVar27 != 0" (identifier "uVar27") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n                        uVar37 = psVar9[0x15];\n                        uVar44 = psVar9[0x16];\n                        if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }\n                      }" ({ "{") (expression_statement "uVar37 = psVar9[0x15];" (assignment_expression "uVar37 = psVar9[0x15]" (identifier "uVar37") (= "=") (subscript_expression "psVar9[0x15]" (identifier "psVar9") ([ "[") (number_literal "0x15") (] "]"))) (; ";")) (expression_statement "uVar44 = psVar9[0x16];" (assignment_expression "uVar44 = psVar9[0x16]" (identifier "uVar44") (= "=") (subscript_expression "psVar9[0x16]" (identifier "psVar9") ([ "[") (number_literal "0x16") (] "]"))) (; ";")) (if_statement "if ((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))) {\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }" (if "if") (parenthesized_expression "((uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14]))))" (( "(") (binary_expression "(uVar44 != 0 || uVar37 != 0) &&\n                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))" (parenthesized_expression "(uVar44 != 0 || uVar37 != 0)" (( "(") (binary_expression "uVar44 != 0 || uVar37 != 0" (binary_expression "uVar44 != 0" (identifier "uVar44") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "uVar37 != 0" (identifier "uVar37") (!= "!=") (number_literal "0"))) () ")")) (&& "&&") (parenthesized_expression "((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])))" (( "(") (parenthesized_expression "(-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14]))" (( "(") (binary_expression "-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||\n                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])" (binary_expression "-uVar17 - 1 < (uint)(0xfffffff0 < uVar27)" (binary_expression "-uVar17 - 1" (unary_expression "-uVar17" (- "-") (identifier "uVar17")) (- "-") (number_literal "1")) (< "<") (call_expression "(uint)(0xfffffff0 < uVar27)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0xfffffff0 < uVar27)" (( "(") (binary_expression "0xfffffff0 < uVar27" (number_literal "0xfffffff0") (< "<") (identifier "uVar27")) () ")")))) (|| "||") (parenthesized_expression "(uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14])" (( "(") (comma_expression "uVar33 = uVar17 + (0xfffffff0 < uVar27),\n                            psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14]" (assignment_expression "uVar33 = uVar17 + (0xfffffff0 < uVar27)" (identifier "uVar33") (= "=") (binary_expression "uVar17 + (0xfffffff0 < uVar27)" (identifier "uVar17") (+ "+") (parenthesized_expression "(0xfffffff0 < uVar27)" (( "(") (binary_expression "0xfffffff0 < uVar27" (number_literal "0xfffffff0") (< "<") (identifier "uVar27")) () ")")))) (, ",") (binary_expression "psVar9[0x14] <= uVar33 &&\n                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14]" (binary_expression "psVar9[0x14] <= uVar33" (subscript_expression "psVar9[0x14]" (identifier "psVar9") ([ "[") (number_literal "0x14") (] "]")) (<= "<=") (identifier "uVar33")) (&& "&&") (binary_expression "(uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=\n                            uVar33 - psVar9[0x14]" (call_expression "(uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13])" (( "(") (binary_expression "(uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]" (parenthesized_expression "(uVar27 + 0xf & 0xfffffff0)" (( "(") (binary_expression "uVar27 + 0xf & 0xfffffff0" (binary_expression "uVar27 + 0xf" (identifier "uVar27") (+ "+") (number_literal "0xf")) (& "&") (number_literal "0xfffffff0")) () ")")) (< "<") (subscript_expression "psVar9[0x13]" (identifier "psVar9") ([ "[") (number_literal "0x13") (] "]"))) () ")"))) (<= "<=") (binary_expression "uVar33 - psVar9[0x14]" (identifier "uVar33") (- "-") (subscript_expression "psVar9[0x14]" (identifier "psVar9") ([ "[") (number_literal "0x14") (] "]")))))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                          psVar9[0xe] = 0;\n                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }\n                          bVar46 = true;\n                          if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }\n                          break;\n                        }" ({ "{") (expression_statement "psVar9[0xe] = 0;" (assignment_expression "psVar9[0xe] = 0" (subscript_expression "psVar9[0xe]" (identifier "psVar9") ([ "[") (number_literal "0xe") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }" (if "if") (parenthesized_expression "(uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37))" (( "(") (binary_expression "uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)" (binary_expression "uVar17 < uVar44" (identifier "uVar17") (< "<") (identifier "uVar44")) (|| "||") (binary_expression "uVar17 - uVar44 < (uint)(uVar27 < uVar37)" (binary_expression "uVar17 - uVar44" (identifier "uVar17") (- "-") (identifier "uVar44")) (< "<") (call_expression "(uint)(uVar27 < uVar37)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar27 < uVar37)" (( "(") (binary_expression "uVar27 < uVar37" (identifier "uVar27") (< "<") (identifier "uVar37")) () ")"))))) () ")")) (compound_statement "{\n                            local_6c[9] = uVar37;\n                            local_6c[10] = uVar44;\n                          }" ({ "{") (expression_statement "local_6c[9] = uVar37;" (assignment_expression "local_6c[9] = uVar37" (subscript_expression "local_6c[9]" (identifier "local_6c") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "uVar37")) (; ";")) (expression_statement "local_6c[10] = uVar44;" (assignment_expression "local_6c[10] = uVar44" (subscript_expression "local_6c[10]" (identifier "local_6c") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "uVar44")) (; ";")) (} "}"))) (expression_statement "bVar46 = true;" (assignment_expression "bVar46 = true" (identifier "bVar46") (= "=") (true "true")) (; ";")) (if_statement "if (local_84 != (int *)0x0) {\n                            local_6c[0xb] = 1;\n                          }" (if "if") (parenthesized_expression "(local_84 != (int *)0x0)" (( "(") (binary_expression "local_84 != (int *)0x0" (identifier "local_84") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                            local_6c[0xb] = 1;\n                          }" ({ "{") (expression_statement "local_6c[0xb] = 1;" (assignment_expression "local_6c[0xb] = 1" (subscript_expression "local_6c[0xb]" (identifier "local_6c") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "1")) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (} "}"))) (} "}"))) (if_statement "if (local_84 == (int *)0x0) {\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }\n                    else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }" (if "if") (parenthesized_expression "(local_84 == (int *)0x0)" (( "(") (binary_expression "local_84 == (int *)0x0" (identifier "local_84") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }\n                    }" ({ "{") (if_statement "if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))\n                      {\n                        local_a8[2] = 0x100;\n                      }" (if "if") (parenthesized_expression "(((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))" (( "(") (binary_expression "((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0)" (parenthesized_expression "((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0))" (( "(") (binary_expression "(psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)" (parenthesized_expression "(psVar9[0xd] == 0)" (( "(") (binary_expression "psVar9[0xd] == 0" (subscript_expression "psVar9[0xd]" (identifier "psVar9") ([ "[") (number_literal "0xd") (] "]")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_a8 != (size_t *)0x0)" (( "(") (binary_expression "local_a8 != (size_t *)0x0" (identifier "local_a8") (!= "!=") (cast_expression "(size_t *)0x0" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(local_a8[2] == 0)" (( "(") (binary_expression "local_a8[2] == 0" (subscript_expression "local_a8[2]" (identifier "local_a8") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                        local_a8[2] = 0x100;\n                      }" ({ "{") (expression_statement "local_a8[2] = 0x100;" (assignment_expression "local_a8[2] = 0x100" (subscript_expression "local_a8[2]" (identifier "local_a8") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0x100")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }" (else "else") (compound_statement "{\n                      psVar9[0x17] = 1;\n                      psVar9[0xe] = 0x101;\n                      local_6c[0xb] = 1;\n                      local_6c[2] = 0x101;\n                    }" ({ "{") (expression_statement "psVar9[0x17] = 1;" (assignment_expression "psVar9[0x17] = 1" (subscript_expression "psVar9[0x17]" (identifier "psVar9") ([ "[") (number_literal "0x17") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "psVar9[0xe] = 0x101;" (assignment_expression "psVar9[0xe] = 0x101" (subscript_expression "psVar9[0xe]" (identifier "psVar9") ([ "[") (number_literal "0xe") (] "]")) (= "=") (number_literal "0x101")) (; ";")) (expression_statement "local_6c[0xb] = 1;" (assignment_expression "local_6c[0xb] = 1" (subscript_expression "local_6c[0xb]" (identifier "local_6c") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "local_6c[2] = 0x101;" (assignment_expression "local_6c[2] = 0x101" (subscript_expression "local_6c[2]" (identifier "local_6c") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0x101")) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (for_statement "for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }" (for "for") (( "(") (assignment_expression "iVar21 = 0" (identifier "iVar21") (= "=") (number_literal "0")) (; ";") (binary_expression "sVar54 - iVar18 != iVar21" (binary_expression "sVar54 - iVar18" (identifier "sVar54") (- "-") (identifier "iVar18")) (!= "!=") (identifier "iVar21")) (; ";") (assignment_expression "iVar21 = iVar21 + 1" (identifier "iVar21") (= "=") (binary_expression "iVar21 + 1" (identifier "iVar21") (+ "+") (number_literal "1"))) () ")") (compound_statement "{\n                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);\n                  }" ({ "{") (expression_statement "uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU);" (assignment_expression "uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU)" (identifier "uVar17") (= "=") (binary_expression "uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU)" (identifier "uVar17") (| "|") (binary_expression "(uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<\n                                      ((char)iVar21 * '\b' & 0x1fU)" (binary_expression "(uint)*(byte *)((int)pvVar26 + iVar21 + iVar18)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)((int)pvVar26 + iVar21 + iVar18)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar26 + iVar21 + iVar18)" (( "(") (binary_expression "(int)pvVar26 + iVar21 + iVar18" (binary_expression "(int)pvVar26 + iVar21" (cast_expression "(int)pvVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar26")) (+ "+") (identifier "iVar21")) (+ "+") (identifier "iVar18")) () ")")))) (<< "<<") (parenthesized_expression "((char)iVar21 * '\b' & 0x1fU)" (( "(") (binary_expression "(char)iVar21 * '\b' & 0x1fU" (binary_expression "(char)iVar21 * '\b'" (cast_expression "(char)iVar21" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "iVar21")) (* "*") (char_literal "'\b'" (' "'") (escape_sequence "\b") (' "'"))) (& "&") (number_literal "0x1fU")) () ")"))))) (; ";")) (} "}"))) (expression_statement "local_6c = (size_t *)0x0;" (assignment_expression "local_6c = (size_t *)0x0" (identifier "local_6c") (= "=") (cast_expression "(size_t *)0x0" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "sVar54 = *psVar10;" (assignment_expression "sVar54 = *psVar10" (identifier "sVar54") (= "=") (pointer_expression "*psVar10" (* "*") (identifier "psVar10"))) (; ";")) (for_statement "for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }" (for "for") (( "(") (assignment_expression "uVar27 = 0" (identifier "uVar27") (= "=") (number_literal "0")) (; ";") (binary_expression "sVar54 - iVar18 != uVar27" (binary_expression "sVar54 - iVar18" (identifier "sVar54") (- "-") (identifier "iVar18")) (!= "!=") (identifier "uVar27")) (; ";") (assignment_expression "uVar27 = uVar27 + 1" (identifier "uVar27") (= "=") (binary_expression "uVar27 + 1" (identifier "uVar27") (+ "+") (number_literal "1"))) () ")") (compound_statement "{\n                    local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));\n                  }" ({ "{") (expression_statement "local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU));" (assignment_expression "local_6c = (size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU))" (identifier "local_6c") (= "=") (cast_expression "(size_t *)\n                               ((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU))" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU))" (( "(") (binary_expression "(uint)local_6c |\n                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU)" (cast_expression "(uint)local_6c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_6c")) (| "|") (binary_expression "(uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<\n                               ((char)uVar27 * '\b' & 0x1fU)" (subscript_expression "(uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27]" (call_expression "(uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))" (call_expression "(uint)(byte)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(byte)" (( "(") (identifier "byte") () ")"))) (argument_list "((undefined1 *)((int)pvVar32 + iVar18))" (( "(") (cast_expression "(undefined1 *)((int)pvVar32 + iVar18)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar32 + iVar18)" (( "(") (binary_expression "(int)pvVar32 + iVar18" (cast_expression "(int)pvVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar32")) (+ "+") (identifier "iVar18")) () ")"))) () ")"))) ([ "[") (identifier "uVar27") (] "]")) (<< "<<") (parenthesized_expression "((char)uVar27 * '\b' & 0x1fU)" (( "(") (binary_expression "(char)uVar27 * '\b' & 0x1fU" (binary_expression "(char)uVar27 * '\b'" (cast_expression "(char)uVar27" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar27")) (* "*") (char_literal "'\b'" (' "'") (escape_sequence "\b") (' "'"))) (& "&") (number_literal "0x1fU")) () ")")))) () ")")))) (; ";")) (} "}"))) (expression_statement "uVar44 = 0;" (assignment_expression "uVar44 = 0" (identifier "uVar44") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar17 = (int)local_6c + uVar17;" (assignment_expression "uVar17 = (int)local_6c + uVar17" (identifier "uVar17") (= "=") (binary_expression "(int)local_6c + uVar17" (cast_expression "(int)local_6c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_6c")) (+ "+") (identifier "uVar17"))) (; ";")) (for_statement "for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {\n                    uVar44 = uVar44 + 1;\n                  }" (for "for") (( "(") (assignment_expression "uVar37 = uVar17" (identifier "uVar37") (= "=") (identifier "uVar17")) (; ";") (binary_expression "uVar37 != 0" (identifier "uVar37") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "uVar37 = uVar37 >> 8" (identifier "uVar37") (= "=") (binary_expression "uVar37 >> 8" (identifier "uVar37") (>> ">>") (number_literal "8"))) () ")") (compound_statement "{\n                    uVar44 = uVar44 + 1;\n                  }" ({ "{") (expression_statement "uVar44 = uVar44 + 1;" (assignment_expression "uVar44 = uVar44 + 1" (identifier "uVar44") (= "=") (binary_expression "uVar44 + 1" (identifier "uVar44") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (uVar44 < uVar27) {\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }" (if "if") (parenthesized_expression "(uVar44 < uVar27)" (( "(") (binary_expression "uVar44 < uVar27" (identifier "uVar44") (< "<") (identifier "uVar27")) () ")")) (compound_statement "{\n                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);\n                    goto LAB_0001b1a6;\n                  }" ({ "{") (expression_statement "puVar45 = (undefined1 *)((int)pvVar32 + iVar18);" (assignment_expression "puVar45 = (undefined1 *)((int)pvVar32 + iVar18)" (identifier "puVar45") (= "=") (cast_expression "(undefined1 *)((int)pvVar32 + iVar18)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar32 + iVar18)" (( "(") (binary_expression "(int)pvVar32 + iVar18" (cast_expression "(int)pvVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar32")) (+ "+") (identifier "iVar18")) () ")")))) (; ";")) (goto_statement "goto LAB_0001b1a6;" (goto "goto") (statement_identifier "LAB_0001b1a6") (; ";")) (} "}"))) (} "}"))) (expression_statement "local_6c = psVar10 + -0xc;" (assignment_expression "local_6c = psVar10 + -0xc" (identifier "local_6c") (= "=") (binary_expression "psVar10 + -0xc" (identifier "psVar10") (+ "+") (number_literal "-0xc"))) (; ";")) (} "}"))) (} "}"))) (goto_statement "goto LAB_0001afd1;" (goto "goto") (statement_identifier "LAB_0001afd1") (; ";")) (} "}"))) (expression_statement "local_6c = param_2;" (assignment_expression "local_6c = param_2" (identifier "local_6c") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (!bVar46) goto LAB_0001ae41;" (if "if") (parenthesized_expression "(!bVar46)" (( "(") (unary_expression "!bVar46" (! "!") (identifier "bVar46")) () ")")) (goto_statement "goto LAB_0001ae41;" (goto "goto") (statement_identifier "LAB_0001ae41") (; ";"))) (expression_statement "pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);" (assignment_expression "pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53)" (identifier "pvVar52") (= "=") (cast_expression "(void *)xmalloc(sVar22,pvVar52,sVar23,sVar53)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar22,pvVar52,sVar23,sVar53)" (identifier "xmalloc") (argument_list "(sVar22,pvVar52,sVar23,sVar53)" (( "(") (identifier "sVar22") (, ",") (identifier "pvVar52") (, ",") (identifier "sVar23") (, ",") (identifier "sVar53") () ")"))))) (; ";")) (expression_statement "pvVar26 = pvVar52;" (assignment_expression "pvVar26 = pvVar52" (identifier "pvVar26") (= "=") (identifier "pvVar52")) (; ";")) (expression_statement "sVar53 = local_78;" (assignment_expression "sVar53 = local_78" (identifier "sVar53") (= "=") (identifier "local_78")) (; ";")) (expression_statement "sVar23 = local_7c;" (assignment_expression "sVar23 = local_7c" (identifier "sVar23") (= "=") (identifier "local_7c")) (; ";")) (expression_statement "local_a8 = (size_t *)pvVar6;" (assignment_expression "local_a8 = (size_t *)pvVar6" (identifier "local_a8") (= "=") (cast_expression "(size_t *)pvVar6" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pvVar6"))) (; ";")) (for_statement "for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }" (for "for") (( "(") (assignment_expression "psVar38 = local_74" (identifier "psVar38") (= "=") (identifier "local_74")) (; ";") (binary_expression "psVar38 < psVar43" (identifier "psVar38") (< "<") (identifier "psVar43")) (; ";") (assignment_expression "psVar38 = psVar38 + 0xc" (identifier "psVar38") (= "=") (binary_expression "psVar38 + 0xc" (identifier "psVar38") (+ "+") (number_literal "0xc"))) () ")") (compound_statement "{\n            sVar55 = *psVar38;\n            sVar30 = psVar38[2];\n            sVar54 = sVar55 + psVar38[1] + 0xc;\n            pvVar32 = pvVar26;\n            if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }\n            local_a8 = (size_t *)((int)local_a8 + sVar54);\n            pvVar26 = pvVar32;\n          }" ({ "{") (expression_statement "sVar55 = *psVar38;" (assignment_expression "sVar55 = *psVar38" (identifier "sVar55") (= "=") (pointer_expression "*psVar38" (* "*") (identifier "psVar38"))) (; ";")) (expression_statement "sVar30 = psVar38[2];" (assignment_expression "sVar30 = psVar38[2]" (identifier "sVar30") (= "=") (subscript_expression "psVar38[2]" (identifier "psVar38") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "sVar54 = sVar55 + psVar38[1] + 0xc;" (assignment_expression "sVar54 = sVar55 + psVar38[1] + 0xc" (identifier "sVar54") (= "=") (binary_expression "sVar55 + psVar38[1] + 0xc" (binary_expression "sVar55 + psVar38[1]" (identifier "sVar55") (+ "+") (subscript_expression "psVar38[1]" (identifier "psVar38") ([ "[") (number_literal "1") (] "]"))) (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "pvVar32 = pvVar26;" (assignment_expression "pvVar32 = pvVar26" (identifier "pvVar32") (= "=") (identifier "pvVar26")) (; ";")) (if_statement "if (sVar30 != 0) {\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }" (if "if") (parenthesized_expression "(sVar30 != 0)" (( "(") (binary_expression "sVar30 != 0" (identifier "sVar30") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }\n              local_7c = psVar38[7];\n              local_78 = psVar38[8];\n              sVar23 = psVar38[9];\n              sVar53 = psVar38[10];\n            }" ({ "{") (if_statement "if (psVar38[0xb] == 0) {\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }\n              else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }" (if "if") (parenthesized_expression "(psVar38[0xb] == 0)" (( "(") (binary_expression "psVar38[0xb] == 0" (subscript_expression "psVar38[0xb]" (identifier "psVar38") ([ "[") (number_literal "0xb") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                memcpy(pvVar26,local_a8,sVar54);\n                pvVar32 = (void *)((int)pvVar26 + sVar54);\n              }" ({ "{") (expression_statement "memcpy(pvVar26,local_a8,sVar54);" (call_expression "memcpy(pvVar26,local_a8,sVar54)" (identifier "memcpy") (argument_list "(pvVar26,local_a8,sVar54)" (( "(") (identifier "pvVar26") (, ",") (identifier "local_a8") (, ",") (identifier "sVar54") () ")"))) (; ";")) (expression_statement "pvVar32 = (void *)((int)pvVar26 + sVar54);" (assignment_expression "pvVar32 = (void *)((int)pvVar26 + sVar54)" (identifier "pvVar32") (= "=") (cast_expression "(void *)((int)pvVar26 + sVar54)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar26 + sVar54)" (( "(") (binary_expression "(int)pvVar26 + sVar54" (cast_expression "(int)pvVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar26")) (+ "+") (identifier "sVar54")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }" (else "else") (compound_statement "{\n                sVar28 = psVar38[8];\n                sVar7 = psVar38[7];\n                uVar13 = 0;\n                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);\n                iVar31 = (int)pvVar26 + 4;\n                iVar18 = (int)pvVar26 + 8;\n                __dest = (void *)((int)pvVar26 + 0xc);\n                pvVar32 = (void *)((int)__dest + sVar55);\n                sVar29 = sVar28;\n                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }\n              }" ({ "{") (expression_statement "sVar28 = psVar38[8];" (assignment_expression "sVar28 = psVar38[8]" (identifier "sVar28") (= "=") (subscript_expression "psVar38[8]" (identifier "psVar38") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "sVar7 = psVar38[7];" (assignment_expression "sVar7 = psVar38[7]" (identifier "sVar7") (= "=") (subscript_expression "psVar38[7]" (identifier "psVar38") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" (identifier "uVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);" (assignment_expression "pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30)" (identifier "pcVar8") (= "=") (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x30)" (* "*") (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x30)" (( "(") (binary_expression "*(int *)((int)param_1 + 4) + 0x30" (pointer_expression "*(int *)((int)param_1 + 4)" (* "*") (cast_expression "(int *)((int)param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 4)" (( "(") (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "iVar31 = (int)pvVar26 + 4;" (assignment_expression "iVar31 = (int)pvVar26 + 4" (identifier "iVar31") (= "=") (binary_expression "(int)pvVar26 + 4" (cast_expression "(int)pvVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar26")) (+ "+") (number_literal "4"))) (; ";")) (expression_statement "iVar18 = (int)pvVar26 + 8;" (assignment_expression "iVar18 = (int)pvVar26 + 8" (identifier "iVar18") (= "=") (binary_expression "(int)pvVar26 + 8" (cast_expression "(int)pvVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar26")) (+ "+") (number_literal "8"))) (; ";")) (expression_statement "__dest = (void *)((int)pvVar26 + 0xc);" (assignment_expression "__dest = (void *)((int)pvVar26 + 0xc)" (identifier "__dest") (= "=") (cast_expression "(void *)((int)pvVar26 + 0xc)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar26 + 0xc)" (( "(") (binary_expression "(int)pvVar26 + 0xc" (cast_expression "(int)pvVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar26")) (+ "+") (number_literal "0xc")) () ")")))) (; ";")) (expression_statement "pvVar32 = (void *)((int)__dest + sVar55);" (assignment_expression "pvVar32 = (void *)((int)__dest + sVar55)" (identifier "pvVar32") (= "=") (cast_expression "(void *)((int)__dest + sVar55)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)__dest + sVar55)" (( "(") (binary_expression "(int)__dest + sVar55" (cast_expression "(int)__dest" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__dest")) (+ "+") (identifier "sVar55")) () ")")))) (; ";")) (expression_statement "sVar29 = sVar28;" (assignment_expression "sVar29 = sVar28" (identifier "sVar29") (= "=") (identifier "sVar28")) (; ";")) (if_statement "if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }\n                else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }" (if "if") (parenthesized_expression "(((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23))))" (( "(") (binary_expression "((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&\n                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))" (parenthesized_expression "((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c))" (( "(") (binary_expression "(sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)" (parenthesized_expression "(sVar28 == local_78)" (( "(") (binary_expression "sVar28 == local_78" (identifier "sVar28") (== "==") (identifier "local_78")) () ")")) (&& "&&") (parenthesized_expression "(sVar29 = local_7c, sVar7 == local_7c)" (( "(") (comma_expression "sVar29 = local_7c, sVar7 == local_7c" (assignment_expression "sVar29 = local_7c" (identifier "sVar29") (= "=") (identifier "local_7c")) (, ",") (binary_expression "sVar7 == local_7c" (identifier "sVar7") (== "==") (identifier "local_7c"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)))" (( "(") (parenthesized_expression "(sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23))" (( "(") (comma_expression "sVar29 = sVar53, psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)" (assignment_expression "sVar29 = sVar53" (identifier "sVar29") (= "=") (identifier "sVar53")) (, ",") (binary_expression "psVar38[10] == sVar53 &&\n                    (sVar29 = sVar23, psVar38[9] == sVar23)" (binary_expression "psVar38[10] == sVar53" (subscript_expression "psVar38[10]" (identifier "psVar38") ([ "[") (number_literal "10") (] "]")) (== "==") (identifier "sVar53")) (&& "&&") (parenthesized_expression "(sVar29 = sVar23, psVar38[9] == sVar23)" (( "(") (comma_expression "sVar29 = sVar23, psVar38[9] == sVar23" (assignment_expression "sVar29 = sVar23" (identifier "sVar29") (= "=") (identifier "sVar23")) (, ",") (binary_expression "psVar38[9] == sVar23" (subscript_expression "psVar38[9]" (identifier "psVar38") ([ "[") (number_literal "9") (] "]")) (== "==") (identifier "sVar23"))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                }" ({ "{") (expression_statement "(*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18);" (call_expression "(*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18)" (parenthesized_expression "(*pcVar8)" (( "(") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) () ")")) (argument_list "(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,\n                            iVar18)" (( "(") (identifier "sVar55") (, ",") (number_literal "0") (, ",") (identifier "pvVar26") (, ",") (identifier "sVar23") (, ",") (identifier "param_2") (, ",") (identifier "sVar53") (, ",") (identifier "sVar30") (, ",") (number_literal "0") (, ",") (identifier "sVar23") (, ",") (identifier "__dest") (, ",") (identifier "iVar31") (, ",") (identifier "iVar18") () ")"))) (; ";")) (expression_statement "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);" (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))" (( "(") (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x30)" (* "*") (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x30)" (* "*") (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x30)" (( "(") (binary_expression "*(int *)((int)param_1 + 4) + 0x30" (pointer_expression "*(int *)((int)param_1 + 4)" (* "*") (cast_expression "(int *)((int)param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 4)" (( "(") (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (argument_list "(0,0,iVar31)" (( "(") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "iVar31") () ")"))) (; ";")) (expression_statement "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);" (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))" (( "(") (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x30)" (* "*") (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x30)" (* "*") (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x30)" (( "(") (binary_expression "*(int *)((int)param_1 + 4) + 0x30" (pointer_expression "*(int *)((int)param_1 + 4)" (* "*") (cast_expression "(int *)((int)param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 4)" (( "(") (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (argument_list "(sVar30,uVar13,iVar18)" (( "(") (identifier "sVar30") (, ",") (identifier "uVar13") (, ",") (identifier "iVar18") () ")"))) (; ";")) (expression_statement "memcpy(__dest,(void *)psVar38[3],sVar55);" (call_expression "memcpy(__dest,(void *)psVar38[3],sVar55)" (identifier "memcpy") (argument_list "(__dest,(void *)psVar38[3],sVar55)" (( "(") (identifier "__dest") (, ",") (cast_expression "(void *)psVar38[3]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "psVar38[3]" (identifier "psVar38") ([ "[") (number_literal "3") (] "]"))) (, ",") (identifier "sVar55") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }" (else "else") (compound_statement "{\n                  (*pcVar8)(sVar55,0,pvVar26,sVar29);\n                  uVar14 = 8;\n                  iVar21 = *(int *)((int)param_1 + 4);\n                  puVar35 = (undefined4 *)(iVar21 + 0x30);\n                  if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }\n                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);\n                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);\n                  memcpy(__dest,(void *)psVar38[3],sVar55);\n                  iVar31 = *(int *)((int)param_1 + 4);\n                  pvVar26 = pvVar32;\n                  if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }\n                }" ({ "{") (expression_statement "(*pcVar8)(sVar55,0,pvVar26,sVar29);" (call_expression "(*pcVar8)(sVar55,0,pvVar26,sVar29)" (parenthesized_expression "(*pcVar8)" (( "(") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) () ")")) (argument_list "(sVar55,0,pvVar26,sVar29)" (( "(") (identifier "sVar55") (, ",") (number_literal "0") (, ",") (identifier "pvVar26") (, ",") (identifier "sVar29") () ")"))) (; ";")) (expression_statement "uVar14 = 8;" (assignment_expression "uVar14 = 8" (identifier "uVar14") (= "=") (number_literal "8")) (; ";")) (expression_statement "iVar21 = *(int *)((int)param_1 + 4);" (assignment_expression "iVar21 = *(int *)((int)param_1 + 4)" (identifier "iVar21") (= "=") (pointer_expression "*(int *)((int)param_1 + 4)" (* "*") (cast_expression "(int *)((int)param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 4)" (( "(") (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "puVar35 = (undefined4 *)(iVar21 + 0x30);" (assignment_expression "puVar35 = (undefined4 *)(iVar21 + 0x30)" (identifier "puVar35") (= "=") (cast_expression "(undefined4 *)(iVar21 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x30)" (( "(") (binary_expression "iVar21 + 0x30" (identifier "iVar21") (+ "+") (number_literal "0x30")) () ")")))) (; ";")) (if_statement "if ((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {\n                    uVar14 = 0x10;\n                  }" (if "if") (parenthesized_expression "((*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02'))" (( "(") (binary_expression "(*(int *)(iVar21 + 4) == 5) &&\n                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')" (parenthesized_expression "(*(int *)(iVar21 + 4) == 5)" (( "(") (binary_expression "*(int *)(iVar21 + 4) == 5" (pointer_expression "*(int *)(iVar21 + 4)" (* "*") (cast_expression "(int *)(iVar21 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 4)" (( "(") (binary_expression "iVar21 + 4" (identifier "iVar21") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "5")) () ")")) (&& "&&") (parenthesized_expression "(iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')" (( "(") (comma_expression "iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02'" (assignment_expression "iVar21 = *(int *)((int)param_1 + 0xa0)" (identifier "iVar21") (= "=") (pointer_expression "*(int *)((int)param_1 + 0xa0)" (* "*") (cast_expression "(int *)((int)param_1 + 0xa0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0xa0)" (( "(") (binary_expression "(int)param_1 + 0xa0" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0xa0")) () ")"))))) (, ",") (binary_expression "*(char *)(iVar21 + 4) == '\x02'" (pointer_expression "*(char *)(iVar21 + 4)" (* "*") (cast_expression "(char *)(iVar21 + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 4)" (( "(") (binary_expression "iVar21 + 4" (identifier "iVar21") (+ "+") (number_literal "4")) () ")")))) (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'")))) () ")"))) () ")")) (compound_statement "{\n                    uVar14 = 0x10;\n                  }" ({ "{") (expression_statement "uVar14 = 0x10;" (assignment_expression "uVar14 = 0x10" (identifier "uVar14") (= "=") (number_literal "0x10")) (; ";")) (} "}"))) (expression_statement "(*(code *)*puVar35)(uVar14,0,iVar31,iVar21);" (call_expression "(*(code *)*puVar35)(uVar14,0,iVar31,iVar21)" (parenthesized_expression "(*(code *)*puVar35)" (( "(") (pointer_expression "*(code *)*puVar35" (* "*") (cast_expression "(code *)*puVar35" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar35" (* "*") (identifier "puVar35")))) () ")")) (argument_list "(uVar14,0,iVar31,iVar21)" (( "(") (identifier "uVar14") (, ",") (number_literal "0") (, ",") (identifier "iVar31") (, ",") (identifier "iVar21") () ")"))) (; ";")) (expression_statement "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);" (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))" (( "(") (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x30)" (* "*") (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x30)" (* "*") (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x30)" (( "(") (binary_expression "*(int *)((int)param_1 + 4) + 0x30" (pointer_expression "*(int *)((int)param_1 + 4)" (* "*") (cast_expression "(int *)((int)param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 4)" (( "(") (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (argument_list "(sVar30,uVar13,iVar18)" (( "(") (identifier "sVar30") (, ",") (identifier "uVar13") (, ",") (identifier "iVar18") () ")"))) (; ";")) (expression_statement "memcpy(__dest,(void *)psVar38[3],sVar55);" (call_expression "memcpy(__dest,(void *)psVar38[3],sVar55)" (identifier "memcpy") (argument_list "(__dest,(void *)psVar38[3],sVar55)" (( "(") (identifier "__dest") (, ",") (cast_expression "(void *)psVar38[3]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "psVar38[3]" (identifier "psVar38") ([ "[") (number_literal "3") (] "]"))) (, ",") (identifier "sVar55") () ")"))) (; ";")) (expression_statement "iVar31 = *(int *)((int)param_1 + 4);" (assignment_expression "iVar31 = *(int *)((int)param_1 + 4)" (identifier "iVar31") (= "=") (pointer_expression "*(int *)((int)param_1 + 4)" (* "*") (cast_expression "(int *)((int)param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 4)" (( "(") (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "pvVar26 = pvVar32;" (assignment_expression "pvVar26 = pvVar32" (identifier "pvVar26") (= "=") (identifier "pvVar32")) (; ";")) (if_statement "if ((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')) {\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }\n                  else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }" (if "if") (parenthesized_expression "((*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02'))" (( "(") (binary_expression "(*(int *)(iVar31 + 4) == 5) &&\n                     (pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')" (parenthesized_expression "(*(int *)(iVar31 + 4) == 5)" (( "(") (binary_expression "*(int *)(iVar31 + 4) == 5" (pointer_expression "*(int *)(iVar31 + 4)" (* "*") (cast_expression "(int *)(iVar31 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar31 + 4)" (( "(") (binary_expression "iVar31 + 4" (identifier "iVar31") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "5")) () ")")) (&& "&&") (parenthesized_expression "(pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02')" (( "(") (comma_expression "pvVar26 = *(void **)((int)param_1 + 0xa0),\n                     *(char *)((int)pvVar26 + 4) == '\x02'" (assignment_expression "pvVar26 = *(void **)((int)param_1 + 0xa0)" (identifier "pvVar26") (= "=") (pointer_expression "*(void **)((int)param_1 + 0xa0)" (* "*") (cast_expression "(void **)((int)param_1 + 0xa0)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)param_1 + 0xa0)" (( "(") (binary_expression "(int)param_1 + 0xa0" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0xa0")) () ")"))))) (, ",") (binary_expression "*(char *)((int)pvVar26 + 4) == '\x02'" (pointer_expression "*(char *)((int)pvVar26 + 4)" (* "*") (cast_expression "(char *)((int)pvVar26 + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar26 + 4)" (( "(") (binary_expression "(int)pvVar26 + 4" (cast_expression "(int)pvVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar26")) (+ "+") (number_literal "4")) () ")")))) (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'")))) () ")"))) () ")")) (compound_statement "{\n                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));\n                    pvVar32 = (void *)((int)pvVar32 + 0x10);\n                  }" ({ "{") (expression_statement "(**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);" (call_expression "(**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1)" (parenthesized_expression "(**(code **)(iVar31 + 0x24))" (( "(") (pointer_expression "**(code **)(iVar31 + 0x24)" (* "*") (pointer_expression "*(code **)(iVar31 + 0x24)" (* "*") (cast_expression "(code **)(iVar31 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar31 + 0x24)" (( "(") (binary_expression "iVar31 + 0x24" (identifier "iVar31") (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "(sVar7,sVar28,pvVar32,param_1)" (( "(") (identifier "sVar7") (, ",") (identifier "sVar28") (, ",") (identifier "pvVar32") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "(**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));" (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x24))\n                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8))" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x24))" (( "(") (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x24)" (* "*") (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x24)" (* "*") (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x24)" (( "(") (binary_expression "*(int *)((int)param_1 + 4) + 0x24" (pointer_expression "*(int *)((int)param_1 + 4)" (* "*") (cast_expression "(int *)((int)param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 4)" (( "(") (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "(psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8))" (( "(") (subscript_expression "psVar38[9]" (identifier "psVar38") ([ "[") (number_literal "9") (] "]")) (, ",") (subscript_expression "psVar38[10]" (identifier "psVar38") ([ "[") (number_literal "10") (] "]")) (, ",") (cast_expression "(void *)((int)pvVar32 + 8)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar32 + 8)" (( "(") (binary_expression "(int)pvVar32 + 8" (cast_expression "(int)pvVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar32")) (+ "+") (number_literal "8")) () ")"))) () ")"))) (; ";")) (expression_statement "pvVar32 = (void *)((int)pvVar32 + 0x10);" (assignment_expression "pvVar32 = (void *)((int)pvVar32 + 0x10)" (identifier "pvVar32") (= "=") (cast_expression "(void *)((int)pvVar32 + 0x10)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar32 + 0x10)" (( "(") (binary_expression "(int)pvVar32 + 0x10" (cast_expression "(int)pvVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar32")) (+ "+") (number_literal "0x10")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }" (else "else") (compound_statement "{\n                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);\n                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);\n                    pvVar32 = (void *)((int)pvVar32 + 8);\n                  }" ({ "{") (expression_statement "(**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);" (call_expression "(**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26)" (parenthesized_expression "(**(code **)(iVar31 + 0x30))" (( "(") (pointer_expression "**(code **)(iVar31 + 0x30)" (* "*") (pointer_expression "*(code **)(iVar31 + 0x30)" (* "*") (cast_expression "(code **)(iVar31 + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar31 + 0x30)" (( "(") (binary_expression "iVar31 + 0x30" (identifier "iVar31") (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (argument_list "(sVar7,sVar28,pvVar32,pvVar26)" (( "(") (identifier "sVar7") (, ",") (identifier "sVar28") (, ",") (identifier "pvVar32") (, ",") (identifier "pvVar26") () ")"))) (; ";")) (expression_statement "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);" (call_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))\n                              (psVar38[9],psVar38[10],(int)pvVar32 + 4)" (parenthesized_expression "(**(code **)(*(int *)((int)param_1 + 4) + 0x30))" (( "(") (pointer_expression "**(code **)(*(int *)((int)param_1 + 4) + 0x30)" (* "*") (pointer_expression "*(code **)(*(int *)((int)param_1 + 4) + 0x30)" (* "*") (cast_expression "(code **)(*(int *)((int)param_1 + 4) + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x30)" (( "(") (binary_expression "*(int *)((int)param_1 + 4) + 0x30" (pointer_expression "*(int *)((int)param_1 + 4)" (* "*") (cast_expression "(int *)((int)param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 4)" (( "(") (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (argument_list "(psVar38[9],psVar38[10],(int)pvVar32 + 4)" (( "(") (subscript_expression "psVar38[9]" (identifier "psVar38") ([ "[") (number_literal "9") (] "]")) (, ",") (subscript_expression "psVar38[10]" (identifier "psVar38") ([ "[") (number_literal "10") (] "]")) (, ",") (binary_expression "(int)pvVar32 + 4" (cast_expression "(int)pvVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar32")) (+ "+") (number_literal "4")) () ")"))) (; ";")) (expression_statement "pvVar32 = (void *)((int)pvVar32 + 8);" (assignment_expression "pvVar32 = (void *)((int)pvVar32 + 8)" (identifier "pvVar32") (= "=") (cast_expression "(void *)((int)pvVar32 + 8)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar32 + 8)" (( "(") (binary_expression "(int)pvVar32 + 8" (cast_expression "(int)pvVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar32")) (+ "+") (number_literal "8")) () ")")))) (; ";")) (} "}")))) (} "}")))) (} "}")))) (expression_statement "local_7c = psVar38[7];" (assignment_expression "local_7c = psVar38[7]" (identifier "local_7c") (= "=") (subscript_expression "psVar38[7]" (identifier "psVar38") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "local_78 = psVar38[8];" (assignment_expression "local_78 = psVar38[8]" (identifier "local_78") (= "=") (subscript_expression "psVar38[8]" (identifier "psVar38") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "sVar23 = psVar38[9];" (assignment_expression "sVar23 = psVar38[9]" (identifier "sVar23") (= "=") (subscript_expression "psVar38[9]" (identifier "psVar38") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "sVar53 = psVar38[10];" (assignment_expression "sVar53 = psVar38[10]" (identifier "sVar53") (= "=") (subscript_expression "psVar38[10]" (identifier "psVar38") ([ "[") (number_literal "10") (] "]"))) (; ";")) (} "}"))) (expression_statement "local_a8 = (size_t *)((int)local_a8 + sVar54);" (assignment_expression "local_a8 = (size_t *)((int)local_a8 + sVar54)" (identifier "local_a8") (= "=") (cast_expression "(size_t *)((int)local_a8 + sVar54)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a8 + sVar54)" (( "(") (binary_expression "(int)local_a8 + sVar54" (cast_expression "(int)local_a8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a8")) (+ "+") (identifier "sVar54")) () ")")))) (; ";")) (expression_statement "pvVar26 = pvVar32;" (assignment_expression "pvVar26 = pvVar32" (identifier "pvVar26") (= "=") (identifier "pvVar32")) (; ";")) (} "}"))) (expression_statement "sVar23 = (int)pvVar26 - (int)pvVar52;" (assignment_expression "sVar23 = (int)pvVar26 - (int)pvVar52" (identifier "sVar23") (= "=") (binary_expression "(int)pvVar26 - (int)pvVar52" (cast_expression "(int)pvVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar26")) (- "-") (cast_expression "(int)pvVar52" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar52")))) (; ";")) (expression_statement "uVar17 = (int)sVar23 >> 0x1f;" (assignment_expression "uVar17 = (int)sVar23 >> 0x1f" (identifier "uVar17") (= "=") (binary_expression "(int)sVar23 >> 0x1f" (cast_expression "(int)sVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar23")) (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "memcpy(pvVar6,pvVar52,sVar23);" (call_expression "memcpy(pvVar6,pvVar52,sVar23)" (identifier "memcpy") (argument_list "(pvVar6,pvVar52,sVar23)" (( "(") (identifier "pvVar6") (, ",") (identifier "pvVar52") (, ",") (identifier "sVar23") () ")"))) (; ";")) (expression_statement "free(pvVar52);" (call_expression "free(pvVar52)" (identifier "free") (argument_list "(pvVar52)" (( "(") (identifier "pvVar52") () ")"))) (; ";")) (expression_statement "free(local_74);" (call_expression "free(local_74)" (identifier "free") (argument_list "(local_74)" (( "(") (identifier "local_74") () ")"))) (; ";")) (expression_statement "local_6c = param_2;" (assignment_expression "local_6c = param_2" (identifier "local_6c") (= "=") (identifier "param_2")) (; ";")) (expression_statement "DAT_00040bb8 = sVar23;" (assignment_expression "DAT_00040bb8 = sVar23" (identifier "DAT_00040bb8") (= "=") (identifier "sVar23")) (; ";")) (expression_statement "DAT_00040bbc = uVar17;" (assignment_expression "DAT_00040bbc = uVar17" (identifier "DAT_00040bbc") (= "=") (identifier "uVar17")) (; ";")) (if_statement "if ((uVar39 != uVar17) || (sVar22 != sVar23)) {\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }" (if "if") (parenthesized_expression "((uVar39 != uVar17) || (sVar22 != sVar23))" (( "(") (binary_expression "(uVar39 != uVar17) || (sVar22 != sVar23)" (parenthesized_expression "(uVar39 != uVar17)" (( "(") (binary_expression "uVar39 != uVar17" (identifier "uVar39") (!= "!=") (identifier "uVar17")) () ")")) (|| "||") (parenthesized_expression "(sVar22 != sVar23)" (( "(") (binary_expression "sVar22 != sVar23" (identifier "sVar22") (!= "!=") (identifier "sVar23")) () ")"))) () ")")) (compound_statement "{\n            iVar31 = *(int *)(iVar12 + 0x54);\n            if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;\n            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);\n            FUN_0002d3a0(0,param_2,iVar12,uVar13);\n          }" ({ "{") (expression_statement "iVar31 = *(int *)(iVar12 + 0x54);" (assignment_expression "iVar31 = *(int *)(iVar12 + 0x54)" (identifier "iVar31") (= "=") (pointer_expression "*(int *)(iVar12 + 0x54)" (* "*") (cast_expression "(int *)(iVar12 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x54)" (( "(") (binary_expression "iVar12 + 0x54" (identifier "iVar12") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (if_statement "if ((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))\n            goto LAB_00018e0e;" (if "if") (parenthesized_expression "((iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))" (( "(") (binary_expression "(iVar31 != 0) &&\n               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0)" (parenthesized_expression "(iVar31 != 0)" (( "(") (binary_expression "iVar31 != 0" (identifier "iVar31") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0)" (( "(") (comma_expression "iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0" (assignment_expression "iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17)" (identifier "iVar31") (= "=") (call_expression "bfd_set_section_size(param_2,iVar31,sVar23,uVar17)" (identifier "bfd_set_section_size") (argument_list "(param_2,iVar31,sVar23,uVar17)" (( "(") (identifier "param_2") (, ",") (identifier "iVar31") (, ",") (identifier "sVar23") (, ",") (identifier "uVar17") () ")")))) (, ",") (binary_expression "iVar31 != 0" (identifier "iVar31") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_00018e0e;" (goto "goto") (statement_identifier "LAB_00018e0e") (; ";"))) (expression_statement "uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);" (assignment_expression "uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,"warning: failed to set merged notes size",5,iVar31)" (identifier "dcgettext") (argument_list "(0,"warning: failed to set merged notes size",5,iVar31)" (( "(") (number_literal "0") (, ",") (string_literal ""warning: failed to set merged notes size"" (" """) (string_content "warning: failed to set merged notes size") (" """)) (, ",") (number_literal "5") (, ",") (identifier "iVar31") () ")")))) (; ";")) (expression_statement "FUN_0002d3a0(0,param_2,iVar12,uVar13);" (call_expression "FUN_0002d3a0(0,param_2,iVar12,uVar13)" (identifier "FUN_0002d3a0") (argument_list "(0,param_2,iVar12,uVar13)" (( "(") (number_literal "0") (, ",") (identifier "param_2") (, ",") (identifier "iVar12") (, ",") (identifier "uVar13") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }" (else "else") (compound_statement "{\n          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);\nLAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }\nLAB_0001ae41:\n          free(local_74);\n        }" ({ "{") (expression_statement "iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);" (assignment_expression "iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c)" (identifier "iVar31") (= "=") (call_expression "dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c)" (identifier "dcgettext") (argument_list "(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c)" (( "(") (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") (, ",") (identifier "local_7c") () ")")))) (; ";")) (labeled_statement "LAB_0001ae12:\n          if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }" (statement_identifier "LAB_0001ae12") (: ":") (if_statement "if (iVar31 != 0) {\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 1;\n          }" (if "if") (parenthesized_expression "(iVar31 != 0)" (( "(") (binary_expression "iVar31 != 0" (identifier "iVar31") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            bfd_set_error(0x11);\n            FUN_0002d3a0(0,param_1,iVar12,iVar31);\n            DAT_00040bc8 = 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_0002d3a0(0,param_1,iVar12,iVar31);" (call_expression "FUN_0002d3a0(0,param_1,iVar12,iVar31)" (identifier "FUN_0002d3a0") (argument_list "(0,param_1,iVar12,iVar31)" (( "(") (number_literal "0") (, ",") (identifier "param_1") (, ",") (identifier "iVar12") (, ",") (identifier "iVar31") () ")"))) (; ";")) (expression_statement "DAT_00040bc8 = 1;" (assignment_expression "DAT_00040bc8 = 1" (identifier "DAT_00040bc8") (= "=") (number_literal "1")) (; ";")) (} "}")))) (labeled_statement "LAB_0001ae41:\n          free(local_74);" (statement_identifier "LAB_0001ae41") (: ":") (expression_statement "free(local_74);" (call_expression "free(local_74)" (identifier "free") (argument_list "(local_74)" (( "(") (identifier "local_74") () ")"))) (; ";"))) (} "}")))) (expression_statement "free(DAT_00040bc0);" (call_expression "free(DAT_00040bc0)" (identifier "free") (argument_list "(DAT_00040bc0)" (( "(") (identifier "DAT_00040bc0") () ")"))) (; ";")) (expression_statement "DAT_00040bc0 = (void *)0x0;" (assignment_expression "DAT_00040bc0 = (void *)0x0" (identifier "DAT_00040bc0") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "DAT_00040bc4 = 0;" (assignment_expression "DAT_00040bc4 = 0" (identifier "DAT_00040bc4") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00040bb8 = 0;" (assignment_expression "DAT_00040bb8 = 0" (identifier "DAT_00040bb8") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00040bbc = 0;" (assignment_expression "DAT_00040bbc = 0" (identifier "DAT_00040bbc") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")))) (} "}"))) (labeled_statement "LAB_00018e0e:\n  param_2 = local_6c;" (statement_identifier "LAB_00018e0e") (: ":") (expression_statement "param_2 = local_6c;" (assignment_expression "param_2 = local_6c" (identifier "param_2") (= "=") (identifier "local_6c")) (; ";"))) (expression_statement "iVar31 = DAT_00040b4c;" (assignment_expression "iVar31 = DAT_00040b4c" (identifier "iVar31") (= "=") (identifier "DAT_00040b4c")) (; ";")) (for_statement "for (puVar35 = DAT_00040b50; DAT_00040b4c = iVar31, puVar35 != (undefined4 *)0x0;\n      puVar35 = (undefined4 *)*puVar35) {\n    iVar12 = bfd_get_section_by_name(param_1,puVar35[1]);\n    if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      uVar14 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n      FUN_0002d3a0(0,param_1,0,uVar14,uVar13);\n    }\n    else {\n      if ((*(byte *)(iVar12 + 0x15) & 1) == 0) {\n        pcVar25 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar22 = *(size_t *)(iVar12 + 0x2c);\n        iVar31 = *(int *)(iVar12 + 0x30);\n        if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar25 = "can\'t dump section - it is empty";\n      }\n      uVar13 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n    }\nLAB_00018eb1:\n    iVar31 = DAT_00040b4c;\n  }" (for "for") (( "(") (assignment_expression "puVar35 = DAT_00040b50" (identifier "puVar35") (= "=") (identifier "DAT_00040b50")) (; ";") (comma_expression "DAT_00040b4c = iVar31, puVar35 != (undefined4 *)0x0" (assignment_expression "DAT_00040b4c = iVar31" (identifier "DAT_00040b4c") (= "=") (identifier "iVar31")) (, ",") (binary_expression "puVar35 != (undefined4 *)0x0" (identifier "puVar35") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";") (assignment_expression "puVar35 = (undefined4 *)*puVar35" (identifier "puVar35") (= "=") (cast_expression "(undefined4 *)*puVar35" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar35" (* "*") (identifier "puVar35")))) () ")") (compound_statement "{\n    iVar12 = bfd_get_section_by_name(param_1,puVar35[1]);\n    if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      uVar14 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n      FUN_0002d3a0(0,param_1,0,uVar14,uVar13);\n    }\n    else {\n      if ((*(byte *)(iVar12 + 0x15) & 1) == 0) {\n        pcVar25 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar22 = *(size_t *)(iVar12 + 0x2c);\n        iVar31 = *(int *)(iVar12 + 0x30);\n        if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar25 = "can\'t dump section - it is empty";\n      }\n      uVar13 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n    }\nLAB_00018eb1:\n    iVar31 = DAT_00040b4c;\n  }" ({ "{") (expression_statement "iVar12 = bfd_get_section_by_name(param_1,puVar35[1]);" (assignment_expression "iVar12 = bfd_get_section_by_name(param_1,puVar35[1])" (identifier "iVar12") (= "=") (call_expression "bfd_get_section_by_name(param_1,puVar35[1])" (identifier "bfd_get_section_by_name") (argument_list "(param_1,puVar35[1])" (( "(") (identifier "param_1") (, ",") (subscript_expression "puVar35[1]" (identifier "puVar35") ([ "[") (number_literal "1") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar12 == 0) {\n      uVar13 = puVar35[1];\n      uVar14 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n      FUN_0002d3a0(0,param_1,0,uVar14,uVar13);\n    }\n    else {\n      if ((*(byte *)(iVar12 + 0x15) & 1) == 0) {\n        pcVar25 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar22 = *(size_t *)(iVar12 + 0x2c);\n        iVar31 = *(int *)(iVar12 + 0x30);\n        if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar25 = "can\'t dump section - it is empty";\n      }\n      uVar13 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n    }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar13 = puVar35[1];\n      uVar14 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);\n      FUN_0002d3a0(0,param_1,0,uVar14,uVar13);\n    }" ({ "{") (expression_statement "uVar13 = puVar35[1];" (assignment_expression "uVar13 = puVar35[1]" (identifier "uVar13") (= "=") (subscript_expression "puVar35[1]" (identifier "puVar35") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar14 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);" (assignment_expression "uVar14 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5)" (identifier "uVar14") (= "=") (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_0002d3a0(0,param_1,0,uVar14,uVar13);" (call_expression "FUN_0002d3a0(0,param_1,0,uVar14,uVar13)" (identifier "FUN_0002d3a0") (argument_list "(0,param_1,0,uVar14,uVar13)" (( "(") (number_literal "0") (, ",") (identifier "param_1") (, ",") (number_literal "0") (, ",") (identifier "uVar14") (, ",") (identifier "uVar13") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      if ((*(byte *)(iVar12 + 0x15) & 1) == 0) {\n        pcVar25 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar22 = *(size_t *)(iVar12 + 0x2c);\n        iVar31 = *(int *)(iVar12 + 0x30);\n        if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar25 = "can\'t dump section - it is empty";\n      }\n      uVar13 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n    }" (else "else") (compound_statement "{\n      if ((*(byte *)(iVar12 + 0x15) & 1) == 0) {\n        pcVar25 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar22 = *(size_t *)(iVar12 + 0x2c);\n        iVar31 = *(int *)(iVar12 + 0x30);\n        if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar25 = "can\'t dump section - it is empty";\n      }\n      uVar13 = dcgettext(0,pcVar25,5);\n      FUN_0002d3a0(0,param_1,iVar12,uVar13);\n    }" ({ "{") (if_statement "if ((*(byte *)(iVar12 + 0x15) & 1) == 0) {\n        pcVar25 = "can\'t dump section - it has no contents";\n      }\n      else {\n        sVar22 = *(size_t *)(iVar12 + 0x2c);\n        iVar31 = *(int *)(iVar12 + 0x30);\n        if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar25 = "can\'t dump section - it is empty";\n      }" (if "if") (parenthesized_expression "((*(byte *)(iVar12 + 0x15) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(iVar12 + 0x15) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar12 + 0x15) & 1)" (( "(") (binary_expression "*(byte *)(iVar12 + 0x15) & 1" (pointer_expression "*(byte *)(iVar12 + 0x15)" (* "*") (cast_expression "(byte *)(iVar12 + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x15)" (( "(") (binary_expression "iVar12 + 0x15" (identifier "iVar12") (+ "+") (number_literal "0x15")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar25 = "can\'t dump section - it has no contents";\n      }" ({ "{") (expression_statement "pcVar25 = "can\'t dump section - it has no contents";" (assignment_expression "pcVar25 = "can\'t dump section - it has no contents"" (identifier "pcVar25") (= "=") (string_literal ""can\'t dump section - it has no contents"" (" """) (string_content "can") (escape_sequence "\'") (string_content "t dump section - it has no contents") (" """))) (; ";")) (} "}")) (else_clause "else {\n        sVar22 = *(size_t *)(iVar12 + 0x2c);\n        iVar31 = *(int *)(iVar12 + 0x30);\n        if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar25 = "can\'t dump section - it is empty";\n      }" (else "else") (compound_statement "{\n        sVar22 = *(size_t *)(iVar12 + 0x2c);\n        iVar31 = *(int *)(iVar12 + 0x30);\n        if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }\n        pcVar25 = "can\'t dump section - it is empty";\n      }" ({ "{") (expression_statement "sVar22 = *(size_t *)(iVar12 + 0x2c);" (assignment_expression "sVar22 = *(size_t *)(iVar12 + 0x2c)" (identifier "sVar22") (= "=") (pointer_expression "*(size_t *)(iVar12 + 0x2c)" (* "*") (cast_expression "(size_t *)(iVar12 + 0x2c)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x2c)" (( "(") (binary_expression "iVar12 + 0x2c" (identifier "iVar12") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "iVar31 = *(int *)(iVar12 + 0x30);" (assignment_expression "iVar31 = *(int *)(iVar12 + 0x30)" (identifier "iVar31") (= "=") (pointer_expression "*(int *)(iVar12 + 0x30)" (* "*") (cast_expression "(int *)(iVar12 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x30)" (( "(") (binary_expression "iVar12 + 0x30" (identifier "iVar12") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (if_statement "if (iVar31 != 0 || sVar22 != 0) {\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }" (if "if") (parenthesized_expression "(iVar31 != 0 || sVar22 != 0)" (( "(") (binary_expression "iVar31 != 0 || sVar22 != 0" (binary_expression "iVar31 != 0" (identifier "iVar31") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "sVar22 != 0" (identifier "sVar22") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n          __s = fopen64((char *)puVar35[2],"w");\n          if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }\n          goto LAB_00018eb1;\n        }" ({ "{") (expression_statement "__s = fopen64((char *)puVar35[2],"w");" (assignment_expression "__s = fopen64((char *)puVar35[2],"w")" (identifier "__s") (= "=") (call_expression "fopen64((char *)puVar35[2],"w")" (identifier "fopen64") (argument_list "((char *)puVar35[2],"w")" (( "(") (cast_expression "(char *)puVar35[2]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar35[2]" (identifier "puVar35") ([ "[") (number_literal "2") (] "]"))) (, ",") (string_literal ""w"" (" """) (string_content "w") (" """)) () ")")))) (; ";")) (if_statement "if (__s == (FILE *)0x0) {\n            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }\n          else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\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            uVar13 = dcgettext(0,"could not open section dump file",5);\n            FUN_0002d3a0(puVar35[2],0,0,uVar13);\n          }" ({ "{") (expression_statement "uVar13 = dcgettext(0,"could not open section dump file",5);" (assignment_expression "uVar13 = dcgettext(0,"could not open section dump file",5)" (identifier "uVar13") (= "=") (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_0002d3a0(puVar35[2],0,0,uVar13);" (call_expression "FUN_0002d3a0(puVar35[2],0,0,uVar13)" (identifier "FUN_0002d3a0") (argument_list "(puVar35[2],0,0,uVar13)" (( "(") (subscript_expression "puVar35[2]" (identifier "puVar35") ([ "[") (number_literal "2") (] "]")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "uVar13") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }" (else "else") (compound_statement "{\n            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);\n            if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }\n            fclose(__s);\n            free(local_34);\n          }" ({ "{") (expression_statement "iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);" (assignment_expression "iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34)" (identifier "iVar18") (= "=") (call_expression "bfd_malloc_and_get_section(param_1,iVar12,&local_34)" (identifier "bfd_malloc_and_get_section") (argument_list "(param_1,iVar12,&local_34)" (( "(") (identifier "param_1") (, ",") (identifier "iVar12") (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")")))) (; ";")) (if_statement "if (iVar18 == 0) {\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }\n            else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              uVar13 = dcgettext(0,"could not retrieve section contents",5);\n              FUN_0002d3a0(0,param_1,iVar12,uVar13);\n            }" ({ "{") (expression_statement "uVar13 = dcgettext(0,"could not retrieve section contents",5);" (assignment_expression "uVar13 = dcgettext(0,"could not retrieve section contents",5)" (identifier "uVar13") (= "=") (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_0002d3a0(0,param_1,iVar12,uVar13);" (call_expression "FUN_0002d3a0(0,param_1,iVar12,uVar13)" (identifier "FUN_0002d3a0") (argument_list "(0,param_1,iVar12,uVar13)" (( "(") (number_literal "0") (, ",") (identifier "param_1") (, ",") (identifier "iVar12") (, ",") (identifier "uVar13") () ")"))) (; ";")) (} "}")) (else_clause "else {\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }" (else "else") (compound_statement "{\n              sVar23 = fwrite(local_34,1,sVar22,__s);\n              if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }\n            }" ({ "{") (expression_statement "sVar23 = fwrite(local_34,1,sVar22,__s);" (assignment_expression "sVar23 = fwrite(local_34,1,sVar22,__s)" (identifier "sVar23") (= "=") (call_expression "fwrite(local_34,1,sVar22,__s)" (identifier "fwrite") (argument_list "(local_34,1,sVar22,__s)" (( "(") (identifier "local_34") (, ",") (number_literal "1") (, ",") (identifier "sVar22") (, ",") (identifier "__s") () ")")))) (; ";")) (if_statement "if (iVar31 != 0 || sVar22 != sVar23) {\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }" (if "if") (parenthesized_expression "(iVar31 != 0 || sVar22 != sVar23)" (( "(") (binary_expression "iVar31 != 0 || sVar22 != sVar23" (binary_expression "iVar31 != 0" (identifier "iVar31") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "sVar22 != sVar23" (identifier "sVar22") (!= "!=") (identifier "sVar23"))) () ")")) (compound_statement "{\n                piVar19 = __errno_location();\n                pcVar25 = strerror(*piVar19);\n                uVar13 = puVar35[2];\n                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);\n                FUN_0002c910(uVar14,uVar13,pcVar25);\n                free(local_34);\n                return 0;\n              }" ({ "{") (expression_statement "piVar19 = __errno_location();" (assignment_expression "piVar19 = __errno_location()" (identifier "piVar19") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar25 = strerror(*piVar19);" (assignment_expression "pcVar25 = strerror(*piVar19)" (identifier "pcVar25") (= "=") (call_expression "strerror(*piVar19)" (identifier "strerror") (argument_list "(*piVar19)" (( "(") (pointer_expression "*piVar19" (* "*") (identifier "piVar19")) () ")")))) (; ";")) (expression_statement "uVar13 = puVar35[2];" (assignment_expression "uVar13 = puVar35[2]" (identifier "uVar13") (= "=") (subscript_expression "puVar35[2]" (identifier "puVar35") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);" (assignment_expression "uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5)" (identifier "uVar14") (= "=") (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_0002c910(uVar14,uVar13,pcVar25);" (call_expression "FUN_0002c910(uVar14,uVar13,pcVar25)" (identifier "FUN_0002c910") (argument_list "(uVar14,uVar13,pcVar25)" (( "(") (identifier "uVar14") (, ",") (identifier "uVar13") (, ",") (identifier "pcVar25") () ")"))) (; ";")) (expression_statement "free(local_34);" (call_expression "free(local_34)" (identifier "free") (argument_list "(local_34)" (( "(") (identifier "local_34") () ")"))) (; ";")) (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_34);" (call_expression "free(local_34)" (identifier "free") (argument_list "(local_34)" (( "(") (identifier "local_34") () ")"))) (; ";")) (} "}")))) (goto_statement "goto LAB_00018eb1;" (goto "goto") (statement_identifier "LAB_00018eb1") (; ";")) (} "}"))) (expression_statement "pcVar25 = "can\'t dump section - it is empty";" (assignment_expression "pcVar25 = "can\'t dump section - it is empty"" (identifier "pcVar25") (= "=") (string_literal ""can\'t dump section - it is empty"" (" """) (string_content "can") (escape_sequence "\'") (string_content "t dump section - it is empty") (" """))) (; ";")) (} "}")))) (expression_statement "uVar13 = dcgettext(0,pcVar25,5);" (assignment_expression "uVar13 = dcgettext(0,pcVar25,5)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,pcVar25,5)" (identifier "dcgettext") (argument_list "(0,pcVar25,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar25") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002d3a0(0,param_1,iVar12,uVar13);" (call_expression "FUN_0002d3a0(0,param_1,iVar12,uVar13)" (identifier "FUN_0002d3a0") (argument_list "(0,param_1,iVar12,uVar13)" (( "(") (number_literal "0") (, ",") (identifier "param_1") (, ",") (identifier "iVar12") (, ",") (identifier "uVar13") () ")"))) (; ";")) (} "}")))) (labeled_statement "LAB_00018eb1:\n    iVar31 = DAT_00040b4c;" (statement_identifier "LAB_00018eb1") (: ":") (expression_statement "iVar31 = DAT_00040b4c;" (assignment_expression "iVar31 = DAT_00040b4c" (identifier "iVar31") (= "=") (identifier "DAT_00040b4c")) (; ";"))) (} "}"))) (if_statement "if (iVar31 != 0) {\n    iVar12 = bfd_get_section_by_name(local_6c,".gnu_debuglink");\n    if (iVar12 == 0) {\n      iVar31 = bfd_create_gnu_debuglink_section(local_6c,DAT_00040b4c);\n      iVar12 = DAT_00040b4c;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,local_6c,0,uVar13,iVar12);\n        return 0;\n      }\n      if (*(int *)(local_6c[1] + 4) == 2) {\n        iVar12 = local_6c[0x18];\n        iVar18 = 0;\n        if (iVar12 == 0) {\nLAB_0001aa69:\n          uVar39 = 0x1000;\n          iVar12 = 0;\n        }\n        else {\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(iVar31 + 0x24) = uVar39;\n        *(int *)(iVar31 + 0x28) = iVar12;\n        *(uint *)(iVar31 + 0x1c) = uVar39;\n        *(int *)(iVar31 + 0x20) = iVar12;\n        *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      }\n    }\n    else {\n      iVar12 = *local_6c;\n      uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n      FUN_0002c910(uVar13,iVar12);\n      DAT_00040b4c = 0;\n      iVar31 = 0;\n    }\n  }" (if "if") (parenthesized_expression "(iVar31 != 0)" (( "(") (binary_expression "iVar31 != 0" (identifier "iVar31") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar12 = bfd_get_section_by_name(local_6c,".gnu_debuglink");\n    if (iVar12 == 0) {\n      iVar31 = bfd_create_gnu_debuglink_section(local_6c,DAT_00040b4c);\n      iVar12 = DAT_00040b4c;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,local_6c,0,uVar13,iVar12);\n        return 0;\n      }\n      if (*(int *)(local_6c[1] + 4) == 2) {\n        iVar12 = local_6c[0x18];\n        iVar18 = 0;\n        if (iVar12 == 0) {\nLAB_0001aa69:\n          uVar39 = 0x1000;\n          iVar12 = 0;\n        }\n        else {\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(iVar31 + 0x24) = uVar39;\n        *(int *)(iVar31 + 0x28) = iVar12;\n        *(uint *)(iVar31 + 0x1c) = uVar39;\n        *(int *)(iVar31 + 0x20) = iVar12;\n        *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      }\n    }\n    else {\n      iVar12 = *local_6c;\n      uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n      FUN_0002c910(uVar13,iVar12);\n      DAT_00040b4c = 0;\n      iVar31 = 0;\n    }\n  }" ({ "{") (expression_statement "iVar12 = bfd_get_section_by_name(local_6c,".gnu_debuglink");" (assignment_expression "iVar12 = bfd_get_section_by_name(local_6c,".gnu_debuglink")" (identifier "iVar12") (= "=") (call_expression "bfd_get_section_by_name(local_6c,".gnu_debuglink")" (identifier "bfd_get_section_by_name") (argument_list "(local_6c,".gnu_debuglink")" (( "(") (identifier "local_6c") (, ",") (string_literal "".gnu_debuglink"" (" """) (string_content ".gnu_debuglink") (" """)) () ")")))) (; ";")) (if_statement "if (iVar12 == 0) {\n      iVar31 = bfd_create_gnu_debuglink_section(local_6c,DAT_00040b4c);\n      iVar12 = DAT_00040b4c;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,local_6c,0,uVar13,iVar12);\n        return 0;\n      }\n      if (*(int *)(local_6c[1] + 4) == 2) {\n        iVar12 = local_6c[0x18];\n        iVar18 = 0;\n        if (iVar12 == 0) {\nLAB_0001aa69:\n          uVar39 = 0x1000;\n          iVar12 = 0;\n        }\n        else {\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(iVar31 + 0x24) = uVar39;\n        *(int *)(iVar31 + 0x28) = iVar12;\n        *(uint *)(iVar31 + 0x1c) = uVar39;\n        *(int *)(iVar31 + 0x20) = iVar12;\n        *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      }\n    }\n    else {\n      iVar12 = *local_6c;\n      uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n      FUN_0002c910(uVar13,iVar12);\n      DAT_00040b4c = 0;\n      iVar31 = 0;\n    }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar31 = bfd_create_gnu_debuglink_section(local_6c,DAT_00040b4c);\n      iVar12 = DAT_00040b4c;\n      if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,local_6c,0,uVar13,iVar12);\n        return 0;\n      }\n      if (*(int *)(local_6c[1] + 4) == 2) {\n        iVar12 = local_6c[0x18];\n        iVar18 = 0;\n        if (iVar12 == 0) {\nLAB_0001aa69:\n          uVar39 = 0x1000;\n          iVar12 = 0;\n        }\n        else {\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(iVar31 + 0x24) = uVar39;\n        *(int *)(iVar31 + 0x28) = iVar12;\n        *(uint *)(iVar31 + 0x1c) = uVar39;\n        *(int *)(iVar31 + 0x20) = iVar12;\n        *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      }\n    }" ({ "{") (expression_statement "iVar31 = bfd_create_gnu_debuglink_section(local_6c,DAT_00040b4c);" (assignment_expression "iVar31 = bfd_create_gnu_debuglink_section(local_6c,DAT_00040b4c)" (identifier "iVar31") (= "=") (call_expression "bfd_create_gnu_debuglink_section(local_6c,DAT_00040b4c)" (identifier "bfd_create_gnu_debuglink_section") (argument_list "(local_6c,DAT_00040b4c)" (( "(") (identifier "local_6c") (, ",") (identifier "DAT_00040b4c") () ")")))) (; ";")) (expression_statement "iVar12 = DAT_00040b4c;" (assignment_expression "iVar12 = DAT_00040b4c" (identifier "iVar12") (= "=") (identifier "DAT_00040b4c")) (; ";")) (if_statement "if (iVar31 == 0) {\n        uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,local_6c,0,uVar13,iVar12);\n        return 0;\n      }" (if "if") (parenthesized_expression "(iVar31 == 0)" (( "(") (binary_expression "iVar31 == 0" (identifier "iVar31") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,local_6c,0,uVar13,iVar12);\n        return 0;\n      }" ({ "{") (expression_statement "uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0);" (assignment_expression "uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,"cannot create debug link section `%s\'",5,0)" (identifier "dcgettext") (argument_list "(0,"cannot create debug link section `%s\'",5,0)" (( "(") (number_literal "0") (, ",") (string_literal ""cannot create debug link section `%s\'"" (" """) (string_content "cannot create debug link section `%s") (escape_sequence "\'") (" """)) (, ",") (number_literal "5") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "FUN_0002d3a0(0,local_6c,0,uVar13,iVar12);" (call_expression "FUN_0002d3a0(0,local_6c,0,uVar13,iVar12)" (identifier "FUN_0002d3a0") (argument_list "(0,local_6c,0,uVar13,iVar12)" (( "(") (number_literal "0") (, ",") (identifier "local_6c") (, ",") (number_literal "0") (, ",") (identifier "uVar13") (, ",") (identifier "iVar12") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (*(int *)(local_6c[1] + 4) == 2) {\n        iVar12 = local_6c[0x18];\n        iVar18 = 0;\n        if (iVar12 == 0) {\nLAB_0001aa69:\n          uVar39 = 0x1000;\n          iVar12 = 0;\n        }\n        else {\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(iVar31 + 0x24) = uVar39;\n        *(int *)(iVar31 + 0x28) = iVar12;\n        *(uint *)(iVar31 + 0x1c) = uVar39;\n        *(int *)(iVar31 + 0x20) = iVar12;\n        *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      }" (if "if") (parenthesized_expression "(*(int *)(local_6c[1] + 4) == 2)" (( "(") (binary_expression "*(int *)(local_6c[1] + 4) == 2" (pointer_expression "*(int *)(local_6c[1] + 4)" (* "*") (cast_expression "(int *)(local_6c[1] + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_6c[1] + 4)" (( "(") (binary_expression "local_6c[1] + 4" (subscript_expression "local_6c[1]" (identifier "local_6c") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        iVar12 = local_6c[0x18];\n        iVar18 = 0;\n        if (iVar12 == 0) {\nLAB_0001aa69:\n          uVar39 = 0x1000;\n          iVar12 = 0;\n        }\n        else {\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }\n        *(uint *)(iVar31 + 0x24) = uVar39;\n        *(int *)(iVar31 + 0x28) = iVar12;\n        *(uint *)(iVar31 + 0x1c) = uVar39;\n        *(int *)(iVar31 + 0x20) = iVar12;\n        *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;\n      }" ({ "{") (expression_statement "iVar12 = local_6c[0x18];" (assignment_expression "iVar12 = local_6c[0x18]" (identifier "iVar12") (= "=") (subscript_expression "local_6c[0x18]" (identifier "local_6c") ([ "[") (number_literal "0x18") (] "]"))) (; ";")) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar12 == 0) {\nLAB_0001aa69:\n          uVar39 = 0x1000;\n          iVar12 = 0;\n        }\n        else {\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0001aa69:\n          uVar39 = 0x1000;\n          iVar12 = 0;\n        }" ({ "{") (labeled_statement "LAB_0001aa69:\n          uVar39 = 0x1000;" (statement_identifier "LAB_0001aa69") (: ":") (expression_statement "uVar39 = 0x1000;" (assignment_expression "uVar39 = 0x1000" (identifier "uVar39") (= "=") (number_literal "0x1000")) (; ";"))) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }" (else "else") (compound_statement "{\n          do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);\n          if (iVar21 == 0) goto LAB_0001aa69;\n          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);\n          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));\n          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }\n        }" ({ "{") (do_statement "do {\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          } while (iVar12 != 0);" (do "do") (compound_statement "{\n            uVar39 = *(uint *)(iVar12 + 0x20);\n            iVar21 = iVar18;\n            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }\n            iVar12 = *(int *)(iVar12 + 0xc);\n            iVar18 = iVar21;\n          }" ({ "{") (expression_statement "uVar39 = *(uint *)(iVar12 + 0x20);" (assignment_expression "uVar39 = *(uint *)(iVar12 + 0x20)" (identifier "uVar39") (= "=") (pointer_expression "*(uint *)(iVar12 + 0x20)" (* "*") (cast_expression "(uint *)(iVar12 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x20)" (( "(") (binary_expression "iVar12 + 0x20" (identifier "iVar12") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "iVar21 = iVar18;" (assignment_expression "iVar21 = iVar18" (identifier "iVar21") (= "=") (identifier "iVar18")) (; ";")) (if_statement "if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {\n              iVar21 = iVar12;\n            }" (if "if") (parenthesized_expression "(((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c))))" (( "(") (binary_expression "((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))\n               && (iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))" (parenthesized_expression "((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))" (( "(") (binary_expression "(uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0)" (parenthesized_expression "(uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0)" (( "(") (binary_expression "uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0" (binary_expression "uVar39 != 0" (identifier "uVar39") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "*(uint *)(iVar12 + 0x1c) != 0" (pointer_expression "*(uint *)(iVar12 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar12 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x1c)" (( "(") (binary_expression "iVar12 + 0x1c" (identifier "iVar12") (+ "+") (number_literal "0x1c")) () ")")))) (!= "!=") (number_literal "0"))) () ")")) (&& "&&") (parenthesized_expression "(iVar21 = iVar12, iVar18 != 0)" (( "(") (comma_expression "iVar21 = iVar12, iVar18 != 0" (assignment_expression "iVar21 = iVar12" (identifier "iVar21") (= "=") (identifier "iVar12")) (, ",") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))" (( "(") (comma_expression "iVar21 = iVar18,\n                  *(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c))" (assignment_expression "iVar21 = iVar18" (identifier "iVar21") (= "=") (identifier "iVar18")) (, ",") (binary_expression "*(uint *)(iVar18 + 0x20) < uVar39 ||\n                  *(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c))" (binary_expression "*(uint *)(iVar18 + 0x20) < uVar39" (pointer_expression "*(uint *)(iVar18 + 0x20)" (* "*") (cast_expression "(uint *)(iVar18 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x20)" (( "(") (binary_expression "iVar18 + 0x20" (identifier "iVar18") (+ "+") (number_literal "0x20")) () ")")))) (< "<") (identifier "uVar39")) (|| "||") (binary_expression "*(uint *)(iVar18 + 0x20) - uVar39 <\n                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c))" (binary_expression "*(uint *)(iVar18 + 0x20) - uVar39" (pointer_expression "*(uint *)(iVar18 + 0x20)" (* "*") (cast_expression "(uint *)(iVar18 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x20)" (( "(") (binary_expression "iVar18 + 0x20" (identifier "iVar18") (+ "+") (number_literal "0x20")) () ")")))) (- "-") (identifier "uVar39")) (< "<") (call_expression "(uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c))" (( "(") (binary_expression "*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)" (pointer_expression "*(uint *)(iVar18 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar18 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x1c)" (( "(") (binary_expression "iVar18 + 0x1c" (identifier "iVar18") (+ "+") (number_literal "0x1c")) () ")")))) (< "<") (pointer_expression "*(uint *)(iVar12 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar12 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x1c)" (( "(") (binary_expression "iVar12 + 0x1c" (identifier "iVar12") (+ "+") (number_literal "0x1c")) () ")"))))) () ")")))))) () ")"))) () ")")) (compound_statement "{\n              iVar21 = iVar12;\n            }" ({ "{") (expression_statement "iVar21 = iVar12;" (assignment_expression "iVar21 = iVar12" (identifier "iVar21") (= "=") (identifier "iVar12")) (; ";")) (} "}"))) (expression_statement "iVar12 = *(int *)(iVar12 + 0xc);" (assignment_expression "iVar12 = *(int *)(iVar12 + 0xc)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(iVar12 + 0xc)" (* "*") (cast_expression "(int *)(iVar12 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xc)" (( "(") (binary_expression "iVar12 + 0xc" (identifier "iVar12") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "iVar18 = iVar21;" (assignment_expression "iVar18 = iVar21" (identifier "iVar18") (= "=") (identifier "iVar21")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar12 != 0)" (( "(") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) () ")")) (; ";")) (if_statement "if (iVar21 == 0) goto LAB_0001aa69;" (if "if") (parenthesized_expression "(iVar21 == 0)" (( "(") (binary_expression "iVar21 == 0" (identifier "iVar21") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001aa69;" (goto "goto") (statement_identifier "LAB_0001aa69") (; ";"))) (expression_statement "uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);" (assignment_expression "uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c)" (identifier "uVar39") (= "=") (binary_expression "*(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c)" (pointer_expression "*(uint *)(iVar21 + 0x2c)" (* "*") (cast_expression "(uint *)(iVar21 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x2c)" (( "(") (binary_expression "iVar21 + 0x2c" (identifier "iVar21") (+ "+") (number_literal "0x2c")) () ")")))) (+ "+") (pointer_expression "*(uint *)(iVar21 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar21 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x1c)" (( "(") (binary_expression "iVar21 + 0x1c" (identifier "iVar21") (+ "+") (number_literal "0x1c")) () ")")))))) (; ";")) (expression_statement "iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));" (assignment_expression "iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c))" (identifier "iVar12") (= "=") (binary_expression "*(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +\n                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c))" (binary_expression "*(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20)" (pointer_expression "*(int *)(iVar21 + 0x30)" (* "*") (cast_expression "(int *)(iVar21 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x30)" (( "(") (binary_expression "iVar21 + 0x30" (identifier "iVar21") (+ "+") (number_literal "0x30")) () ")")))) (+ "+") (pointer_expression "*(int *)(iVar21 + 0x20)" (* "*") (cast_expression "(int *)(iVar21 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x20)" (( "(") (binary_expression "iVar21 + 0x20" (identifier "iVar21") (+ "+") (number_literal "0x20")) () ")"))))) (+ "+") (cast_expression "(uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c))" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c))" (identifier "CARRY4") (argument_list "(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c))" (( "(") (pointer_expression "*(uint *)(iVar21 + 0x2c)" (* "*") (cast_expression "(uint *)(iVar21 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x2c)" (( "(") (binary_expression "iVar21 + 0x2c" (identifier "iVar21") (+ "+") (number_literal "0x2c")) () ")")))) (, ",") (pointer_expression "*(uint *)(iVar21 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar21 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x1c)" (( "(") (binary_expression "iVar21 + 0x1c" (identifier "iVar21") (+ "+") (number_literal "0x1c")) () ")")))) () ")")))))) (; ";")) (if_statement "if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }\n          else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }" (if "if") (parenthesized_expression "(-iVar12 - 1U < (uint)(0xfffff000 < uVar39))" (( "(") (binary_expression "-iVar12 - 1U < (uint)(0xfffff000 < uVar39)" (binary_expression "-iVar12 - 1U" (unary_expression "-iVar12" (- "-") (identifier "iVar12")) (- "-") (number_literal "1U")) (< "<") (call_expression "(uint)(0xfffff000 < uVar39)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0xfffff000 < uVar39)" (( "(") (binary_expression "0xfffff000 < uVar39" (number_literal "0xfffff000") (< "<") (identifier "uVar39")) () ")")))) () ")")) (compound_statement "{\n            uVar39 = 0xffffffff;\n            iVar12 = -1;\n          }" ({ "{") (expression_statement "uVar39 = 0xffffffff;" (assignment_expression "uVar39 = 0xffffffff" (identifier "uVar39") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "iVar12 = -1;" (assignment_expression "iVar12 = -1" (identifier "iVar12") (= "=") (number_literal "-1")) (; ";")) (} "}")) (else_clause "else {\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }" (else "else") (compound_statement "{\n            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);\n            uVar39 = uVar39 + 0xfff & 0xfffff000;\n          }" ({ "{") (expression_statement "iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);" (assignment_expression "iVar12 = iVar12 + (uint)(0xfffff000 < uVar39)" (identifier "iVar12") (= "=") (binary_expression "iVar12 + (uint)(0xfffff000 < uVar39)" (identifier "iVar12") (+ "+") (call_expression "(uint)(0xfffff000 < uVar39)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0xfffff000 < uVar39)" (( "(") (binary_expression "0xfffff000 < uVar39" (number_literal "0xfffff000") (< "<") (identifier "uVar39")) () ")"))))) (; ";")) (expression_statement "uVar39 = uVar39 + 0xfff & 0xfffff000;" (assignment_expression "uVar39 = uVar39 + 0xfff & 0xfffff000" (identifier "uVar39") (= "=") (binary_expression "uVar39 + 0xfff & 0xfffff000" (binary_expression "uVar39 + 0xfff" (identifier "uVar39") (+ "+") (number_literal "0xfff")) (& "&") (number_literal "0xfffff000"))) (; ";")) (} "}")))) (} "}")))) (expression_statement "*(uint *)(iVar31 + 0x24) = uVar39;" (assignment_expression "*(uint *)(iVar31 + 0x24) = uVar39" (pointer_expression "*(uint *)(iVar31 + 0x24)" (* "*") (cast_expression "(uint *)(iVar31 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar31 + 0x24)" (( "(") (binary_expression "iVar31 + 0x24" (identifier "iVar31") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (identifier "uVar39")) (; ";")) (expression_statement "*(int *)(iVar31 + 0x28) = iVar12;" (assignment_expression "*(int *)(iVar31 + 0x28) = iVar12" (pointer_expression "*(int *)(iVar31 + 0x28)" (* "*") (cast_expression "(int *)(iVar31 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar31 + 0x28)" (( "(") (binary_expression "iVar31 + 0x28" (identifier "iVar31") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "iVar12")) (; ";")) (expression_statement "*(uint *)(iVar31 + 0x1c) = uVar39;" (assignment_expression "*(uint *)(iVar31 + 0x1c) = uVar39" (pointer_expression "*(uint *)(iVar31 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar31 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar31 + 0x1c)" (( "(") (binary_expression "iVar31 + 0x1c" (identifier "iVar31") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "uVar39")) (; ";")) (expression_statement "*(int *)(iVar31 + 0x20) = iVar12;" (assignment_expression "*(int *)(iVar31 + 0x20) = iVar12" (pointer_expression "*(int *)(iVar31 + 0x20)" (* "*") (cast_expression "(int *)(iVar31 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar31 + 0x20)" (( "(") (binary_expression "iVar31 + 0x20" (identifier "iVar31") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "iVar12")) (; ";")) (expression_statement "*(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;" (assignment_expression "*(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1" (pointer_expression "*(byte *)(iVar31 + 0x18)" (* "*") (cast_expression "(byte *)(iVar31 + 0x18)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar31 + 0x18)" (( "(") (binary_expression "iVar31 + 0x18" (identifier "iVar31") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (binary_expression "*(byte *)(iVar31 + 0x18) | 1" (pointer_expression "*(byte *)(iVar31 + 0x18)" (* "*") (cast_expression "(byte *)(iVar31 + 0x18)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar31 + 0x18)" (( "(") (binary_expression "iVar31 + 0x18" (identifier "iVar31") (+ "+") (number_literal "0x18")) () ")")))) (| "|") (number_literal "1"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      iVar12 = *local_6c;\n      uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n      FUN_0002c910(uVar13,iVar12);\n      DAT_00040b4c = 0;\n      iVar31 = 0;\n    }" (else "else") (compound_statement "{\n      iVar12 = *local_6c;\n      uVar13 = dcgettext(0,"%s: debuglink section already exists",5);\n      FUN_0002c910(uVar13,iVar12);\n      DAT_00040b4c = 0;\n      iVar31 = 0;\n    }" ({ "{") (expression_statement "iVar12 = *local_6c;" (assignment_expression "iVar12 = *local_6c" (identifier "iVar12") (= "=") (pointer_expression "*local_6c" (* "*") (identifier "local_6c"))) (; ";")) (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_0002c910(uVar13,iVar12);" (call_expression "FUN_0002c910(uVar13,iVar12)" (identifier "FUN_0002c910") (argument_list "(uVar13,iVar12)" (( "(") (identifier "uVar13") (, ",") (identifier "iVar12") () ")"))) (; ";")) (expression_statement "DAT_00040b4c = 0;" (assignment_expression "DAT_00040b4c = 0" (identifier "DAT_00040b4c") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar31 = 0;" (assignment_expression "iVar31 = 0" (identifier "iVar31") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}"))) (expression_statement "sVar22 = local_6c[0x1a];" (assignment_expression "sVar22 = local_6c[0x1a]" (identifier "sVar22") (= "=") (subscript_expression "local_6c[0x1a]" (identifier "local_6c") ([ "[") (number_literal "0x1a") (] "]"))) (; ";")) (if_statement "if ((sVar22 == 0) || (DAT_00040b78 == 0 && DAT_00040b70 == 0)) {\n    local_b8 = 0;\n    local_bc = 0;\n    local_b4 = (void *)0x0;\n    local_a8 = (size_t *)0x0;\n    uVar39 = local_bc;\n    uVar17 = local_b8;\n  }\n  else {\n    local_a8 = (size_t *)xmalloc(sVar22 * 4);\n    local_34 = (int *)local_a8;\n    bfd_map_over_sections(local_6c,FUN_00016800,&local_34);\n    qsort(local_a8,sVar22,4,FUN_00016820);\n    sVar23 = sVar22 * 8;\n    local_b4 = (void *)xmalloc(sVar23);\n    memset(local_b4,0,sVar23);\n    if ((DAT_00040b78 == 0) || (sVar22 == 1)) {\n      local_b8 = 0;\n      local_bc = 0;\n    }\n    else {\n      local_b8 = 0;\n      local_bc = 0;\n      local_6c = (size_t *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (size_t *)((int)local_6c + 1);\n        iVar12 = *local_64;\n        uVar39 = local_bc;\n        uVar17 = local_b8;\n        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }\n        local_b8 = uVar17;\n        local_bc = uVar39;\n        local_64 = local_64 + 1;\n      } while ((size_t *)(sVar22 - 1) != local_6c);\n    }\n    uVar39 = local_bc;\n    uVar17 = local_b8;\n    if (DAT_00040b70 != 0) {\n      iVar12 = ((int *)local_a8)[sVar22 - 1];\n      uVar27 = *(uint *)(iVar12 + 0x24);\n      uVar37 = uVar27 + *(uint *)(iVar12 + 0x2c);\n      uVar44 = *(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +\n               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c));\n      if (uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)) {\n        iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           );\n        if (iVar12 == 0) {\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }\n        else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "((sVar22 == 0) || (DAT_00040b78 == 0 && DAT_00040b70 == 0))" (( "(") (binary_expression "(sVar22 == 0) || (DAT_00040b78 == 0 && DAT_00040b70 == 0)" (parenthesized_expression "(sVar22 == 0)" (( "(") (binary_expression "sVar22 == 0" (identifier "sVar22") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(DAT_00040b78 == 0 && DAT_00040b70 == 0)" (( "(") (binary_expression "DAT_00040b78 == 0 && DAT_00040b70 == 0" (binary_expression "DAT_00040b78 == 0" (identifier "DAT_00040b78") (== "==") (number_literal "0")) (&& "&&") (binary_expression "DAT_00040b70 == 0" (identifier "DAT_00040b70") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    local_b8 = 0;\n    local_bc = 0;\n    local_b4 = (void *)0x0;\n    local_a8 = (size_t *)0x0;\n    uVar39 = local_bc;\n    uVar17 = local_b8;\n  }" ({ "{") (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" (identifier "local_b8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" (identifier "local_bc") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_b4 = (void *)0x0;" (assignment_expression "local_b4 = (void *)0x0" (identifier "local_b4") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_a8 = (size_t *)0x0;" (assignment_expression "local_a8 = (size_t *)0x0" (identifier "local_a8") (= "=") (cast_expression "(size_t *)0x0" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uVar39 = local_bc;" (assignment_expression "uVar39 = local_bc" (identifier "uVar39") (= "=") (identifier "local_bc")) (; ";")) (expression_statement "uVar17 = local_b8;" (assignment_expression "uVar17 = local_b8" (identifier "uVar17") (= "=") (identifier "local_b8")) (; ";")) (} "}")) (else_clause "else {\n    local_a8 = (size_t *)xmalloc(sVar22 * 4);\n    local_34 = (int *)local_a8;\n    bfd_map_over_sections(local_6c,FUN_00016800,&local_34);\n    qsort(local_a8,sVar22,4,FUN_00016820);\n    sVar23 = sVar22 * 8;\n    local_b4 = (void *)xmalloc(sVar23);\n    memset(local_b4,0,sVar23);\n    if ((DAT_00040b78 == 0) || (sVar22 == 1)) {\n      local_b8 = 0;\n      local_bc = 0;\n    }\n    else {\n      local_b8 = 0;\n      local_bc = 0;\n      local_6c = (size_t *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (size_t *)((int)local_6c + 1);\n        iVar12 = *local_64;\n        uVar39 = local_bc;\n        uVar17 = local_b8;\n        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }\n        local_b8 = uVar17;\n        local_bc = uVar39;\n        local_64 = local_64 + 1;\n      } while ((size_t *)(sVar22 - 1) != local_6c);\n    }\n    uVar39 = local_bc;\n    uVar17 = local_b8;\n    if (DAT_00040b70 != 0) {\n      iVar12 = ((int *)local_a8)[sVar22 - 1];\n      uVar27 = *(uint *)(iVar12 + 0x24);\n      uVar37 = uVar27 + *(uint *)(iVar12 + 0x2c);\n      uVar44 = *(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +\n               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c));\n      if (uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)) {\n        iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           );\n        if (iVar12 == 0) {\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }\n        else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }\n      }\n    }\n  }" (else "else") (compound_statement "{\n    local_a8 = (size_t *)xmalloc(sVar22 * 4);\n    local_34 = (int *)local_a8;\n    bfd_map_over_sections(local_6c,FUN_00016800,&local_34);\n    qsort(local_a8,sVar22,4,FUN_00016820);\n    sVar23 = sVar22 * 8;\n    local_b4 = (void *)xmalloc(sVar23);\n    memset(local_b4,0,sVar23);\n    if ((DAT_00040b78 == 0) || (sVar22 == 1)) {\n      local_b8 = 0;\n      local_bc = 0;\n    }\n    else {\n      local_b8 = 0;\n      local_bc = 0;\n      local_6c = (size_t *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (size_t *)((int)local_6c + 1);\n        iVar12 = *local_64;\n        uVar39 = local_bc;\n        uVar17 = local_b8;\n        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }\n        local_b8 = uVar17;\n        local_bc = uVar39;\n        local_64 = local_64 + 1;\n      } while ((size_t *)(sVar22 - 1) != local_6c);\n    }\n    uVar39 = local_bc;\n    uVar17 = local_b8;\n    if (DAT_00040b70 != 0) {\n      iVar12 = ((int *)local_a8)[sVar22 - 1];\n      uVar27 = *(uint *)(iVar12 + 0x24);\n      uVar37 = uVar27 + *(uint *)(iVar12 + 0x2c);\n      uVar44 = *(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +\n               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c));\n      if (uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)) {\n        iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           );\n        if (iVar12 == 0) {\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }\n        else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }\n      }\n    }\n  }" ({ "{") (expression_statement "local_a8 = (size_t *)xmalloc(sVar22 * 4);" (assignment_expression "local_a8 = (size_t *)xmalloc(sVar22 * 4)" (identifier "local_a8") (= "=") (cast_expression "(size_t *)xmalloc(sVar22 * 4)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar22 * 4)" (identifier "xmalloc") (argument_list "(sVar22 * 4)" (( "(") (binary_expression "sVar22 * 4" (identifier "sVar22") (* "*") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_34 = (int *)local_a8;" (assignment_expression "local_34 = (int *)local_a8" (identifier "local_34") (= "=") (cast_expression "(int *)local_a8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_a8"))) (; ";")) (expression_statement "bfd_map_over_sections(local_6c,FUN_00016800,&local_34);" (call_expression "bfd_map_over_sections(local_6c,FUN_00016800,&local_34)" (identifier "bfd_map_over_sections") (argument_list "(local_6c,FUN_00016800,&local_34)" (( "(") (identifier "local_6c") (, ",") (identifier "FUN_00016800") (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")"))) (; ";")) (expression_statement "qsort(local_a8,sVar22,4,FUN_00016820);" (call_expression "qsort(local_a8,sVar22,4,FUN_00016820)" (identifier "qsort") (argument_list "(local_a8,sVar22,4,FUN_00016820)" (( "(") (identifier "local_a8") (, ",") (identifier "sVar22") (, ",") (number_literal "4") (, ",") (identifier "FUN_00016820") () ")"))) (; ";")) (expression_statement "sVar23 = sVar22 * 8;" (assignment_expression "sVar23 = sVar22 * 8" (identifier "sVar23") (= "=") (binary_expression "sVar22 * 8" (identifier "sVar22") (* "*") (number_literal "8"))) (; ";")) (expression_statement "local_b4 = (void *)xmalloc(sVar23);" (assignment_expression "local_b4 = (void *)xmalloc(sVar23)" (identifier "local_b4") (= "=") (cast_expression "(void *)xmalloc(sVar23)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar23)" (identifier "xmalloc") (argument_list "(sVar23)" (( "(") (identifier "sVar23") () ")"))))) (; ";")) (expression_statement "memset(local_b4,0,sVar23);" (call_expression "memset(local_b4,0,sVar23)" (identifier "memset") (argument_list "(local_b4,0,sVar23)" (( "(") (identifier "local_b4") (, ",") (number_literal "0") (, ",") (identifier "sVar23") () ")"))) (; ";")) (if_statement "if ((DAT_00040b78 == 0) || (sVar22 == 1)) {\n      local_b8 = 0;\n      local_bc = 0;\n    }\n    else {\n      local_b8 = 0;\n      local_bc = 0;\n      local_6c = (size_t *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (size_t *)((int)local_6c + 1);\n        iVar12 = *local_64;\n        uVar39 = local_bc;\n        uVar17 = local_b8;\n        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }\n        local_b8 = uVar17;\n        local_bc = uVar39;\n        local_64 = local_64 + 1;\n      } while ((size_t *)(sVar22 - 1) != local_6c);\n    }" (if "if") (parenthesized_expression "((DAT_00040b78 == 0) || (sVar22 == 1))" (( "(") (binary_expression "(DAT_00040b78 == 0) || (sVar22 == 1)" (parenthesized_expression "(DAT_00040b78 == 0)" (( "(") (binary_expression "DAT_00040b78 == 0" (identifier "DAT_00040b78") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(sVar22 == 1)" (( "(") (binary_expression "sVar22 == 1" (identifier "sVar22") (== "==") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\n      local_b8 = 0;\n      local_bc = 0;\n    }" ({ "{") (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" (identifier "local_b8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" (identifier "local_bc") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      local_b8 = 0;\n      local_bc = 0;\n      local_6c = (size_t *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (size_t *)((int)local_6c + 1);\n        iVar12 = *local_64;\n        uVar39 = local_bc;\n        uVar17 = local_b8;\n        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }\n        local_b8 = uVar17;\n        local_bc = uVar39;\n        local_64 = local_64 + 1;\n      } while ((size_t *)(sVar22 - 1) != local_6c);\n    }" (else "else") (compound_statement "{\n      local_b8 = 0;\n      local_bc = 0;\n      local_6c = (size_t *)0x0;\n      local_64 = (int *)local_a8;\n      do {\n        local_6c = (size_t *)((int)local_6c + 1);\n        iVar12 = *local_64;\n        uVar39 = local_bc;\n        uVar17 = local_b8;\n        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }\n        local_b8 = uVar17;\n        local_bc = uVar39;\n        local_64 = local_64 + 1;\n      } while ((size_t *)(sVar22 - 1) != local_6c);\n    }" ({ "{") (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" (identifier "local_b8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_bc = 0;" (assignment_expression "local_bc = 0" (identifier "local_bc") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_6c = (size_t *)0x0;" (assignment_expression "local_6c = (size_t *)0x0" (identifier "local_6c") (= "=") (cast_expression "(size_t *)0x0" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_64 = (int *)local_a8;" (assignment_expression "local_64 = (int *)local_a8" (identifier "local_64") (= "=") (cast_expression "(int *)local_a8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_a8"))) (; ";")) (do_statement "do {\n        local_6c = (size_t *)((int)local_6c + 1);\n        iVar12 = *local_64;\n        uVar39 = local_bc;\n        uVar17 = local_b8;\n        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }\n        local_b8 = uVar17;\n        local_bc = uVar39;\n        local_64 = local_64 + 1;\n      } while ((size_t *)(sVar22 - 1) != local_6c);" (do "do") (compound_statement "{\n        local_6c = (size_t *)((int)local_6c + 1);\n        iVar12 = *local_64;\n        uVar39 = local_bc;\n        uVar17 = local_b8;\n        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }\n        local_b8 = uVar17;\n        local_bc = uVar39;\n        local_64 = local_64 + 1;\n      }" ({ "{") (expression_statement "local_6c = (size_t *)((int)local_6c + 1);" (assignment_expression "local_6c = (size_t *)((int)local_6c + 1)" (identifier "local_6c") (= "=") (cast_expression "(size_t *)((int)local_6c + 1)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_6c + 1)" (( "(") (binary_expression "(int)local_6c + 1" (cast_expression "(int)local_6c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_6c")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar12 = *local_64;" (assignment_expression "iVar12 = *local_64" (identifier "iVar12") (= "=") (pointer_expression "*local_64" (* "*") (identifier "local_64"))) (; ";")) (expression_statement "uVar39 = local_bc;" (assignment_expression "uVar39 = local_bc" (identifier "uVar39") (= "=") (identifier "local_bc")) (; ";")) (expression_statement "uVar17 = local_b8;" (assignment_expression "uVar17 = local_b8" (identifier "uVar17") (= "=") (identifier "local_b8")) (; ";")) (if_statement "if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }" (if "if") (parenthesized_expression "((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102)" (( "(") (binary_expression "(*(uint *)(iVar12 + 0x14) & 0x102) == 0x102" (parenthesized_expression "(*(uint *)(iVar12 + 0x14) & 0x102)" (( "(") (binary_expression "*(uint *)(iVar12 + 0x14) & 0x102" (pointer_expression "*(uint *)(iVar12 + 0x14)" (* "*") (cast_expression "(uint *)(iVar12 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x14)" (( "(") (binary_expression "iVar12 + 0x14" (identifier "iVar12") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "0x102")) () ")")) (== "==") (number_literal "0x102")) () ")")) (compound_statement "{\n          uVar27 = *(uint *)(iVar12 + 0x2c);\n          uVar37 = *(uint *)(local_64[1] + 0x28);\n          uVar44 = *(uint *)(local_64[1] + 0x24);\n          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);\n          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));\n          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }\n        }" ({ "{") (expression_statement "uVar27 = *(uint *)(iVar12 + 0x2c);" (assignment_expression "uVar27 = *(uint *)(iVar12 + 0x2c)" (identifier "uVar27") (= "=") (pointer_expression "*(uint *)(iVar12 + 0x2c)" (* "*") (cast_expression "(uint *)(iVar12 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x2c)" (( "(") (binary_expression "iVar12 + 0x2c" (identifier "iVar12") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "uVar37 = *(uint *)(local_64[1] + 0x28);" (assignment_expression "uVar37 = *(uint *)(local_64[1] + 0x28)" (identifier "uVar37") (= "=") (pointer_expression "*(uint *)(local_64[1] + 0x28)" (* "*") (cast_expression "(uint *)(local_64[1] + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_64[1] + 0x28)" (( "(") (binary_expression "local_64[1] + 0x28" (subscript_expression "local_64[1]" (identifier "local_64") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "uVar44 = *(uint *)(local_64[1] + 0x24);" (assignment_expression "uVar44 = *(uint *)(local_64[1] + 0x24)" (identifier "uVar44") (= "=") (pointer_expression "*(uint *)(local_64[1] + 0x24)" (* "*") (cast_expression "(uint *)(local_64[1] + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_64[1] + 0x24)" (( "(") (binary_expression "local_64[1] + 0x24" (subscript_expression "local_64[1]" (identifier "local_64") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);" (assignment_expression "uVar33 = uVar27 + *(uint *)(iVar12 + 0x24)" (identifier "uVar33") (= "=") (binary_expression "uVar27 + *(uint *)(iVar12 + 0x24)" (identifier "uVar27") (+ "+") (pointer_expression "*(uint *)(iVar12 + 0x24)" (* "*") (cast_expression "(uint *)(iVar12 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x24)" (( "(") (binary_expression "iVar12 + 0x24" (identifier "iVar12") (+ "+") (number_literal "0x24")) () ")")))))) (; ";")) (expression_statement "uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));" (assignment_expression "uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24))" (identifier "uVar40") (= "=") (binary_expression "*(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +\n                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24))" (binary_expression "*(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28)" (pointer_expression "*(int *)(iVar12 + 0x30)" (* "*") (cast_expression "(int *)(iVar12 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x30)" (( "(") (binary_expression "iVar12 + 0x30" (identifier "iVar12") (+ "+") (number_literal "0x30")) () ")")))) (+ "+") (pointer_expression "*(int *)(iVar12 + 0x28)" (* "*") (cast_expression "(int *)(iVar12 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x28)" (( "(") (binary_expression "iVar12 + 0x28" (identifier "iVar12") (+ "+") (number_literal "0x28")) () ")"))))) (+ "+") (cast_expression "(uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24))" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar27,*(uint *)(iVar12 + 0x24))" (identifier "CARRY4") (argument_list "(uVar27,*(uint *)(iVar12 + 0x24))" (( "(") (identifier "uVar27") (, ",") (pointer_expression "*(uint *)(iVar12 + 0x24)" (* "*") (cast_expression "(uint *)(iVar12 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x24)" (( "(") (binary_expression "iVar12 + 0x24" (identifier "iVar12") (+ "+") (number_literal "0x24")) () ")")))) () ")")))))) (; ";")) (if_statement "if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }" (if "if") (parenthesized_expression "(uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44))" (( "(") (binary_expression "uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)" (binary_expression "uVar40 < uVar37" (identifier "uVar40") (< "<") (identifier "uVar37")) (|| "||") (binary_expression "uVar40 - uVar37 < (uint)(uVar33 < uVar44)" (binary_expression "uVar40 - uVar37" (identifier "uVar40") (- "-") (identifier "uVar37")) (< "<") (call_expression "(uint)(uVar33 < uVar44)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar33 < uVar44)" (( "(") (binary_expression "uVar33 < uVar44" (identifier "uVar33") (< "<") (identifier "uVar44")) () ")"))))) () ")")) (compound_statement "{\n            uVar17 = uVar44 - uVar33;\n            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);\n            iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));\n            if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;\n            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;\n            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }\n          }" ({ "{") (expression_statement "uVar17 = uVar44 - uVar33;" (assignment_expression "uVar17 = uVar44 - uVar33" (identifier "uVar17") (= "=") (binary_expression "uVar44 - uVar33" (identifier "uVar44") (- "-") (identifier "uVar33"))) (; ";")) (expression_statement "uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);" (assignment_expression "uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33)" (identifier "uVar39") (= "=") (binary_expression "(uVar37 - uVar40) - (uint)(uVar44 < uVar33)" (parenthesized_expression "(uVar37 - uVar40)" (( "(") (binary_expression "uVar37 - uVar40" (identifier "uVar37") (- "-") (identifier "uVar40")) () ")")) (- "-") (call_expression "(uint)(uVar44 < uVar33)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar44 < uVar33)" (( "(") (binary_expression "uVar44 < uVar33" (identifier "uVar44") (< "<") (identifier "uVar33")) () ")"))))) (; ";")) (expression_statement "iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));" (assignment_expression "iVar12 = bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17))" (identifier "iVar12") (= "=") (call_expression "bfd_set_section_size\n                               (param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17))" (identifier "bfd_set_section_size") (argument_list "(param_2,iVar12,uVar27 + uVar17,\n                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17))" (( "(") (identifier "param_2") (, ",") (identifier "iVar12") (, ",") (binary_expression "uVar27 + uVar17" (identifier "uVar27") (+ "+") (identifier "uVar17")) (, ",") (binary_expression "*(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17)" (binary_expression "*(int *)(iVar12 + 0x30) + uVar39" (pointer_expression "*(int *)(iVar12 + 0x30)" (* "*") (cast_expression "(int *)(iVar12 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x30)" (( "(") (binary_expression "iVar12 + 0x30" (identifier "iVar12") (+ "+") (number_literal "0x30")) () ")")))) (+ "+") (identifier "uVar39")) (+ "+") (cast_expression "(uint)CARRY4(uVar27,uVar17)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar27,uVar17)" (identifier "CARRY4") (argument_list "(uVar27,uVar17)" (( "(") (identifier "uVar27") (, ",") (identifier "uVar17") () ")"))))) () ")")))) (; ";")) (if_statement "if (iVar12 == 0) {\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);\n              FUN_0002d3a0(0,param_2,*local_64,uVar13);\n              DAT_00040bc8 = 1;\n              break;\n            }" ({ "{") (expression_statement "uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);" (assignment_expression "uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,"Can\'t fill gap after section",5,0)" (identifier "dcgettext") (argument_list "(0,"Can\'t fill gap after section",5,0)" (( "(") (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") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "FUN_0002d3a0(0,param_2,*local_64,uVar13);" (call_expression "FUN_0002d3a0(0,param_2,*local_64,uVar13)" (identifier "FUN_0002d3a0") (argument_list "(0,param_2,*local_64,uVar13)" (( "(") (number_literal "0") (, ",") (identifier "param_2") (, ",") (pointer_expression "*local_64" (* "*") (identifier "local_64")) (, ",") (identifier "uVar13") () ")"))) (; ";")) (expression_statement "DAT_00040bc8 = 1;" (assignment_expression "DAT_00040bc8 = 1" (identifier "DAT_00040bc8") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "*(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;" (assignment_expression "*(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17" (pointer_expression "*(uint *)((int)local_b4 + (int)local_6c * 8 + -8)" (* "*") (cast_expression "(uint *)((int)local_b4 + (int)local_6c * 8 + -8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_b4 + (int)local_6c * 8 + -8)" (( "(") (binary_expression "(int)local_b4 + (int)local_6c * 8 + -8" (binary_expression "(int)local_b4 + (int)local_6c * 8" (cast_expression "(int)local_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b4")) (+ "+") (binary_expression "(int)local_6c * 8" (cast_expression "(int)local_6c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_6c")) (* "*") (number_literal "8"))) (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "uVar17")) (; ";")) (expression_statement "*(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;" (assignment_expression "*(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39" (pointer_expression "*(uint *)((int)local_b4 + (int)local_6c * 8 + -4)" (* "*") (cast_expression "(uint *)((int)local_b4 + (int)local_6c * 8 + -4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_b4 + (int)local_6c * 8 + -4)" (( "(") (binary_expression "(int)local_b4 + (int)local_6c * 8 + -4" (binary_expression "(int)local_b4 + (int)local_6c * 8" (cast_expression "(int)local_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b4")) (+ "+") (binary_expression "(int)local_6c * 8" (cast_expression "(int)local_6c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_6c")) (* "*") (number_literal "8"))) (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "uVar39")) (; ";")) (if_statement "if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }" (if "if") (parenthesized_expression "(uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39)" (( "(") (binary_expression "uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39" (binary_expression "uVar39 <= local_bc" (identifier "uVar39") (<= "<=") (identifier "local_bc")) (&& "&&") (binary_expression "(uint)(local_b8 < uVar17) <= local_bc - uVar39" (call_expression "(uint)(local_b8 < uVar17)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_b8 < uVar17)" (( "(") (binary_expression "local_b8 < uVar17" (identifier "local_b8") (< "<") (identifier "uVar17")) () ")"))) (<= "<=") (binary_expression "local_bc - uVar39" (identifier "local_bc") (- "-") (identifier "uVar39")))) () ")")) (compound_statement "{\n              uVar39 = local_bc;\n              uVar17 = local_b8;\n            }" ({ "{") (expression_statement "uVar39 = local_bc;" (assignment_expression "uVar39 = local_bc" (identifier "uVar39") (= "=") (identifier "local_bc")) (; ";")) (expression_statement "uVar17 = local_b8;" (assignment_expression "uVar17 = local_b8" (identifier "uVar17") (= "=") (identifier "local_b8")) (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "local_b8 = uVar17;" (assignment_expression "local_b8 = uVar17" (identifier "local_b8") (= "=") (identifier "uVar17")) (; ";")) (expression_statement "local_bc = uVar39;" (assignment_expression "local_bc = uVar39" (identifier "local_bc") (= "=") (identifier "uVar39")) (; ";")) (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" (identifier "local_64") (= "=") (binary_expression "local_64 + 1" (identifier "local_64") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((size_t *)(sVar22 - 1) != local_6c)" (( "(") (binary_expression "(size_t *)(sVar22 - 1) != local_6c" (cast_expression "(size_t *)(sVar22 - 1)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(sVar22 - 1)" (( "(") (binary_expression "sVar22 - 1" (identifier "sVar22") (- "-") (number_literal "1")) () ")"))) (!= "!=") (identifier "local_6c")) () ")")) (; ";")) (} "}")))) (expression_statement "uVar39 = local_bc;" (assignment_expression "uVar39 = local_bc" (identifier "uVar39") (= "=") (identifier "local_bc")) (; ";")) (expression_statement "uVar17 = local_b8;" (assignment_expression "uVar17 = local_b8" (identifier "uVar17") (= "=") (identifier "local_b8")) (; ";")) (if_statement "if (DAT_00040b70 != 0) {\n      iVar12 = ((int *)local_a8)[sVar22 - 1];\n      uVar27 = *(uint *)(iVar12 + 0x24);\n      uVar37 = uVar27 + *(uint *)(iVar12 + 0x2c);\n      uVar44 = *(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +\n               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c));\n      if (uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)) {\n        iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           );\n        if (iVar12 == 0) {\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }\n        else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "(DAT_00040b70 != 0)" (( "(") (binary_expression "DAT_00040b70 != 0" (identifier "DAT_00040b70") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar12 = ((int *)local_a8)[sVar22 - 1];\n      uVar27 = *(uint *)(iVar12 + 0x24);\n      uVar37 = uVar27 + *(uint *)(iVar12 + 0x2c);\n      uVar44 = *(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +\n               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c));\n      if (uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)) {\n        iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           );\n        if (iVar12 == 0) {\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }\n        else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }\n      }\n    }" ({ "{") (expression_statement "iVar12 = ((int *)local_a8)[sVar22 - 1];" (assignment_expression "iVar12 = ((int *)local_a8)[sVar22 - 1]" (identifier "iVar12") (= "=") (subscript_expression "((int *)local_a8)[sVar22 - 1]" (parenthesized_expression "((int *)local_a8)" (( "(") (cast_expression "(int *)local_a8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_a8")) () ")")) ([ "[") (binary_expression "sVar22 - 1" (identifier "sVar22") (- "-") (number_literal "1")) (] "]"))) (; ";")) (expression_statement "uVar27 = *(uint *)(iVar12 + 0x24);" (assignment_expression "uVar27 = *(uint *)(iVar12 + 0x24)" (identifier "uVar27") (= "=") (pointer_expression "*(uint *)(iVar12 + 0x24)" (* "*") (cast_expression "(uint *)(iVar12 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x24)" (( "(") (binary_expression "iVar12 + 0x24" (identifier "iVar12") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "uVar37 = uVar27 + *(uint *)(iVar12 + 0x2c);" (assignment_expression "uVar37 = uVar27 + *(uint *)(iVar12 + 0x2c)" (identifier "uVar37") (= "=") (binary_expression "uVar27 + *(uint *)(iVar12 + 0x2c)" (identifier "uVar27") (+ "+") (pointer_expression "*(uint *)(iVar12 + 0x2c)" (* "*") (cast_expression "(uint *)(iVar12 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x2c)" (( "(") (binary_expression "iVar12 + 0x2c" (identifier "iVar12") (+ "+") (number_literal "0x2c")) () ")")))))) (; ";")) (expression_statement "uVar44 = *(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +\n               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c));" (assignment_expression "uVar44 = *(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +\n               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c))" (identifier "uVar44") (= "=") (binary_expression "*(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +\n               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c))" (binary_expression "*(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30)" (pointer_expression "*(int *)(iVar12 + 0x28)" (* "*") (cast_expression "(int *)(iVar12 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x28)" (( "(") (binary_expression "iVar12 + 0x28" (identifier "iVar12") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (pointer_expression "*(int *)(iVar12 + 0x30)" (* "*") (cast_expression "(int *)(iVar12 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x30)" (( "(") (binary_expression "iVar12 + 0x30" (identifier "iVar12") (+ "+") (number_literal "0x30")) () ")"))))) (+ "+") (cast_expression "(uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c))" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar27,*(uint *)(iVar12 + 0x2c))" (identifier "CARRY4") (argument_list "(uVar27,*(uint *)(iVar12 + 0x2c))" (( "(") (identifier "uVar27") (, ",") (pointer_expression "*(uint *)(iVar12 + 0x2c)" (* "*") (cast_expression "(uint *)(iVar12 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x2c)" (( "(") (binary_expression "iVar12 + 0x2c" (identifier "iVar12") (+ "+") (number_literal "0x2c")) () ")")))) () ")")))))) (; ";")) (if_statement "if (uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)) {\n        iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           );\n        if (iVar12 == 0) {\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }\n        else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68))" (( "(") (binary_expression "uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)" (binary_expression "uVar44 < DAT_00040b6c" (identifier "uVar44") (< "<") (identifier "DAT_00040b6c")) (|| "||") (binary_expression "uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)" (binary_expression "uVar44 - DAT_00040b6c" (identifier "uVar44") (- "-") (identifier "DAT_00040b6c")) (< "<") (call_expression "(uint)(uVar37 < DAT_00040b68)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar37 < DAT_00040b68)" (( "(") (binary_expression "uVar37 < DAT_00040b68" (identifier "uVar37") (< "<") (identifier "DAT_00040b68")) () ")"))))) () ")")) (compound_statement "{\n        iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           );\n        if (iVar12 == 0) {\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }\n        else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }\n      }" ({ "{") (expression_statement "iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           );" (assignment_expression "iVar12 = bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           )" (identifier "iVar12") (= "=") (call_expression "bfd_set_section_size\n                           (param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           )" (identifier "bfd_set_section_size") (argument_list "(param_2,iVar12,DAT_00040b68 - uVar27,\n                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)\n                           )" (( "(") (identifier "param_2") (, ",") (identifier "iVar12") (, ",") (binary_expression "DAT_00040b68 - uVar27" (identifier "DAT_00040b68") (- "-") (identifier "uVar27")) (, ",") (binary_expression "(DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)" (parenthesized_expression "(DAT_00040b6c - *(int *)(iVar12 + 0x28))" (( "(") (binary_expression "DAT_00040b6c - *(int *)(iVar12 + 0x28)" (identifier "DAT_00040b6c") (- "-") (pointer_expression "*(int *)(iVar12 + 0x28)" (* "*") (cast_expression "(int *)(iVar12 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x28)" (( "(") (binary_expression "iVar12 + 0x28" (identifier "iVar12") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (- "-") (call_expression "(uint)(DAT_00040b68 < uVar27)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(DAT_00040b68 < uVar27)" (( "(") (binary_expression "DAT_00040b68 < uVar27" (identifier "DAT_00040b68") (< "<") (identifier "uVar27")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar12 == 0) {\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }\n        else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);\n          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);\n          DAT_00040bc8 = 1;\n        }" ({ "{") (expression_statement "uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);" (assignment_expression "uVar13 = dcgettext(0,"can\'t add padding",5,uVar37)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,"can\'t add padding",5,uVar37)" (identifier "dcgettext") (argument_list "(0,"can\'t add padding",5,uVar37)" (( "(") (number_literal "0") (, ",") (string_literal ""can\'t add padding"" (" """) (string_content "can") (escape_sequence "\'") (string_content "t add padding") (" """)) (, ",") (number_literal "5") (, ",") (identifier "uVar37") () ")")))) (; ";")) (expression_statement "FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);" (call_expression "FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13)" (identifier "FUN_0002d3a0") (argument_list "(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13)" (( "(") (number_literal "0") (, ",") (identifier "param_2") (, ",") (subscript_expression "((int *)local_a8)[sVar22 - 1]" (parenthesized_expression "((int *)local_a8)" (( "(") (cast_expression "(int *)local_a8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_a8")) () ")")) ([ "[") (binary_expression "sVar22 - 1" (identifier "sVar22") (- "-") (number_literal "1")) (] "]")) (, ",") (identifier "uVar13") () ")"))) (; ";")) (expression_statement "DAT_00040bc8 = 1;" (assignment_expression "DAT_00040bc8 = 1" (identifier "DAT_00040bc8") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }" (else "else") (compound_statement "{\n          uVar17 = DAT_00040b68 - uVar37;\n          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);\n          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;\n          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;\n          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }\n        }" ({ "{") (expression_statement "uVar17 = DAT_00040b68 - uVar37;" (assignment_expression "uVar17 = DAT_00040b68 - uVar37" (identifier "uVar17") (= "=") (binary_expression "DAT_00040b68 - uVar37" (identifier "DAT_00040b68") (- "-") (identifier "uVar37"))) (; ";")) (expression_statement "uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);" (assignment_expression "uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37)" (identifier "uVar39") (= "=") (binary_expression "(DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37)" (parenthesized_expression "(DAT_00040b6c - uVar44)" (( "(") (binary_expression "DAT_00040b6c - uVar44" (identifier "DAT_00040b6c") (- "-") (identifier "uVar44")) () ")")) (- "-") (call_expression "(uint)(DAT_00040b68 < uVar37)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(DAT_00040b68 < uVar37)" (( "(") (binary_expression "DAT_00040b68 < uVar37" (identifier "DAT_00040b68") (< "<") (identifier "uVar37")) () ")"))))) (; ";")) (expression_statement "*(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;" (assignment_expression "*(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17" (pointer_expression "*(uint *)((int)local_b4 + (sVar23 - 8))" (* "*") (cast_expression "(uint *)((int)local_b4 + (sVar23 - 8))" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_b4 + (sVar23 - 8))" (( "(") (binary_expression "(int)local_b4 + (sVar23 - 8)" (cast_expression "(int)local_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b4")) (+ "+") (parenthesized_expression "(sVar23 - 8)" (( "(") (binary_expression "sVar23 - 8" (identifier "sVar23") (- "-") (number_literal "8")) () ")"))) () ")")))) (= "=") (identifier "uVar17")) (; ";")) (expression_statement "*(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;" (assignment_expression "*(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39" (pointer_expression "*(uint *)((int)local_b4 + (sVar23 - 4))" (* "*") (cast_expression "(uint *)((int)local_b4 + (sVar23 - 4))" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_b4 + (sVar23 - 4))" (( "(") (binary_expression "(int)local_b4 + (sVar23 - 4)" (cast_expression "(int)local_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b4")) (+ "+") (parenthesized_expression "(sVar23 - 4)" (( "(") (binary_expression "sVar23 - 4" (identifier "sVar23") (- "-") (number_literal "4")) () ")"))) () ")")))) (= "=") (identifier "uVar39")) (; ";")) (if_statement "if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }" (if "if") (parenthesized_expression "(uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39)" (( "(") (binary_expression "uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39" (binary_expression "uVar39 <= local_bc" (identifier "uVar39") (<= "<=") (identifier "local_bc")) (&& "&&") (binary_expression "(uint)(local_b8 < uVar17) <= local_bc - uVar39" (call_expression "(uint)(local_b8 < uVar17)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_b8 < uVar17)" (( "(") (binary_expression "local_b8 < uVar17" (identifier "local_b8") (< "<") (identifier "uVar17")) () ")"))) (<= "<=") (binary_expression "local_bc - uVar39" (identifier "local_bc") (- "-") (identifier "uVar39")))) () ")")) (compound_statement "{\n            uVar39 = local_bc;\n            uVar17 = local_b8;\n          }" ({ "{") (expression_statement "uVar39 = local_bc;" (assignment_expression "uVar39 = local_bc" (identifier "uVar39") (= "=") (identifier "local_bc")) (; ";")) (expression_statement "uVar17 = local_b8;" (assignment_expression "uVar17 = local_b8" (identifier "uVar17") (= "=") (identifier "local_b8")) (; ";")) (} "}"))) (} "}")))) (} "}"))) (} "}"))) (} "}")))) (expression_statement "local_b8 = uVar17;" (assignment_expression "local_b8 = uVar17" (identifier "local_b8") (= "=") (identifier "uVar17")) (; ";")) (expression_statement "local_bc = uVar39;" (assignment_expression "local_bc = uVar39" (identifier "local_bc") (= "=") (identifier "uVar39")) (; ";")) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (if_statement "if (DAT_00040b48 != 0) {\n    iVar12 = FUN_0001c9c0(param_1,DAT_00040bdc,local_8c,0);\n  }" (if "if") (parenthesized_expression "(DAT_00040b48 != 0)" (( "(") (binary_expression "DAT_00040b48 != 0" (identifier "DAT_00040b48") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar12 = FUN_0001c9c0(param_1,DAT_00040bdc,local_8c,0);\n  }" ({ "{") (expression_statement "iVar12 = FUN_0001c9c0(param_1,DAT_00040bdc,local_8c,0);" (assignment_expression "iVar12 = FUN_0001c9c0(param_1,DAT_00040bdc,local_8c,0)" (identifier "iVar12") (= "=") (call_expression "FUN_0001c9c0(param_1,DAT_00040bdc,local_8c,0)" (identifier "FUN_0001c9c0") (argument_list "(param_1,DAT_00040bdc,local_8c,0)" (( "(") (identifier "param_1") (, ",") (identifier "DAT_00040bdc") (, ",") (identifier "local_8c") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}"))) (if_statement "if (DAT_00040bb0 - 2U < 6) {\nLAB_0001962a:\n    if (DAT_00040bb0 != 7) goto LAB_0001962f;\n  }\n  else {\n    if (DAT_00040b30 == 0 && DAT_00040bac == 0) {\n      iVar18 = htab_elements(DAT_00040b2c);\n      if ((((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&\n         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))))\n      goto LAB_00019e4d;\n      goto LAB_0001962a;\n    }\nLAB_0001962f:\n    bfd_set_error(0);\n    bfd_map_over_sections(param_1,FUN_000187a0,DAT_00040bdc);\n    iVar18 = bfd_get_error();\n    if (iVar18 != 0) {\n      DAT_00040bc8 = 1;\n      return 0;\n    }\n  }" (if "if") (parenthesized_expression "(DAT_00040bb0 - 2U < 6)" (( "(") (binary_expression "DAT_00040bb0 - 2U < 6" (binary_expression "DAT_00040bb0 - 2U" (identifier "DAT_00040bb0") (- "-") (number_literal "2U")) (< "<") (number_literal "6")) () ")")) (compound_statement "{\nLAB_0001962a:\n    if (DAT_00040bb0 != 7) goto LAB_0001962f;\n  }" ({ "{") (labeled_statement "LAB_0001962a:\n    if (DAT_00040bb0 != 7) goto LAB_0001962f;" (statement_identifier "LAB_0001962a") (: ":") (if_statement "if (DAT_00040bb0 != 7) goto LAB_0001962f;" (if "if") (parenthesized_expression "(DAT_00040bb0 != 7)" (( "(") (binary_expression "DAT_00040bb0 != 7" (identifier "DAT_00040bb0") (!= "!=") (number_literal "7")) () ")")) (goto_statement "goto LAB_0001962f;" (goto "goto") (statement_identifier "LAB_0001962f") (; ";")))) (} "}")) (else_clause "else {\n    if (DAT_00040b30 == 0 && DAT_00040bac == 0) {\n      iVar18 = htab_elements(DAT_00040b2c);\n      if ((((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&\n         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))))\n      goto LAB_00019e4d;\n      goto LAB_0001962a;\n    }\nLAB_0001962f:\n    bfd_set_error(0);\n    bfd_map_over_sections(param_1,FUN_000187a0,DAT_00040bdc);\n    iVar18 = bfd_get_error();\n    if (iVar18 != 0) {\n      DAT_00040bc8 = 1;\n      return 0;\n    }\n  }" (else "else") (compound_statement "{\n    if (DAT_00040b30 == 0 && DAT_00040bac == 0) {\n      iVar18 = htab_elements(DAT_00040b2c);\n      if ((((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&\n         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))))\n      goto LAB_00019e4d;\n      goto LAB_0001962a;\n    }\nLAB_0001962f:\n    bfd_set_error(0);\n    bfd_map_over_sections(param_1,FUN_000187a0,DAT_00040bdc);\n    iVar18 = bfd_get_error();\n    if (iVar18 != 0) {\n      DAT_00040bc8 = 1;\n      return 0;\n    }\n  }" ({ "{") (if_statement "if (DAT_00040b30 == 0 && DAT_00040bac == 0) {\n      iVar18 = htab_elements(DAT_00040b2c);\n      if ((((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&\n         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))))\n      goto LAB_00019e4d;\n      goto LAB_0001962a;\n    }" (if "if") (parenthesized_expression "(DAT_00040b30 == 0 && DAT_00040bac == 0)" (( "(") (binary_expression "DAT_00040b30 == 0 && DAT_00040bac == 0" (binary_expression "DAT_00040b30 == 0" (identifier "DAT_00040b30") (== "==") (number_literal "0")) (&& "&&") (binary_expression "DAT_00040bac == 0" (identifier "DAT_00040bac") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n      iVar18 = htab_elements(DAT_00040b2c);\n      if ((((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&\n         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))))\n      goto LAB_00019e4d;\n      goto LAB_0001962a;\n    }" ({ "{") (expression_statement "iVar18 = htab_elements(DAT_00040b2c);" (assignment_expression "iVar18 = htab_elements(DAT_00040b2c)" (identifier "iVar18") (= "=") (call_expression "htab_elements(DAT_00040b2c)" (identifier "htab_elements") (argument_list "(DAT_00040b2c)" (( "(") (identifier "DAT_00040b2c") () ")")))) (; ";")) (if_statement "if ((((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&\n         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))))\n      goto LAB_00019e4d;" (if "if") (parenthesized_expression "((((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&\n         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))))" (( "(") (binary_expression "(((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&\n         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0)))" (parenthesized_expression "(((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0))" (( "(") (binary_expression "((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&\n          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)" (parenthesized_expression "((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0))))" (( "(") (binary_expression "(((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&\n           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))" (parenthesized_expression "(((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0))" (( "(") (binary_expression "((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&\n            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)" (parenthesized_expression "((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0))" (( "(") (binary_expression "(iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)" (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)" (( "(") (comma_expression "iVar18 = htab_elements(DAT_00040b24), iVar18 == 0" (assignment_expression "iVar18 = htab_elements(DAT_00040b24)" (identifier "iVar18") (= "=") (call_expression "htab_elements(DAT_00040b24)" (identifier "htab_elements") (argument_list "(DAT_00040b24)" (( "(") (identifier "DAT_00040b24") () ")")))) (, ",") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)" (( "(") (comma_expression "iVar18 = htab_elements(DAT_00040b20), iVar18 == 0" (assignment_expression "iVar18 = htab_elements(DAT_00040b20)" (identifier "iVar18") (= "=") (call_expression "htab_elements(DAT_00040b20)" (identifier "htab_elements") (argument_list "(DAT_00040b20)" (( "(") (identifier "DAT_00040b20") () ")")))) (, ",") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))" (( "(") (parenthesized_expression "(iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0))" (( "(") (comma_expression "iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)" (assignment_expression "iVar18 = htab_elements(DAT_00040b1c)" (identifier "iVar18") (= "=") (call_expression "htab_elements(DAT_00040b1c)" (identifier "htab_elements") (argument_list "(DAT_00040b1c)" (( "(") (identifier "DAT_00040b1c") () ")")))) (, ",") (binary_expression "iVar18 == 0 &&\n            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)" (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)" (( "(") (comma_expression "iVar18 = htab_elements(DAT_00040b18), iVar18 == 0" (assignment_expression "iVar18 = htab_elements(DAT_00040b18)" (identifier "iVar18") (= "=") (call_expression "htab_elements(DAT_00040b18)" (identifier "htab_elements") (argument_list "(DAT_00040b18)" (( "(") (identifier "DAT_00040b18") () ")")))) (, ",") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0"))) () ")")))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)" (( "(") (comma_expression "iVar18 = htab_elements(DAT_00040b14), iVar18 == 0" (assignment_expression "iVar18 = htab_elements(DAT_00040b14)" (identifier "iVar18") (= "=") (call_expression "htab_elements(DAT_00040b14)" (identifier "htab_elements") (argument_list "(DAT_00040b14)" (( "(") (identifier "DAT_00040b14") () ")")))) (, ",") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0)))" (( "(") (parenthesized_expression "((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))" (( "(") (binary_expression "(iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)) &&\n          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0)" (parenthesized_expression "(iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0))" (( "(") (comma_expression "iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)" (assignment_expression "iVar18 = htab_elements(DAT_00040b10)" (identifier "iVar18") (= "=") (call_expression "htab_elements(DAT_00040b10)" (identifier "htab_elements") (argument_list "(DAT_00040b10)" (( "(") (identifier "DAT_00040b10") () ")")))) (, ",") (binary_expression "DAT_00040af8 == (char *)0x0 &&\n           (DAT_00040be0 == (undefined4 *)0x0)" (binary_expression "DAT_00040af8 == (char *)0x0" (identifier "DAT_00040af8") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (&& "&&") (parenthesized_expression "(DAT_00040be0 == (undefined4 *)0x0)" (( "(") (binary_expression "DAT_00040be0 == (undefined4 *)0x0" (identifier "DAT_00040be0") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")))) () ")")) (&& "&&") (parenthesized_expression "(((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0)" (( "(") (binary_expression "((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0" (parenthesized_expression "((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0)" (( "(") (binary_expression "(((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0" (parenthesized_expression "(((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0)" (( "(") (binary_expression "((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0) && DAT_00040b00 == 0" (parenthesized_expression "((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0)" (( "(") (binary_expression "(((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)\n             && DAT_00040b38 == 0" (parenthesized_expression "(((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)" (( "(") (binary_expression "((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0" (parenthesized_expression "((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0)" (( "(") (binary_expression "(DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0" (parenthesized_expression "(DAT_00040ba4 == 0 && DAT_00040ba0 == 0)" (( "(") (binary_expression "DAT_00040ba4 == 0 && DAT_00040ba0 == 0" (binary_expression "DAT_00040ba4 == 0" (identifier "DAT_00040ba4") (== "==") (number_literal "0")) (&& "&&") (binary_expression "DAT_00040ba0 == 0" (identifier "DAT_00040ba0") (== "==") (number_literal "0"))) () ")")) (&& "&&") (binary_expression "DAT_00040b48 == 0" (identifier "DAT_00040b48") (== "==") (number_literal "0"))) () ")")) (&& "&&") (binary_expression "DAT_00040b3c == 0" (identifier "DAT_00040b3c") (== "==") (number_literal "0"))) () ")")) (&& "&&") (binary_expression "DAT_00040b38 == 0" (identifier "DAT_00040b38") (== "==") (number_literal "0"))) () ")")) (&& "&&") (binary_expression "DAT_00040b00 == 0" (identifier "DAT_00040b00") (== "==") (number_literal "0"))) () ")")) (&& "&&") (binary_expression "DAT_00040b04 == 0" (identifier "DAT_00040b04") (== "==") (number_literal "0"))) () ")")) (&& "&&") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00019e4d;" (goto "goto") (statement_identifier "LAB_00019e4d") (; ";"))) (goto_statement "goto LAB_0001962a;" (goto "goto") (statement_identifier "LAB_0001962a") (; ";")) (} "}"))) (labeled_statement "LAB_0001962f:\n    bfd_set_error(0);" (statement_identifier "LAB_0001962f") (: ":") (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_000187a0,DAT_00040bdc);" (call_expression "bfd_map_over_sections(param_1,FUN_000187a0,DAT_00040bdc)" (identifier "bfd_map_over_sections") (argument_list "(param_1,FUN_000187a0,DAT_00040bdc)" (( "(") (identifier "param_1") (, ",") (identifier "FUN_000187a0") (, ",") (identifier "DAT_00040bdc") () ")"))) (; ";")) (expression_statement "iVar18 = bfd_get_error();" (assignment_expression "iVar18 = bfd_get_error()" (identifier "iVar18") (= "=") (call_expression "bfd_get_error()" (identifier "bfd_get_error") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar18 != 0) {\n      DAT_00040bc8 = 1;\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar18 != 0)" (( "(") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      DAT_00040bc8 = 1;\n      return 0;\n    }" ({ "{") (expression_statement "DAT_00040bc8 = 1;" (assignment_expression "DAT_00040bc8 = 1" (identifier "DAT_00040bc8") (= "=") (number_literal "1")) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")))) (expression_statement "piVar19 = (int *)xmalloc((DAT_00040b04 + local_8c) * 4 + 4);" (assignment_expression "piVar19 = (int *)xmalloc((DAT_00040b04 + local_8c) * 4 + 4)" (identifier "piVar19") (= "=") (cast_expression "(int *)xmalloc((DAT_00040b04 + local_8c) * 4 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc((DAT_00040b04 + local_8c) * 4 + 4)" (identifier "xmalloc") (argument_list "((DAT_00040b04 + local_8c) * 4 + 4)" (( "(") (binary_expression "(DAT_00040b04 + local_8c) * 4 + 4" (binary_expression "(DAT_00040b04 + local_8c) * 4" (parenthesized_expression "(DAT_00040b04 + local_8c)" (( "(") (binary_expression "DAT_00040b04 + local_8c" (identifier "DAT_00040b04") (+ "+") (identifier "local_8c")) () ")")) (* "*") (number_literal "4")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_84 = DAT_00040bdc;" (assignment_expression "local_84 = DAT_00040bdc" (identifier "local_84") (= "=") (identifier "DAT_00040bdc")) (; ";")) (expression_statement "uVar39 = *(uint *)((int)param_1 + 0x28);" (assignment_expression "uVar39 = *(uint *)((int)param_1 + 0x28)" (identifier "uVar39") (= "=") (pointer_expression "*(uint *)((int)param_1 + 0x28)" (* "*") (cast_expression "(uint *)((int)param_1 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x28)" (( "(") (binary_expression "(int)param_1 + 0x28" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "DAT_00040bd8 = piVar19;" (assignment_expression "DAT_00040bd8 = piVar19" (identifier "DAT_00040bd8") (= "=") (identifier "piVar19")) (; ";")) (if_statement "if (local_8c != 0) {\n    piVar1 = DAT_00040bdc + local_8c;\n    local_8c = 0;\n    puVar20 = PTR__bfd_std_section_0003ffc8 + 0xc0;\n    do {\n      iVar18 = DAT_00040b04;\n      piVar4 = (int *)*local_84;\n      uVar17 = piVar4[4];\n      piVar24 = (int *)piVar4[1];\n      puVar5 = (undefined *)piVar4[5];\n      if (((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) &&\n         (pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0)) {\n        local_6c = (size_t *)0x0;\n        piVar34 = DAT_00040b08;\n        while (iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0) {\n          local_6c = (size_t *)((int)local_6c + 1);\n          piVar34 = (int *)*piVar34;\n          if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar25);\n        piVar34[5] = (int)"";\n        piVar34 = piVar19 + local_8c;\n        local_8c = local_8c + 1;\n        iVar18 = FUN_00017920();\n        *piVar34 = iVar18;\n      }\nLAB_000197a8:\n      iVar18 = htab_elements(DAT_00040b10);\n      piVar34 = piVar24;\n      if ((iVar18 != 0) || (DAT_00040be0 != (undefined4 *)0x0)) {\n        local_30 = 0;\n        local_34 = piVar24;\n        iVar18 = htab_find(DAT_00040b10,&local_34);\n        if (((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)) {\n          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }\n        }\n        piVar4[1] = (int)piVar34;\n      }\n      pcVar25 = DAT_00040af8;\n      cVar2 = *(char *)(*(int *)((int)param_1 + 4) + 0x18);\n      if ((char)*piVar34 == cVar2) {\n        if (DAT_00040b3c == 0) {\n          if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }\nLAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }\n      }\n      else {\n        if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))\n        goto LAB_0001982b;\nLAB_00019ab1:\n        sVar22 = strlen(pcVar25);\n        sVar23 = strlen((char *)piVar34);\n        piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n        local_6c = (size_t *)((int)piVar24 + 1);\n        *(char *)piVar24 = *(char *)(param_2[1] + 0x18);\nLAB_00019858:\n        pcVar25 = DAT_00040af8;\n        if (DAT_00040af8 != (char *)0x0) {\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }\n        strcpy((char *)local_6c,(char *)piVar34);\n        piVar4[1] = (int)piVar24;\n        piVar34 = piVar24;\n      }\n      if (DAT_00040bb0 == 7) goto LAB_00019928;\n      if ((uVar17 & 0x20) == 0) {\n        if (((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)) {\n          if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;\n        }\n        else {\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;\n      }\n      else {\n        iVar18 = FUN_000179c0();\n        if (iVar18 != 0) {\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }\nLAB_0001994f:\n        iVar18 = FUN_00017a30();\n        if (iVar18 == 0) {\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }\n      }\n      local_84 = local_84 + 1;\n    } while (piVar1 != local_84);\n  }" (if "if") (parenthesized_expression "(local_8c != 0)" (( "(") (binary_expression "local_8c != 0" (identifier "local_8c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    piVar1 = DAT_00040bdc + local_8c;\n    local_8c = 0;\n    puVar20 = PTR__bfd_std_section_0003ffc8 + 0xc0;\n    do {\n      iVar18 = DAT_00040b04;\n      piVar4 = (int *)*local_84;\n      uVar17 = piVar4[4];\n      piVar24 = (int *)piVar4[1];\n      puVar5 = (undefined *)piVar4[5];\n      if (((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) &&\n         (pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0)) {\n        local_6c = (size_t *)0x0;\n        piVar34 = DAT_00040b08;\n        while (iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0) {\n          local_6c = (size_t *)((int)local_6c + 1);\n          piVar34 = (int *)*piVar34;\n          if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar25);\n        piVar34[5] = (int)"";\n        piVar34 = piVar19 + local_8c;\n        local_8c = local_8c + 1;\n        iVar18 = FUN_00017920();\n        *piVar34 = iVar18;\n      }\nLAB_000197a8:\n      iVar18 = htab_elements(DAT_00040b10);\n      piVar34 = piVar24;\n      if ((iVar18 != 0) || (DAT_00040be0 != (undefined4 *)0x0)) {\n        local_30 = 0;\n        local_34 = piVar24;\n        iVar18 = htab_find(DAT_00040b10,&local_34);\n        if (((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)) {\n          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }\n        }\n        piVar4[1] = (int)piVar34;\n      }\n      pcVar25 = DAT_00040af8;\n      cVar2 = *(char *)(*(int *)((int)param_1 + 4) + 0x18);\n      if ((char)*piVar34 == cVar2) {\n        if (DAT_00040b3c == 0) {\n          if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }\nLAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }\n      }\n      else {\n        if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))\n        goto LAB_0001982b;\nLAB_00019ab1:\n        sVar22 = strlen(pcVar25);\n        sVar23 = strlen((char *)piVar34);\n        piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n        local_6c = (size_t *)((int)piVar24 + 1);\n        *(char *)piVar24 = *(char *)(param_2[1] + 0x18);\nLAB_00019858:\n        pcVar25 = DAT_00040af8;\n        if (DAT_00040af8 != (char *)0x0) {\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }\n        strcpy((char *)local_6c,(char *)piVar34);\n        piVar4[1] = (int)piVar24;\n        piVar34 = piVar24;\n      }\n      if (DAT_00040bb0 == 7) goto LAB_00019928;\n      if ((uVar17 & 0x20) == 0) {\n        if (((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)) {\n          if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;\n        }\n        else {\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;\n      }\n      else {\n        iVar18 = FUN_000179c0();\n        if (iVar18 != 0) {\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }\nLAB_0001994f:\n        iVar18 = FUN_00017a30();\n        if (iVar18 == 0) {\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }\n      }\n      local_84 = local_84 + 1;\n    } while (piVar1 != local_84);\n  }" ({ "{") (expression_statement "piVar1 = DAT_00040bdc + local_8c;" (assignment_expression "piVar1 = DAT_00040bdc + local_8c" (identifier "piVar1") (= "=") (binary_expression "DAT_00040bdc + local_8c" (identifier "DAT_00040bdc") (+ "+") (identifier "local_8c"))) (; ";")) (expression_statement "local_8c = 0;" (assignment_expression "local_8c = 0" (identifier "local_8c") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar20 = PTR__bfd_std_section_0003ffc8 + 0xc0;" (assignment_expression "puVar20 = PTR__bfd_std_section_0003ffc8 + 0xc0" (identifier "puVar20") (= "=") (binary_expression "PTR__bfd_std_section_0003ffc8 + 0xc0" (identifier "PTR__bfd_std_section_0003ffc8") (+ "+") (number_literal "0xc0"))) (; ";")) (do_statement "do {\n      iVar18 = DAT_00040b04;\n      piVar4 = (int *)*local_84;\n      uVar17 = piVar4[4];\n      piVar24 = (int *)piVar4[1];\n      puVar5 = (undefined *)piVar4[5];\n      if (((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) &&\n         (pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0)) {\n        local_6c = (size_t *)0x0;\n        piVar34 = DAT_00040b08;\n        while (iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0) {\n          local_6c = (size_t *)((int)local_6c + 1);\n          piVar34 = (int *)*piVar34;\n          if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar25);\n        piVar34[5] = (int)"";\n        piVar34 = piVar19 + local_8c;\n        local_8c = local_8c + 1;\n        iVar18 = FUN_00017920();\n        *piVar34 = iVar18;\n      }\nLAB_000197a8:\n      iVar18 = htab_elements(DAT_00040b10);\n      piVar34 = piVar24;\n      if ((iVar18 != 0) || (DAT_00040be0 != (undefined4 *)0x0)) {\n        local_30 = 0;\n        local_34 = piVar24;\n        iVar18 = htab_find(DAT_00040b10,&local_34);\n        if (((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)) {\n          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }\n        }\n        piVar4[1] = (int)piVar34;\n      }\n      pcVar25 = DAT_00040af8;\n      cVar2 = *(char *)(*(int *)((int)param_1 + 4) + 0x18);\n      if ((char)*piVar34 == cVar2) {\n        if (DAT_00040b3c == 0) {\n          if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }\nLAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }\n      }\n      else {\n        if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))\n        goto LAB_0001982b;\nLAB_00019ab1:\n        sVar22 = strlen(pcVar25);\n        sVar23 = strlen((char *)piVar34);\n        piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n        local_6c = (size_t *)((int)piVar24 + 1);\n        *(char *)piVar24 = *(char *)(param_2[1] + 0x18);\nLAB_00019858:\n        pcVar25 = DAT_00040af8;\n        if (DAT_00040af8 != (char *)0x0) {\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }\n        strcpy((char *)local_6c,(char *)piVar34);\n        piVar4[1] = (int)piVar24;\n        piVar34 = piVar24;\n      }\n      if (DAT_00040bb0 == 7) goto LAB_00019928;\n      if ((uVar17 & 0x20) == 0) {\n        if (((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)) {\n          if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;\n        }\n        else {\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;\n      }\n      else {\n        iVar18 = FUN_000179c0();\n        if (iVar18 != 0) {\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }\nLAB_0001994f:\n        iVar18 = FUN_00017a30();\n        if (iVar18 == 0) {\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }\n      }\n      local_84 = local_84 + 1;\n    } while (piVar1 != local_84);" (do "do") (compound_statement "{\n      iVar18 = DAT_00040b04;\n      piVar4 = (int *)*local_84;\n      uVar17 = piVar4[4];\n      piVar24 = (int *)piVar4[1];\n      puVar5 = (undefined *)piVar4[5];\n      if (((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) &&\n         (pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0)) {\n        local_6c = (size_t *)0x0;\n        piVar34 = DAT_00040b08;\n        while (iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0) {\n          local_6c = (size_t *)((int)local_6c + 1);\n          piVar34 = (int *)*piVar34;\n          if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar25);\n        piVar34[5] = (int)"";\n        piVar34 = piVar19 + local_8c;\n        local_8c = local_8c + 1;\n        iVar18 = FUN_00017920();\n        *piVar34 = iVar18;\n      }\nLAB_000197a8:\n      iVar18 = htab_elements(DAT_00040b10);\n      piVar34 = piVar24;\n      if ((iVar18 != 0) || (DAT_00040be0 != (undefined4 *)0x0)) {\n        local_30 = 0;\n        local_34 = piVar24;\n        iVar18 = htab_find(DAT_00040b10,&local_34);\n        if (((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)) {\n          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }\n        }\n        piVar4[1] = (int)piVar34;\n      }\n      pcVar25 = DAT_00040af8;\n      cVar2 = *(char *)(*(int *)((int)param_1 + 4) + 0x18);\n      if ((char)*piVar34 == cVar2) {\n        if (DAT_00040b3c == 0) {\n          if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }\nLAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }\n      }\n      else {\n        if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))\n        goto LAB_0001982b;\nLAB_00019ab1:\n        sVar22 = strlen(pcVar25);\n        sVar23 = strlen((char *)piVar34);\n        piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n        local_6c = (size_t *)((int)piVar24 + 1);\n        *(char *)piVar24 = *(char *)(param_2[1] + 0x18);\nLAB_00019858:\n        pcVar25 = DAT_00040af8;\n        if (DAT_00040af8 != (char *)0x0) {\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }\n        strcpy((char *)local_6c,(char *)piVar34);\n        piVar4[1] = (int)piVar24;\n        piVar34 = piVar24;\n      }\n      if (DAT_00040bb0 == 7) goto LAB_00019928;\n      if ((uVar17 & 0x20) == 0) {\n        if (((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)) {\n          if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;\n        }\n        else {\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;\n      }\n      else {\n        iVar18 = FUN_000179c0();\n        if (iVar18 != 0) {\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }\nLAB_0001994f:\n        iVar18 = FUN_00017a30();\n        if (iVar18 == 0) {\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }\n      }\n      local_84 = local_84 + 1;\n    }" ({ "{") (expression_statement "iVar18 = DAT_00040b04;" (assignment_expression "iVar18 = DAT_00040b04" (identifier "iVar18") (= "=") (identifier "DAT_00040b04")) (; ";")) (expression_statement "piVar4 = (int *)*local_84;" (assignment_expression "piVar4 = (int *)*local_84" (identifier "piVar4") (= "=") (cast_expression "(int *)*local_84" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_84" (* "*") (identifier "local_84")))) (; ";")) (expression_statement "uVar17 = piVar4[4];" (assignment_expression "uVar17 = piVar4[4]" (identifier "uVar17") (= "=") (subscript_expression "piVar4[4]" (identifier "piVar4") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "piVar24 = (int *)piVar4[1];" (assignment_expression "piVar24 = (int *)piVar4[1]" (identifier "piVar24") (= "=") (cast_expression "(int *)piVar4[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar4[1]" (identifier "piVar4") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "puVar5 = (undefined *)piVar4[5];" (assignment_expression "puVar5 = (undefined *)piVar4[5]" (identifier "puVar5") (= "=") (cast_expression "(undefined *)piVar4[5]" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar4[5]" (identifier "piVar4") ([ "[") (number_literal "5") (] "]")))) (; ";")) (if_statement "if (((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) &&\n         (pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0)) {\n        local_6c = (size_t *)0x0;\n        piVar34 = DAT_00040b08;\n        while (iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0) {\n          local_6c = (size_t *)((int)local_6c + 1);\n          piVar34 = (int *)*piVar34;\n          if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar25);\n        piVar34[5] = (int)"";\n        piVar34 = piVar19 + local_8c;\n        local_8c = local_8c + 1;\n        iVar18 = FUN_00017920();\n        *piVar34 = iVar18;\n      }" (if "if") (parenthesized_expression "(((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) &&\n         (pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0))" (( "(") (binary_expression "((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) &&\n         (pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0)" (parenthesized_expression "((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04))" (( "(") (binary_expression "(DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)" (parenthesized_expression "(DAT_00040b08 != (int *)0x0)" (( "(") (binary_expression "DAT_00040b08 != (int *)0x0" (identifier "DAT_00040b08") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(0 < DAT_00040b04)" (( "(") (binary_expression "0 < DAT_00040b04" (number_literal "0") (< "<") (identifier "DAT_00040b04")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0)" (( "(") (comma_expression "pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0" (assignment_expression "pcVar25 = (char *)DAT_00040b08[5]" (identifier "pcVar25") (= "=") (cast_expression "(char *)DAT_00040b08[5]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_00040b08[5]" (identifier "DAT_00040b08") ([ "[") (number_literal "5") (] "]")))) (, ",") (binary_expression "pcVar25 != (char *)0x0" (identifier "pcVar25") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n        local_6c = (size_t *)0x0;\n        piVar34 = DAT_00040b08;\n        while (iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0) {\n          local_6c = (size_t *)((int)local_6c + 1);\n          piVar34 = (int *)*piVar34;\n          if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;\n        }\n        free(pcVar25);\n        piVar34[5] = (int)"";\n        piVar34 = piVar19 + local_8c;\n        local_8c = local_8c + 1;\n        iVar18 = FUN_00017920();\n        *piVar34 = iVar18;\n      }" ({ "{") (expression_statement "local_6c = (size_t *)0x0;" (assignment_expression "local_6c = (size_t *)0x0" (identifier "local_6c") (= "=") (cast_expression "(size_t *)0x0" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "piVar34 = DAT_00040b08;" (assignment_expression "piVar34 = DAT_00040b08" (identifier "piVar34") (= "=") (identifier "DAT_00040b08")) (; ";")) (while_statement "while (iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0) {\n          local_6c = (size_t *)((int)local_6c + 1);\n          piVar34 = (int *)*piVar34;\n          if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;\n        }" (while "while") (parenthesized_expression "(iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0)" (( "(") (comma_expression "iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0" (assignment_expression "iVar21 = strcmp(pcVar25,(char *)piVar24)" (identifier "iVar21") (= "=") (call_expression "strcmp(pcVar25,(char *)piVar24)" (identifier "strcmp") (argument_list "(pcVar25,(char *)piVar24)" (( "(") (identifier "pcVar25") (, ",") (cast_expression "(char *)piVar24" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar24")) () ")")))) (, ",") (binary_expression "iVar21 != 0" (identifier "iVar21") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n          local_6c = (size_t *)((int)local_6c + 1);\n          piVar34 = (int *)*piVar34;\n          if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;\n        }" ({ "{") (expression_statement "local_6c = (size_t *)((int)local_6c + 1);" (assignment_expression "local_6c = (size_t *)((int)local_6c + 1)" (identifier "local_6c") (= "=") (cast_expression "(size_t *)((int)local_6c + 1)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_6c + 1)" (( "(") (binary_expression "(int)local_6c + 1" (cast_expression "(int)local_6c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_6c")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "piVar34 = (int *)*piVar34;" (assignment_expression "piVar34 = (int *)*piVar34" (identifier "piVar34") (= "=") (cast_expression "(int *)*piVar34" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar34" (* "*") (identifier "piVar34")))) (; ";")) (if_statement "if ((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;" (if "if") (parenthesized_expression "((local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0))" (( "(") (binary_expression "(local_6c == (size_t *)iVar18) ||\n             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)" (parenthesized_expression "(local_6c == (size_t *)iVar18)" (( "(") (binary_expression "local_6c == (size_t *)iVar18" (identifier "local_6c") (== "==") (cast_expression "(size_t *)iVar18" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "iVar18"))) () ")")) (|| "||") (parenthesized_expression "(pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)" (( "(") (comma_expression "pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0" (assignment_expression "pcVar25 = (char *)piVar34[5]" (identifier "pcVar25") (= "=") (cast_expression "(char *)piVar34[5]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar34[5]" (identifier "piVar34") ([ "[") (number_literal "5") (] "]")))) (, ",") (binary_expression "pcVar25 == (char *)0x0" (identifier "pcVar25") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (goto_statement "goto LAB_000197a8;" (goto "goto") (statement_identifier "LAB_000197a8") (; ";"))) (} "}"))) (expression_statement "free(pcVar25);" (call_expression "free(pcVar25)" (identifier "free") (argument_list "(pcVar25)" (( "(") (identifier "pcVar25") () ")"))) (; ";")) (expression_statement "piVar34[5] = (int)"";" (assignment_expression "piVar34[5] = (int)""" (subscript_expression "piVar34[5]" (identifier "piVar34") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(int)""" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (string_literal """" (" """) (" """)))) (; ";")) (expression_statement "piVar34 = piVar19 + local_8c;" (assignment_expression "piVar34 = piVar19 + local_8c" (identifier "piVar34") (= "=") (binary_expression "piVar19 + local_8c" (identifier "piVar19") (+ "+") (identifier "local_8c"))) (; ";")) (expression_statement "local_8c = local_8c + 1;" (assignment_expression "local_8c = local_8c + 1" (identifier "local_8c") (= "=") (binary_expression "local_8c + 1" (identifier "local_8c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar18 = FUN_00017920();" (assignment_expression "iVar18 = FUN_00017920()" (identifier "iVar18") (= "=") (call_expression "FUN_00017920()" (identifier "FUN_00017920") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*piVar34 = iVar18;" (assignment_expression "*piVar34 = iVar18" (pointer_expression "*piVar34" (* "*") (identifier "piVar34")) (= "=") (identifier "iVar18")) (; ";")) (} "}"))) (labeled_statement "LAB_000197a8:\n      iVar18 = htab_elements(DAT_00040b10);" (statement_identifier "LAB_000197a8") (: ":") (expression_statement "iVar18 = htab_elements(DAT_00040b10);" (assignment_expression "iVar18 = htab_elements(DAT_00040b10)" (identifier "iVar18") (= "=") (call_expression "htab_elements(DAT_00040b10)" (identifier "htab_elements") (argument_list "(DAT_00040b10)" (( "(") (identifier "DAT_00040b10") () ")")))) (; ";"))) (expression_statement "piVar34 = piVar24;" (assignment_expression "piVar34 = piVar24" (identifier "piVar34") (= "=") (identifier "piVar24")) (; ";")) (if_statement "if ((iVar18 != 0) || (DAT_00040be0 != (undefined4 *)0x0)) {\n        local_30 = 0;\n        local_34 = piVar24;\n        iVar18 = htab_find(DAT_00040b10,&local_34);\n        if (((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)) {\n          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }\n        }\n        piVar4[1] = (int)piVar34;\n      }" (if "if") (parenthesized_expression "((iVar18 != 0) || (DAT_00040be0 != (undefined4 *)0x0))" (( "(") (binary_expression "(iVar18 != 0) || (DAT_00040be0 != (undefined4 *)0x0)" (parenthesized_expression "(iVar18 != 0)" (( "(") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(DAT_00040be0 != (undefined4 *)0x0)" (( "(") (binary_expression "DAT_00040be0 != (undefined4 *)0x0" (identifier "DAT_00040be0") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n        local_30 = 0;\n        local_34 = piVar24;\n        iVar18 = htab_find(DAT_00040b10,&local_34);\n        if (((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)) {\n          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }\n        }\n        piVar4[1] = (int)piVar34;\n      }" ({ "{") (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_34 = piVar24;" (assignment_expression "local_34 = piVar24" (identifier "local_34") (= "=") (identifier "piVar24")) (; ";")) (expression_statement "iVar18 = htab_find(DAT_00040b10,&local_34);" (assignment_expression "iVar18 = htab_find(DAT_00040b10,&local_34)" (identifier "iVar18") (= "=") (call_expression "htab_find(DAT_00040b10,&local_34)" (identifier "htab_find") (argument_list "(DAT_00040b10,&local_34)" (( "(") (identifier "DAT_00040b10") (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")")))) (; ";")) (if_statement "if (((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)) {\n          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0))" (( "(") (binary_expression "((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&\n           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)" (parenthesized_expression "((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34))" (( "(") (binary_expression "(iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)" (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)" (( "(") (comma_expression "piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34" (assignment_expression "piVar34 = *(int **)(iVar18 + 4)" (identifier "piVar34") (= "=") (pointer_expression "*(int **)(iVar18 + 4)" (* "*") (cast_expression "(int **)(iVar18 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar18 + 4)" (( "(") (binary_expression "iVar18 + 4" (identifier "iVar18") (+ "+") (number_literal "4")) () ")"))))) (, ",") (binary_expression "piVar24 == piVar34" (identifier "piVar24") (== "==") (identifier "piVar34"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)" (( "(") (comma_expression "puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0" (assignment_expression "puVar35 = DAT_00040be0" (identifier "puVar35") (= "=") (identifier "DAT_00040be0")) (, ",") (binary_expression "(uVar17 & 0x100) != 0" (parenthesized_expression "(uVar17 & 0x100)" (( "(") (binary_expression "uVar17 & 0x100" (identifier "uVar17") (& "&") (number_literal "0x100")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }\n        }" ({ "{") (for_statement "for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]\n              ) {\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }" (for "for") (( "(") (; ";") (comma_expression "piVar34 = piVar24, puVar35 != (undefined4 *)0x0" (assignment_expression "piVar34 = piVar24" (identifier "piVar34") (= "=") (identifier "piVar24")) (, ",") (binary_expression "puVar35 != (undefined4 *)0x0" (identifier "puVar35") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";") (assignment_expression "puVar35 = (undefined4 *)puVar35[3]" (identifier "puVar35") (= "=") (cast_expression "(undefined4 *)puVar35[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar35[3]" (identifier "puVar35") ([ "[") (number_literal "3") (] "]")))) () ")") (compound_statement "{\n            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);\n            if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }\n          }" ({ "{") (expression_statement "iVar18 = strcmp((char *)*puVar35,(char *)piVar24);" (assignment_expression "iVar18 = strcmp((char *)*puVar35,(char *)piVar24)" (identifier "iVar18") (= "=") (call_expression "strcmp((char *)*puVar35,(char *)piVar24)" (identifier "strcmp") (argument_list "((char *)*puVar35,(char *)piVar24)" (( "(") (cast_expression "(char *)*puVar35" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar35" (* "*") (identifier "puVar35"))) (, ",") (cast_expression "(char *)piVar24" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar24")) () ")")))) (; ";")) (if_statement "if (iVar18 == 0) {\n              piVar34 = (int *)puVar35[1];\n              break;\n            }" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              piVar34 = (int *)puVar35[1];\n              break;\n            }" ({ "{") (expression_statement "piVar34 = (int *)puVar35[1];" (assignment_expression "piVar34 = (int *)puVar35[1]" (identifier "piVar34") (= "=") (cast_expression "(int *)puVar35[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar35[1]" (identifier "puVar35") ([ "[") (number_literal "1") (] "]")))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "piVar4[1] = (int)piVar34;" (assignment_expression "piVar4[1] = (int)piVar34" (subscript_expression "piVar4[1]" (identifier "piVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int)piVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar34"))) (; ";")) (} "}"))) (expression_statement "pcVar25 = DAT_00040af8;" (assignment_expression "pcVar25 = DAT_00040af8" (identifier "pcVar25") (= "=") (identifier "DAT_00040af8")) (; ";")) (expression_statement "cVar2 = *(char *)(*(int *)((int)param_1 + 4) + 0x18);" (assignment_expression "cVar2 = *(char *)(*(int *)((int)param_1 + 4) + 0x18)" (identifier "cVar2") (= "=") (pointer_expression "*(char *)(*(int *)((int)param_1 + 4) + 0x18)" (* "*") (cast_expression "(char *)(*(int *)((int)param_1 + 4) + 0x18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)((int)param_1 + 4) + 0x18)" (( "(") (binary_expression "*(int *)((int)param_1 + 4) + 0x18" (pointer_expression "*(int *)((int)param_1 + 4)" (* "*") (cast_expression "(int *)((int)param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 4)" (( "(") (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if ((char)*piVar34 == cVar2) {\n        if (DAT_00040b3c == 0) {\n          if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }\nLAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }\n      }\n      else {\n        if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))\n        goto LAB_0001982b;\nLAB_00019ab1:\n        sVar22 = strlen(pcVar25);\n        sVar23 = strlen((char *)piVar34);\n        piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n        local_6c = (size_t *)((int)piVar24 + 1);\n        *(char *)piVar24 = *(char *)(param_2[1] + 0x18);\nLAB_00019858:\n        pcVar25 = DAT_00040af8;\n        if (DAT_00040af8 != (char *)0x0) {\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }\n        strcpy((char *)local_6c,(char *)piVar34);\n        piVar4[1] = (int)piVar24;\n        piVar34 = piVar24;\n      }" (if "if") (parenthesized_expression "((char)*piVar34 == cVar2)" (( "(") (binary_expression "(char)*piVar34 == cVar2" (cast_expression "(char)*piVar34" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*piVar34" (* "*") (identifier "piVar34"))) (== "==") (identifier "cVar2")) () ")")) (compound_statement "{\n        if (DAT_00040b3c == 0) {\n          if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }\nLAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }\n      }" ({ "{") (if_statement "if (DAT_00040b3c == 0) {\n          if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }\nLAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }\n        }\n        else {\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }" (if "if") (parenthesized_expression "(DAT_00040b3c == 0)" (( "(") (binary_expression "DAT_00040b3c == 0" (identifier "DAT_00040b3c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }\nLAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }\n        }" ({ "{") (if_statement "if ((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }" (if "if") (parenthesized_expression "((DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0))))" (( "(") (binary_expression "(DAT_00040b38 != 0) &&\n             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))" (parenthesized_expression "(DAT_00040b38 != 0)" (( "(") (binary_expression "DAT_00040b38 != 0" (identifier "DAT_00040b38") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))" (( "(") (parenthesized_expression "(((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0))" (( "(") (binary_expression "((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||\n              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)" (parenthesized_expression "((uVar17 & 0x82) != 0 || (puVar5 == puVar20))" (( "(") (binary_expression "(uVar17 & 0x82) != 0 || (puVar5 == puVar20)" (binary_expression "(uVar17 & 0x82) != 0" (parenthesized_expression "(uVar17 & 0x82)" (( "(") (binary_expression "uVar17 & 0x82" (identifier "uVar17") (& "&") (number_literal "0x82")) () ")")) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(puVar5 == puVar20)" (( "(") (binary_expression "puVar5 == puVar20" (identifier "puVar5") (== "==") (identifier "puVar20")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)" (( "(") (binary_expression "(*(byte *)(piVar4[5] + 0x15) & 0x10) != 0" (parenthesized_expression "(*(byte *)(piVar4[5] + 0x15) & 0x10)" (( "(") (binary_expression "*(byte *)(piVar4[5] + 0x15) & 0x10" (pointer_expression "*(byte *)(piVar4[5] + 0x15)" (* "*") (cast_expression "(byte *)(piVar4[5] + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar4[5] + 0x15)" (( "(") (binary_expression "piVar4[5] + 0x15" (subscript_expression "piVar4[5]" (identifier "piVar4") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "0x15")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n          }" ({ "{") (expression_statement "piVar34 = (int *)((int)piVar34 + 1);" (assignment_expression "piVar34 = (int *)((int)piVar34 + 1)" (identifier "piVar34") (= "=") (cast_expression "(int *)((int)piVar34 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar34 + 1)" (( "(") (binary_expression "(int)piVar34 + 1" (cast_expression "(int)piVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar34")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "piVar4[1] = (int)piVar34;" (assignment_expression "piVar4[1] = (int)piVar34" (subscript_expression "piVar4[1]" (identifier "piVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int)piVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar34"))) (; ";")) (} "}"))) (labeled_statement "LAB_0001982b:\n          if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }" (statement_identifier "LAB_0001982b") (: ":") (if_statement "if (pcVar25 != (char *)0x0) {\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }" (if "if") (parenthesized_expression "(pcVar25 != (char *)0x0)" (( "(") (binary_expression "pcVar25 != (char *)0x0" (identifier "pcVar25") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            sVar22 = strlen(pcVar25);\n            sVar23 = strlen((char *)piVar34);\n            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n            local_6c = (size_t *)piVar24;\n            goto LAB_00019858;\n          }" ({ "{") (expression_statement "sVar22 = strlen(pcVar25);" (assignment_expression "sVar22 = strlen(pcVar25)" (identifier "sVar22") (= "=") (call_expression "strlen(pcVar25)" (identifier "strlen") (argument_list "(pcVar25)" (( "(") (identifier "pcVar25") () ")")))) (; ";")) (expression_statement "sVar23 = strlen((char *)piVar34);" (assignment_expression "sVar23 = strlen((char *)piVar34)" (identifier "sVar23") (= "=") (call_expression "strlen((char *)piVar34)" (identifier "strlen") (argument_list "((char *)piVar34)" (( "(") (cast_expression "(char *)piVar34" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar34")) () ")")))) (; ";")) (expression_statement "piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);" (assignment_expression "piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23)" (identifier "piVar24") (= "=") (cast_expression "(int *)xmalloc(sVar22 + 2 + sVar23)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar22 + 2 + sVar23)" (identifier "xmalloc") (argument_list "(sVar22 + 2 + sVar23)" (( "(") (binary_expression "sVar22 + 2 + sVar23" (binary_expression "sVar22 + 2" (identifier "sVar22") (+ "+") (number_literal "2")) (+ "+") (identifier "sVar23")) () ")"))))) (; ";")) (expression_statement "local_6c = (size_t *)piVar24;" (assignment_expression "local_6c = (size_t *)piVar24" (identifier "local_6c") (= "=") (cast_expression "(size_t *)piVar24" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar24"))) (; ";")) (goto_statement "goto LAB_00019858;" (goto "goto") (statement_identifier "LAB_00019858") (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }" (else "else") (compound_statement "{\n          if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }\n          if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }\n          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);\n          piVar4[1] = (int)piVar34;\n        }" ({ "{") (if_statement "if (*(char *)(param_2[1] + 0x18) == '\0') {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }" (if "if") (parenthesized_expression "(*(char *)(param_2[1] + 0x18) == '\0')" (( "(") (binary_expression "*(char *)(param_2[1] + 0x18) == '\0'" (pointer_expression "*(char *)(param_2[1] + 0x18)" (* "*") (cast_expression "(char *)(param_2[1] + 0x18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[1] + 0x18)" (( "(") (binary_expression "param_2[1] + 0x18" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x18")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_0001982b;\n          }" ({ "{") (expression_statement "piVar34 = (int *)((int)piVar34 + 1);" (assignment_expression "piVar34 = (int *)((int)piVar34 + 1)" (identifier "piVar34") (= "=") (cast_expression "(int *)((int)piVar34 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar34 + 1)" (( "(") (binary_expression "(int)piVar34 + 1" (cast_expression "(int)piVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar34")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "piVar4[1] = (int)piVar34;" (assignment_expression "piVar4[1] = (int)piVar34" (subscript_expression "piVar4[1]" (identifier "piVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int)piVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar34"))) (; ";")) (goto_statement "goto LAB_0001982b;" (goto "goto") (statement_identifier "LAB_0001982b") (; ";")) (} "}"))) (if_statement "if (DAT_00040af8 != (char *)0x0) {\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }" (if "if") (parenthesized_expression "(DAT_00040af8 != (char *)0x0)" (( "(") (binary_expression "DAT_00040af8 != (char *)0x0" (identifier "DAT_00040af8") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            piVar34 = (int *)((int)piVar34 + 1);\n            piVar4[1] = (int)piVar34;\n            goto LAB_00019ab1;\n          }" ({ "{") (expression_statement "piVar34 = (int *)((int)piVar34 + 1);" (assignment_expression "piVar34 = (int *)((int)piVar34 + 1)" (identifier "piVar34") (= "=") (cast_expression "(int *)((int)piVar34 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar34 + 1)" (( "(") (binary_expression "(int)piVar34 + 1" (cast_expression "(int)piVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar34")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "piVar4[1] = (int)piVar34;" (assignment_expression "piVar4[1] = (int)piVar34" (subscript_expression "piVar4[1]" (identifier "piVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int)piVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar34"))) (; ";")) (goto_statement "goto LAB_00019ab1;" (goto "goto") (statement_identifier "LAB_00019ab1") (; ";")) (} "}"))) (expression_statement "*(char *)piVar34 = *(char *)(param_2[1] + 0x18);" (assignment_expression "*(char *)piVar34 = *(char *)(param_2[1] + 0x18)" (pointer_expression "*(char *)piVar34" (* "*") (cast_expression "(char *)piVar34" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar34"))) (= "=") (pointer_expression "*(char *)(param_2[1] + 0x18)" (* "*") (cast_expression "(char *)(param_2[1] + 0x18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[1] + 0x18)" (( "(") (binary_expression "param_2[1] + 0x18" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "piVar4[1] = (int)piVar34;" (assignment_expression "piVar4[1] = (int)piVar34" (subscript_expression "piVar4[1]" (identifier "piVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int)piVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar34"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))\n        goto LAB_0001982b;\nLAB_00019ab1:\n        sVar22 = strlen(pcVar25);\n        sVar23 = strlen((char *)piVar34);\n        piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n        local_6c = (size_t *)((int)piVar24 + 1);\n        *(char *)piVar24 = *(char *)(param_2[1] + 0x18);\nLAB_00019858:\n        pcVar25 = DAT_00040af8;\n        if (DAT_00040af8 != (char *)0x0) {\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }\n        strcpy((char *)local_6c,(char *)piVar34);\n        piVar4[1] = (int)piVar24;\n        piVar34 = piVar24;\n      }" (else "else") (compound_statement "{\n        if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))\n        goto LAB_0001982b;\nLAB_00019ab1:\n        sVar22 = strlen(pcVar25);\n        sVar23 = strlen((char *)piVar34);\n        piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);\n        local_6c = (size_t *)((int)piVar24 + 1);\n        *(char *)piVar24 = *(char *)(param_2[1] + 0x18);\nLAB_00019858:\n        pcVar25 = DAT_00040af8;\n        if (DAT_00040af8 != (char *)0x0) {\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }\n        strcpy((char *)local_6c,(char *)piVar34);\n        piVar4[1] = (int)piVar24;\n        piVar34 = piVar24;\n      }" ({ "{") (if_statement "if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))\n        goto LAB_0001982b;" (if "if") (parenthesized_expression "(((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))" (( "(") (binary_expression "((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0')" (parenthesized_expression "((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0'))" (( "(") (binary_expression "(DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')" (parenthesized_expression "(DAT_00040b3c == 0)" (( "(") (binary_expression "DAT_00040b3c == 0" (identifier "DAT_00040b3c") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(char *)(param_2[1] + 0x18) == '\0')" (( "(") (binary_expression "*(char *)(param_2[1] + 0x18) == '\0'" (pointer_expression "*(char *)(param_2[1] + 0x18)" (* "*") (cast_expression "(char *)(param_2[1] + 0x18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[1] + 0x18)" (( "(") (binary_expression "param_2[1] + 0x18" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x18")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_0001982b;" (goto "goto") (statement_identifier "LAB_0001982b") (; ";"))) (labeled_statement "LAB_00019ab1:\n        sVar22 = strlen(pcVar25);" (statement_identifier "LAB_00019ab1") (: ":") (expression_statement "sVar22 = strlen(pcVar25);" (assignment_expression "sVar22 = strlen(pcVar25)" (identifier "sVar22") (= "=") (call_expression "strlen(pcVar25)" (identifier "strlen") (argument_list "(pcVar25)" (( "(") (identifier "pcVar25") () ")")))) (; ";"))) (expression_statement "sVar23 = strlen((char *)piVar34);" (assignment_expression "sVar23 = strlen((char *)piVar34)" (identifier "sVar23") (= "=") (call_expression "strlen((char *)piVar34)" (identifier "strlen") (argument_list "((char *)piVar34)" (( "(") (cast_expression "(char *)piVar34" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar34")) () ")")))) (; ";")) (expression_statement "piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);" (assignment_expression "piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23)" (identifier "piVar24") (= "=") (cast_expression "(int *)xmalloc(sVar22 + 2 + sVar23)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar22 + 2 + sVar23)" (identifier "xmalloc") (argument_list "(sVar22 + 2 + sVar23)" (( "(") (binary_expression "sVar22 + 2 + sVar23" (binary_expression "sVar22 + 2" (identifier "sVar22") (+ "+") (number_literal "2")) (+ "+") (identifier "sVar23")) () ")"))))) (; ";")) (expression_statement "local_6c = (size_t *)((int)piVar24 + 1);" (assignment_expression "local_6c = (size_t *)((int)piVar24 + 1)" (identifier "local_6c") (= "=") (cast_expression "(size_t *)((int)piVar24 + 1)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar24 + 1)" (( "(") (binary_expression "(int)piVar24 + 1" (cast_expression "(int)piVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar24")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*(char *)piVar24 = *(char *)(param_2[1] + 0x18);" (assignment_expression "*(char *)piVar24 = *(char *)(param_2[1] + 0x18)" (pointer_expression "*(char *)piVar24" (* "*") (cast_expression "(char *)piVar24" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar24"))) (= "=") (pointer_expression "*(char *)(param_2[1] + 0x18)" (* "*") (cast_expression "(char *)(param_2[1] + 0x18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[1] + 0x18)" (( "(") (binary_expression "param_2[1] + 0x18" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (labeled_statement "LAB_00019858:\n        pcVar25 = DAT_00040af8;" (statement_identifier "LAB_00019858") (: ":") (expression_statement "pcVar25 = DAT_00040af8;" (assignment_expression "pcVar25 = DAT_00040af8" (identifier "pcVar25") (= "=") (identifier "DAT_00040af8")) (; ";"))) (if_statement "if (DAT_00040af8 != (char *)0x0) {\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }" (if "if") (parenthesized_expression "(DAT_00040af8 != (char *)0x0)" (( "(") (binary_expression "DAT_00040af8 != (char *)0x0" (identifier "DAT_00040af8") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          strcpy((char *)local_6c,DAT_00040af8);\n          sVar22 = strlen(pcVar25);\n          local_6c = (size_t *)((int)local_6c + sVar22);\n        }" ({ "{") (expression_statement "strcpy((char *)local_6c,DAT_00040af8);" (call_expression "strcpy((char *)local_6c,DAT_00040af8)" (identifier "strcpy") (argument_list "((char *)local_6c,DAT_00040af8)" (( "(") (cast_expression "(char *)local_6c" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_6c")) (, ",") (identifier "DAT_00040af8") () ")"))) (; ";")) (expression_statement "sVar22 = strlen(pcVar25);" (assignment_expression "sVar22 = strlen(pcVar25)" (identifier "sVar22") (= "=") (call_expression "strlen(pcVar25)" (identifier "strlen") (argument_list "(pcVar25)" (( "(") (identifier "pcVar25") () ")")))) (; ";")) (expression_statement "local_6c = (size_t *)((int)local_6c + sVar22);" (assignment_expression "local_6c = (size_t *)((int)local_6c + sVar22)" (identifier "local_6c") (= "=") (cast_expression "(size_t *)((int)local_6c + sVar22)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_6c + sVar22)" (( "(") (binary_expression "(int)local_6c + sVar22" (cast_expression "(int)local_6c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_6c")) (+ "+") (identifier "sVar22")) () ")")))) (; ";")) (} "}"))) (expression_statement "strcpy((char *)local_6c,(char *)piVar34);" (call_expression "strcpy((char *)local_6c,(char *)piVar34)" (identifier "strcpy") (argument_list "((char *)local_6c,(char *)piVar34)" (( "(") (cast_expression "(char *)local_6c" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_6c")) (, ",") (cast_expression "(char *)piVar34" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar34")) () ")"))) (; ";")) (expression_statement "piVar4[1] = (int)piVar24;" (assignment_expression "piVar4[1] = (int)piVar24" (subscript_expression "piVar4[1]" (identifier "piVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(int)piVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar24"))) (; ";")) (expression_statement "piVar34 = piVar24;" (assignment_expression "piVar34 = piVar24" (identifier "piVar34") (= "=") (identifier "piVar24")) (; ";")) (} "}")))) (if_statement "if (DAT_00040bb0 == 7) goto LAB_00019928;" (if "if") (parenthesized_expression "(DAT_00040bb0 == 7)" (( "(") (binary_expression "DAT_00040bb0 == 7" (identifier "DAT_00040bb0") (== "==") (number_literal "7")) () ")")) (goto_statement "goto LAB_00019928;" (goto "goto") (statement_identifier "LAB_00019928") (; ";"))) (if_statement "if ((uVar17 & 0x20) == 0) {\n        if (((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)) {\n          if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;\n        }\n        else {\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;\n      }\n      else {\n        iVar18 = FUN_000179c0();\n        if (iVar18 != 0) {\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }\nLAB_0001994f:\n        iVar18 = FUN_00017a30();\n        if (iVar18 == 0) {\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }\n      }" (if "if") (parenthesized_expression "((uVar17 & 0x20) == 0)" (( "(") (binary_expression "(uVar17 & 0x20) == 0" (parenthesized_expression "(uVar17 & 0x20)" (( "(") (binary_expression "uVar17 & 0x20" (identifier "uVar17") (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)) {\n          if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;\n        }\n        else {\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }\nLAB_00019928:\n        if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;\n      }" ({ "{") (if_statement "if (((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)) {\n          if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;\n        }\n        else {\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }" (if "if") (parenthesized_expression "(((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0))" (( "(") (binary_expression "((uVar17 & 0x100) == 0) ||\n           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)" (parenthesized_expression "((uVar17 & 0x100) == 0)" (( "(") (binary_expression "(uVar17 & 0x100) == 0" (parenthesized_expression "(uVar17 & 0x100)" (( "(") (binary_expression "uVar17 & 0x100" (identifier "uVar17") (& "&") (number_literal "0x100")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)" (( "(") (binary_expression "(*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0" (parenthesized_expression "(*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20)" (( "(") (binary_expression "*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20" (pointer_expression "*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10)" (* "*") (cast_expression "(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(**(int **)(piVar4[5] + 0xb4) + 0x10)" (( "(") (binary_expression "**(int **)(piVar4[5] + 0xb4) + 0x10" (pointer_expression "**(int **)(piVar4[5] + 0xb4)" (* "*") (pointer_expression "*(int **)(piVar4[5] + 0xb4)" (* "*") (cast_expression "(int **)(piVar4[5] + 0xb4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar4[5] + 0xb4)" (( "(") (binary_expression "piVar4[5] + 0xb4" (subscript_expression "piVar4[5]" (identifier "piVar4") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "0xb4")) () ")"))))) (+ "+") (number_literal "0x10")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;\n        }" ({ "{") (if_statement "if ((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }\n          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;" (if "if") (parenthesized_expression "((((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49))" (( "(") (binary_expression "(((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||\n             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)" (parenthesized_expression "(((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0))))" (( "(") (binary_expression "((uVar39 >> 5 & 0x42) == 0) &&\n              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))" (parenthesized_expression "((uVar39 >> 5 & 0x42) == 0)" (( "(") (binary_expression "(uVar39 >> 5 & 0x42) == 0" (parenthesized_expression "(uVar39 >> 5 & 0x42)" (( "(") (binary_expression "uVar39 >> 5 & 0x42" (binary_expression "uVar39 >> 5" (identifier "uVar39") (>> ">>") (number_literal "5")) (& "&") (number_literal "0x42")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))" (( "(") (parenthesized_expression "((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0))" (( "(") (binary_expression "(uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)" (binary_expression "(uVar17 & 0x82) != 0" (parenthesized_expression "(uVar17 & 0x82)" (( "(") (binary_expression "uVar17 & 0x82" (identifier "uVar17") (& "&") (number_literal "0x82")) () ")")) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)" (( "(") (binary_expression "(*(byte *)(piVar4[5] + 0x15) & 0x10) != 0" (parenthesized_expression "(*(byte *)(piVar4[5] + 0x15) & 0x10)" (( "(") (binary_expression "*(byte *)(piVar4[5] + 0x15) & 0x10" (pointer_expression "*(byte *)(piVar4[5] + 0x15)" (* "*") (cast_expression "(byte *)(piVar4[5] + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar4[5] + 0x15)" (( "(") (binary_expression "piVar4[5] + 0x15" (subscript_expression "piVar4[5]" (identifier "piVar4") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "0x15")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)" (( "(") (comma_expression "iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49" (assignment_expression "iVar18 = bfd_decode_symclass(piVar4)" (identifier "iVar18") (= "=") (call_expression "bfd_decode_symclass(piVar4)" (identifier "bfd_decode_symclass") (argument_list "(piVar4)" (( "(") (identifier "piVar4") () ")")))) (, ",") (binary_expression "iVar18 == 0x49" (identifier "iVar18") (== "==") (number_literal "0x49"))) () ")"))) () ")")) (compound_statement "{\nLAB_00019b80:\n            iVar18 = FUN_000179c0();\n            if (iVar18 == 0) goto LAB_00019910;\n          }" ({ "{") (labeled_statement "LAB_00019b80:\n            iVar18 = FUN_000179c0();" (statement_identifier "LAB_00019b80") (: ":") (expression_statement "iVar18 = FUN_000179c0();" (assignment_expression "iVar18 = FUN_000179c0()" (identifier "iVar18") (= "=") (call_expression "FUN_000179c0()" (identifier "FUN_000179c0") (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if (iVar18 == 0) goto LAB_00019910;" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00019910;" (goto "goto") (statement_identifier "LAB_00019910") (; ";"))) (} "}")) (else_clause "else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;" (else "else") (if_statement "if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }\n          else if (DAT_00040bb0 != 3) goto LAB_00019b80;" (if "if") (parenthesized_expression "((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0))" (( "(") (binary_expression "(((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&\n                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)" (parenthesized_expression "(((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0))" (( "(") (binary_expression "((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)" (parenthesized_expression "((uVar17 & 0x82) == 0)" (( "(") (binary_expression "(uVar17 & 0x82) == 0" (parenthesized_expression "(uVar17 & 0x82)" (( "(") (binary_expression "uVar17 & 0x82" (identifier "uVar17") (& "&") (number_literal "0x82")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)" (( "(") (binary_expression "puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0" (identifier "puVar5") (!= "!=") (binary_expression "PTR__bfd_std_section_0003ffc8 + 0xc0" (identifier "PTR__bfd_std_section_0003ffc8") (+ "+") (number_literal "0xc0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)" (( "(") (binary_expression "(*(byte *)(piVar4[5] + 0x15) & 0x10) == 0" (parenthesized_expression "(*(byte *)(piVar4[5] + 0x15) & 0x10)" (( "(") (binary_expression "*(byte *)(piVar4[5] + 0x15) & 0x10" (pointer_expression "*(byte *)(piVar4[5] + 0x15)" (* "*") (cast_expression "(byte *)(piVar4[5] + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar4[5] + 0x15)" (( "(") (binary_expression "piVar4[5] + 0x15" (subscript_expression "piVar4[5]" (identifier "piVar4") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "0x15")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }\n            iVar18 = DAT_00040b48;\n            if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }\n          }" ({ "{") (if_statement "if ((uVar17 & 4) == 0) {\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }" (if "if") (parenthesized_expression "((uVar17 & 4) == 0)" (( "(") (binary_expression "(uVar17 & 4) == 0" (parenthesized_expression "(uVar17 & 4)" (( "(") (binary_expression "uVar17 & 4" (identifier "uVar17") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }\n              goto LAB_00019b80;\n            }" ({ "{") (if_statement "if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)) {\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }" (if "if") (parenthesized_expression "(((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0))" (( "(") (binary_expression "((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||\n                 (*(int *)(iVar18 + 0x2c) == 0)" (parenthesized_expression "((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0))" (( "(") (binary_expression "(*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||\n                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)" (parenthesized_expression "(*(int *)(*(int *)((int)param_1 + 4) + 4) != 2)" (( "(") (binary_expression "*(int *)(*(int *)((int)param_1 + 4) + 4) != 2" (pointer_expression "*(int *)(*(int *)((int)param_1 + 4) + 4)" (* "*") (cast_expression "(int *)(*(int *)((int)param_1 + 4) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)((int)param_1 + 4) + 4)" (( "(") (binary_expression "*(int *)((int)param_1 + 4) + 4" (pointer_expression "*(int *)((int)param_1 + 4)" (* "*") (cast_expression "(int *)((int)param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 4)" (( "(") (binary_expression "(int)param_1 + 4" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "(iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)" (( "(") (comma_expression "iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0" (assignment_expression "iVar18 = *(int *)(piVar4[5] + 0xa4)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(piVar4[5] + 0xa4)" (* "*") (cast_expression "(int *)(piVar4[5] + 0xa4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar4[5] + 0xa4)" (( "(") (binary_expression "piVar4[5] + 0xa4" (subscript_expression "piVar4[5]" (identifier "piVar4") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "0xa4")) () ")"))))) (, ",") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(*(int *)(iVar18 + 0x2c) == 0)" (( "(") (binary_expression "*(int *)(iVar18 + 0x2c) == 0" (pointer_expression "*(int *)(iVar18 + 0x2c)" (* "*") (cast_expression "(int *)(iVar18 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x2c)" (( "(") (binary_expression "iVar18 + 0x2c" (identifier "iVar18") (+ "+") (number_literal "0x2c")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;\n                if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }\n              }" ({ "{") (if_statement "if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;" (if "if") (parenthesized_expression "((DAT_00040bb0 == 3) || (DAT_00040bac == 2))" (( "(") (binary_expression "(DAT_00040bb0 == 3) || (DAT_00040bac == 2)" (parenthesized_expression "(DAT_00040bb0 == 3)" (( "(") (binary_expression "DAT_00040bb0 == 3" (identifier "DAT_00040bb0") (== "==") (number_literal "3")) () ")")) (|| "||") (parenthesized_expression "(DAT_00040bac == 2)" (( "(") (binary_expression "DAT_00040bac == 2" (identifier "DAT_00040bac") (== "==") (number_literal "2")) () ")"))) () ")")) (goto_statement "goto LAB_00019928;" (goto "goto") (statement_identifier "LAB_00019928") (; ";"))) (if_statement "if (DAT_00040bac == 1) {\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }" (if "if") (parenthesized_expression "(DAT_00040bac == 1)" (( "(") (binary_expression "DAT_00040bac == 1" (identifier "DAT_00040bac") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);\n                  goto joined_r0x0001a753;\n                }" ({ "{") (expression_statement "iVar18 = bfd_is_local_label(param_1,piVar4,0,0);" (assignment_expression "iVar18 = bfd_is_local_label(param_1,piVar4,0,0)" (identifier "iVar18") (= "=") (call_expression "bfd_is_local_label(param_1,piVar4,0,0)" (identifier "bfd_is_local_label") (argument_list "(param_1,piVar4,0,0)" (( "(") (identifier "param_1") (, ",") (identifier "piVar4") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (goto_statement "goto joined_r0x0001a753;" (goto "goto") (statement_identifier "joined_r0x0001a753") (; ";")) (} "}"))) (} "}"))) (goto_statement "goto LAB_00019b80;" (goto "goto") (statement_identifier "LAB_00019b80") (; ";")) (} "}"))) (expression_statement "iVar18 = DAT_00040b48;" (assignment_expression "iVar18 = DAT_00040b48" (identifier "iVar18") (= "=") (identifier "DAT_00040b48")) (; ";")) (if_statement "if (1 < DAT_00040bb0 - 2U) {\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }" (if "if") (parenthesized_expression "(1 < DAT_00040bb0 - 2U)" (( "(") (binary_expression "1 < DAT_00040bb0 - 2U" (number_literal "1") (< "<") (binary_expression "DAT_00040bb0 - 2U" (identifier "DAT_00040bb0") (- "-") (number_literal "2U"))) () ")")) (compound_statement "{\njoined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;\n            }" ({ "{") (labeled_statement "joined_r0x0001a753:\n              if (iVar18 == 0) goto LAB_00019b80;" (statement_identifier "joined_r0x0001a753") (: ":") (if_statement "if (iVar18 == 0) goto LAB_00019b80;" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00019b80;" (goto "goto") (statement_identifier "LAB_00019b80") (; ";")))) (} "}"))) (} "}")) (else_clause "else if (DAT_00040bb0 != 3) goto LAB_00019b80;" (else "else") (if_statement "if (DAT_00040bb0 != 3) goto LAB_00019b80;" (if "if") (parenthesized_expression "(DAT_00040bb0 != 3)" (( "(") (binary_expression "DAT_00040bb0 != 3" (identifier "DAT_00040bb0") (!= "!=") (number_literal "3")) () ")")) (goto_statement "goto LAB_00019b80;" (goto "goto") (statement_identifier "LAB_00019b80") (; ";"))))))) (} "}")) (else_clause "else {\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }" (else "else") (compound_statement "{\n          iVar18 = FUN_000179c0();\n          if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }\nLAB_00019910:\n          iVar18 = FUN_000179c0();\n          if (iVar18 == 0) goto LAB_0001994f;\n        }" ({ "{") (expression_statement "iVar18 = FUN_000179c0();" (assignment_expression "iVar18 = FUN_000179c0()" (identifier "iVar18") (= "=") (call_expression "FUN_000179c0()" (identifier "FUN_000179c0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar18 != 0) {\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }" (if "if") (parenthesized_expression "(iVar18 != 0)" (( "(") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);\n            FUN_0002c910(uVar13,piVar34);\n            DAT_00040bc8 = 1;\n          }" ({ "{") (expression_statement "uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18);" (assignment_expression "uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18)" (identifier "dcgettext") (argument_list "(0,"not stripping symbol `%s\' because it is named in a relocation",5,\n                               iVar18)" (( "(") (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") (, ",") (identifier "iVar18") () ")")))) (; ";")) (expression_statement "FUN_0002c910(uVar13,piVar34);" (call_expression "FUN_0002c910(uVar13,piVar34)" (identifier "FUN_0002c910") (argument_list "(uVar13,piVar34)" (( "(") (identifier "uVar13") (, ",") (identifier "piVar34") () ")"))) (; ";")) (expression_statement "DAT_00040bc8 = 1;" (assignment_expression "DAT_00040bc8 = 1" (identifier "DAT_00040bc8") (= "=") (number_literal "1")) (; ";")) (} "}"))) (labeled_statement "LAB_00019910:\n          iVar18 = FUN_000179c0();" (statement_identifier "LAB_00019910") (: ":") (expression_statement "iVar18 = FUN_000179c0();" (assignment_expression "iVar18 = FUN_000179c0()" (identifier "iVar18") (= "=") (call_expression "FUN_000179c0()" (identifier "FUN_000179c0") (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if (iVar18 == 0) goto LAB_0001994f;" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001994f;" (goto "goto") (statement_identifier "LAB_0001994f") (; ";"))) (} "}")))) (labeled_statement "LAB_00019928:\n        if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;" (statement_identifier "LAB_00019928") (: ":") (if_statement "if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;" (if "if") (parenthesized_expression "(((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0))" (( "(") (binary_expression "((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||\n           (iVar18 = FUN_000179c0(), iVar18 != 0)" (parenthesized_expression "((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0))" (( "(") (binary_expression "(DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)" (parenthesized_expression "(DAT_00040afc != 0)" (( "(") (binary_expression "DAT_00040afc != 0" (identifier "DAT_00040afc") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((uVar17 & 0x4000) != 0)" (( "(") (binary_expression "(uVar17 & 0x4000) != 0" (parenthesized_expression "(uVar17 & 0x4000)" (( "(") (binary_expression "uVar17 & 0x4000" (identifier "uVar17") (& "&") (number_literal "0x4000")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar18 = FUN_000179c0(), iVar18 != 0)" (( "(") (comma_expression "iVar18 = FUN_000179c0(), iVar18 != 0" (assignment_expression "iVar18 = FUN_000179c0()" (identifier "iVar18") (= "=") (call_expression "FUN_000179c0()" (identifier "FUN_000179c0") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0001994f;" (goto "goto") (statement_identifier "LAB_0001994f") (; ";")))) (} "}")) (else_clause "else {\n        iVar18 = FUN_000179c0();\n        if (iVar18 != 0) {\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }\nLAB_0001994f:\n        iVar18 = FUN_00017a30();\n        if (iVar18 == 0) {\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }\n      }" (else "else") (compound_statement "{\n        iVar18 = FUN_000179c0();\n        if (iVar18 != 0) {\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }\nLAB_0001994f:\n        iVar18 = FUN_00017a30();\n        if (iVar18 == 0) {\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }\n      }" ({ "{") (expression_statement "iVar18 = FUN_000179c0();" (assignment_expression "iVar18 = FUN_000179c0()" (identifier "iVar18") (= "=") (call_expression "FUN_000179c0()" (identifier "FUN_000179c0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar18 != 0) {\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }" (if "if") (parenthesized_expression "(iVar18 != 0)" (( "(") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);\n          FUN_0002c910(uVar13,piVar34);\n          DAT_00040bc8 = 1;\n        }" ({ "{") (expression_statement "uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);" (assignment_expression "uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5)" (identifier "dcgettext") (argument_list "(0,"not stripping symbol `%s\' because it is named in a relocation",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_0002c910(uVar13,piVar34);" (call_expression "FUN_0002c910(uVar13,piVar34)" (identifier "FUN_0002c910") (argument_list "(uVar13,piVar34)" (( "(") (identifier "uVar13") (, ",") (identifier "piVar34") () ")"))) (; ";")) (expression_statement "DAT_00040bc8 = 1;" (assignment_expression "DAT_00040bc8 = 1" (identifier "DAT_00040bc8") (= "=") (number_literal "1")) (; ";")) (} "}"))) (labeled_statement "LAB_0001994f:\n        iVar18 = FUN_00017a30();" (statement_identifier "LAB_0001994f") (: ":") (expression_statement "iVar18 = FUN_00017a30();" (assignment_expression "iVar18 = FUN_00017a30()" (identifier "iVar18") (= "=") (call_expression "FUN_00017a30()" (identifier "FUN_00017a30") (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if (iVar18 == 0) {\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }\n          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }\n          piVar19[local_8c] = (int)piVar4;\n          local_8c = local_8c + 1;\n        }" ({ "{") (if_statement "if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             ) {\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }" (if "if") (parenthesized_expression "(((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))\n             )" (( "(") (binary_expression "((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))" (parenthesized_expression "((uVar17 & 2) != 0)" (( "(") (binary_expression "(uVar17 & 2) != 0" (parenthesized_expression "(uVar17 & 2)" (( "(") (binary_expression "uVar17 & 2" (identifier "uVar17") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))" (( "(") (parenthesized_expression "(DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0))" (( "(") (binary_expression "DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)" (binary_expression "DAT_00040b00 != 0" (identifier "DAT_00040b00") (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(iVar18 = FUN_000179c0(), iVar18 != 0)" (( "(") (comma_expression "iVar18 = FUN_000179c0(), iVar18 != 0" (assignment_expression "iVar18 = FUN_000179c0()" (identifier "iVar18") (= "=") (call_expression "FUN_000179c0()" (identifier "FUN_000179c0") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;\n          }" ({ "{") (expression_statement "piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;" (assignment_expression "piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80" (subscript_expression "piVar4[4]" (identifier "piVar4") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "piVar4[4] & 0xfffffffdU | 0x80" (binary_expression "piVar4[4] & 0xfffffffdU" (subscript_expression "piVar4[4]" (identifier "piVar4") ([ "[") (number_literal "4") (] "]")) (& "&") (number_literal "0xfffffffdU")) (| "|") (number_literal "0x80"))) (; ";")) (} "}"))) (if_statement "if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }" (if "if") (parenthesized_expression "(puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)" (( "(") (binary_expression "puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0" (identifier "puVar5") (!= "!=") (binary_expression "PTR__bfd_std_section_0003ffc8 + 0xc0" (identifier "PTR__bfd_std_section_0003ffc8") (+ "+") (number_literal "0xc0"))) () ")")) (compound_statement "{\n            if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }\n            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }\n          }" ({ "{") (if_statement "if (((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))) {\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }" (if "if") (parenthesized_expression "(((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 ))))))" (( "(") (binary_expression "((uVar17 & 0x82) != 0) &&\n               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))" (parenthesized_expression "((uVar17 & 0x82) != 0)" (( "(") (binary_expression "(uVar17 & 0x82) != 0" (parenthesized_expression "(uVar17 & 0x82)" (( "(") (binary_expression "uVar17 & 0x82" (identifier "uVar17") (& "&") (number_literal "0x82")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))))" (( "(") (parenthesized_expression "((iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 ))))" (( "(") (binary_expression "(iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||\n                ((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))" (parenthesized_expression "(iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0))))" (( "(") (comma_expression "iVar18 = FUN_000179c0(), iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))" (assignment_expression "iVar18 = FUN_000179c0()" (identifier "iVar18") (= "=") (call_expression "FUN_000179c0()" (identifier "FUN_000179c0") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar18 != 0 ||\n                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))" (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)))" (( "(") (parenthesized_expression "(iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0))" (( "(") (comma_expression "iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)" (assignment_expression "iVar18 = htab_elements(DAT_00040b18)" (identifier "iVar18") (= "=") (call_expression "htab_elements(DAT_00040b18)" (identifier "htab_elements") (argument_list "(DAT_00040b18)" (( "(") (identifier "DAT_00040b18") () ")")))) (, ",") (binary_expression "iVar18 != 0 &&\n                  (iVar18 = FUN_000179c0(), iVar18 == 0)" (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(iVar18 = FUN_000179c0(), iVar18 == 0)" (( "(") (comma_expression "iVar18 = FUN_000179c0(), iVar18 == 0" (assignment_expression "iVar18 = FUN_000179c0()" (identifier "iVar18") (= "=") (call_expression "FUN_000179c0()" (identifier "FUN_000179c0") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0"))) () ")")))) () ")")) () ")")))) () ")")) (|| "||") (parenthesized_expression "((DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )))" (( "(") (parenthesized_expression "(DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 ))" (( "(") (binary_expression "DAT_00040b30 != 0 &&\n                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )" (binary_expression "DAT_00040b30 != 0" (identifier "DAT_00040b30") (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))\n                 )" (( "(") (parenthesized_expression "(((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))" (( "(") (binary_expression "((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2)" (parenthesized_expression "((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0))" (( "(") (binary_expression "(iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&\n                   (*(int *)(iVar18 + 0xa0) != 0)" (parenthesized_expression "(iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5))" (( "(") (comma_expression "iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)" (assignment_expression "iVar18 = *piVar4" (identifier "iVar18") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (, ",") (binary_expression "iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)" (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(*(int *)(*(int *)(iVar18 + 4) + 4) == 5)" (( "(") (binary_expression "*(int *)(*(int *)(iVar18 + 4) + 4) == 5" (pointer_expression "*(int *)(*(int *)(iVar18 + 4) + 4)" (* "*") (cast_expression "(int *)(*(int *)(iVar18 + 4) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar18 + 4) + 4)" (( "(") (binary_expression "*(int *)(iVar18 + 4) + 4" (pointer_expression "*(int *)(iVar18 + 4)" (* "*") (cast_expression "(int *)(iVar18 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 4)" (( "(") (binary_expression "iVar18 + 4" (identifier "iVar18") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "5")) () ")")))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar18 + 0xa0) != 0)" (( "(") (binary_expression "*(int *)(iVar18 + 0xa0) != 0" (pointer_expression "*(int *)(iVar18 + 0xa0)" (* "*") (cast_expression "(int *)(iVar18 + 0xa0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0xa0)" (( "(") (binary_expression "iVar18 + 0xa0" (identifier "iVar18") (+ "+") (number_literal "0xa0")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2)" (( "(") (binary_expression "(*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2" (binary_expression "(*(byte *)((int)piVar4 + 0x35) & 3) - 1" (parenthesized_expression "(*(byte *)((int)piVar4 + 0x35) & 3)" (( "(") (binary_expression "*(byte *)((int)piVar4 + 0x35) & 3" (pointer_expression "*(byte *)((int)piVar4 + 0x35)" (* "*") (cast_expression "(byte *)((int)piVar4 + 0x35)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar4 + 0x35)" (( "(") (binary_expression "(int)piVar4 + 0x35" (cast_expression "(int)piVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar4")) (+ "+") (number_literal "0x35")) () ")")))) (& "&") (number_literal "3")) () ")")) (- "-") (number_literal "1")) (< "<") (number_literal "2")) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;\n            }" ({ "{") (expression_statement "piVar4[4] = piVar4[4] & 0xffffff7dU | 1;" (assignment_expression "piVar4[4] = piVar4[4] & 0xffffff7dU | 1" (subscript_expression "piVar4[4]" (identifier "piVar4") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "piVar4[4] & 0xffffff7dU | 1" (binary_expression "piVar4[4] & 0xffffff7dU" (subscript_expression "piVar4[4]" (identifier "piVar4") ([ "[") (number_literal "4") (] "]")) (& "&") (number_literal "0xffffff7dU")) (| "|") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }" (if "if") (parenthesized_expression "(((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0))" (( "(") (binary_expression "((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)" (parenthesized_expression "((uVar17 & 1) != 0)" (( "(") (binary_expression "(uVar17 & 1) != 0" (parenthesized_expression "(uVar17 & 1)" (( "(") (binary_expression "uVar17 & 1" (identifier "uVar17") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar18 = FUN_000179c0(), iVar18 != 0)" (( "(") (comma_expression "iVar18 = FUN_000179c0(), iVar18 != 0" (assignment_expression "iVar18 = FUN_000179c0()" (identifier "iVar18") (= "=") (call_expression "FUN_000179c0()" (identifier "FUN_000179c0") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;\n            }" ({ "{") (expression_statement "piVar4[4] = piVar4[4] & 0xfffffffeU | 2;" (assignment_expression "piVar4[4] = piVar4[4] & 0xfffffffeU | 2" (subscript_expression "piVar4[4]" (identifier "piVar4") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "piVar4[4] & 0xfffffffeU | 2" (binary_expression "piVar4[4] & 0xfffffffeU" (subscript_expression "piVar4[4]" (identifier "piVar4") ([ "[") (number_literal "4") (] "]")) (& "&") (number_literal "0xfffffffeU")) (| "|") (number_literal "2"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "piVar19[local_8c] = (int)piVar4;" (assignment_expression "piVar19[local_8c] = (int)piVar4" (subscript_expression "piVar19[local_8c]" (identifier "piVar19") ([ "[") (identifier "local_8c") (] "]")) (= "=") (cast_expression "(int)piVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar4"))) (; ";")) (expression_statement "local_8c = local_8c + 1;" (assignment_expression "local_8c = local_8c + 1" (identifier "local_8c") (= "=") (binary_expression "local_8c + 1" (identifier "local_8c") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "local_84 = local_84 + 1;" (assignment_expression "local_84 = local_84 + 1" (identifier "local_84") (= "=") (binary_expression "local_84 + 1" (identifier "local_84") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar1 != local_84)" (( "(") (binary_expression "piVar1 != local_84" (identifier "piVar1") (!= "!=") (identifier "local_84")) () ")")) (; ";")) (} "}"))) (expression_statement "local_6c = (size_t *)DAT_00040b08;" (assignment_expression "local_6c = (size_t *)DAT_00040b08" (identifier "local_6c") (= "=") (cast_expression "(size_t *)DAT_00040b08" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "DAT_00040b08"))) (; ";")) (if_statement "if ((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) {\n    iVar18 = 0;\n    do {\n      pcVar25 = (char *)local_6c[5];\n      if (pcVar25 == (char *)0x0) {\n        iVar21 = FUN_00017920();\n        piVar19[local_8c] = iVar21;\n        local_8c = local_8c + 1;\n      }\n      else if (*pcVar25 != '\0') {\n        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    \n        FUN_0002c8e0(uVar13,pcVar25);\n      }\n      iVar18 = iVar18 + 1;\n      local_6c = (size_t *)*local_6c;\n    } while (iVar18 < DAT_00040b04);\n  }" (if "if") (parenthesized_expression "((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04))" (( "(") (binary_expression "(DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)" (parenthesized_expression "(DAT_00040b08 != (int *)0x0)" (( "(") (binary_expression "DAT_00040b08 != (int *)0x0" (identifier "DAT_00040b08") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(0 < DAT_00040b04)" (( "(") (binary_expression "0 < DAT_00040b04" (number_literal "0") (< "<") (identifier "DAT_00040b04")) () ")"))) () ")")) (compound_statement "{\n    iVar18 = 0;\n    do {\n      pcVar25 = (char *)local_6c[5];\n      if (pcVar25 == (char *)0x0) {\n        iVar21 = FUN_00017920();\n        piVar19[local_8c] = iVar21;\n        local_8c = local_8c + 1;\n      }\n      else if (*pcVar25 != '\0') {\n        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    \n        FUN_0002c8e0(uVar13,pcVar25);\n      }\n      iVar18 = iVar18 + 1;\n      local_6c = (size_t *)*local_6c;\n    } while (iVar18 < DAT_00040b04);\n  }" ({ "{") (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      pcVar25 = (char *)local_6c[5];\n      if (pcVar25 == (char *)0x0) {\n        iVar21 = FUN_00017920();\n        piVar19[local_8c] = iVar21;\n        local_8c = local_8c + 1;\n      }\n      else if (*pcVar25 != '\0') {\n        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    \n        FUN_0002c8e0(uVar13,pcVar25);\n      }\n      iVar18 = iVar18 + 1;\n      local_6c = (size_t *)*local_6c;\n    } while (iVar18 < DAT_00040b04);" (do "do") (compound_statement "{\n      pcVar25 = (char *)local_6c[5];\n      if (pcVar25 == (char *)0x0) {\n        iVar21 = FUN_00017920();\n        piVar19[local_8c] = iVar21;\n        local_8c = local_8c + 1;\n      }\n      else if (*pcVar25 != '\0') {\n        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    \n        FUN_0002c8e0(uVar13,pcVar25);\n      }\n      iVar18 = iVar18 + 1;\n      local_6c = (size_t *)*local_6c;\n    }" ({ "{") (expression_statement "pcVar25 = (char *)local_6c[5];" (assignment_expression "pcVar25 = (char *)local_6c[5]" (identifier "pcVar25") (= "=") (cast_expression "(char *)local_6c[5]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_6c[5]" (identifier "local_6c") ([ "[") (number_literal "5") (] "]")))) (; ";")) (if_statement "if (pcVar25 == (char *)0x0) {\n        iVar21 = FUN_00017920();\n        piVar19[local_8c] = iVar21;\n        local_8c = local_8c + 1;\n      }\n      else if (*pcVar25 != '\0') {\n        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    \n        FUN_0002c8e0(uVar13,pcVar25);\n      }" (if "if") (parenthesized_expression "(pcVar25 == (char *)0x0)" (( "(") (binary_expression "pcVar25 == (char *)0x0" (identifier "pcVar25") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        iVar21 = FUN_00017920();\n        piVar19[local_8c] = iVar21;\n        local_8c = local_8c + 1;\n      }" ({ "{") (expression_statement "iVar21 = FUN_00017920();" (assignment_expression "iVar21 = FUN_00017920()" (identifier "iVar21") (= "=") (call_expression "FUN_00017920()" (identifier "FUN_00017920") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar19[local_8c] = iVar21;" (assignment_expression "piVar19[local_8c] = iVar21" (subscript_expression "piVar19[local_8c]" (identifier "piVar19") ([ "[") (identifier "local_8c") (] "]")) (= "=") (identifier "iVar21")) (; ";")) (expression_statement "local_8c = local_8c + 1;" (assignment_expression "local_8c = local_8c + 1" (identifier "local_8c") (= "=") (binary_expression "local_8c + 1" (identifier "local_8c") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else if (*pcVar25 != '\0') {\n        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    \n        FUN_0002c8e0(uVar13,pcVar25);\n      }" (else "else") (if_statement "if (*pcVar25 != '\0') {\n        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    \n        FUN_0002c8e0(uVar13,pcVar25);\n      }" (if "if") (parenthesized_expression "(*pcVar25 != '\0')" (( "(") (binary_expression "*pcVar25 != '\0'" (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);\n                    \n        FUN_0002c8e0(uVar13,pcVar25);\n      }" ({ "{") (expression_statement "uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);" (assignment_expression "uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,"\'before=%s\' not found",5,local_8c)" (identifier "dcgettext") (argument_list "(0,"\'before=%s\' not found",5,local_8c)" (( "(") (number_literal "0") (, ",") (string_literal ""\'before=%s\' not found"" (" """) (escape_sequence "\'") (string_content "before=%s") (escape_sequence "\'") (string_content " not found") (" """)) (, ",") (number_literal "5") (, ",") (identifier "local_8c") () ")")))) (; ";")) (expression_statement "FUN_0002c8e0(uVar13,pcVar25);" (call_expression "FUN_0002c8e0(uVar13,pcVar25)" (identifier "FUN_0002c8e0") (argument_list "(uVar13,pcVar25)" (( "(") (identifier "uVar13") (, ",") (identifier "pcVar25") () ")"))) (; ";")) (} "}"))))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_6c = (size_t *)*local_6c;" (assignment_expression "local_6c = (size_t *)*local_6c" (identifier "local_6c") (= "=") (cast_expression "(size_t *)*local_6c" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_6c" (* "*") (identifier "local_6c")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar18 < DAT_00040b04)" (( "(") (binary_expression "iVar18 < DAT_00040b04" (identifier "iVar18") (< "<") (identifier "DAT_00040b04")) () ")")) (; ";")) (} "}"))) (expression_statement "piVar19[local_8c] = 0;" (assignment_expression "piVar19[local_8c] = 0" (subscript_expression "piVar19[local_8c]" (identifier "piVar19") ([ "[") (identifier "local_8c") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if ((DAT_00040b48 != 0) && (iVar12 != 0)) {\n    iVar18 = ((undefined4 *)param_2[1])[1];\n    if ((iVar18 == 2) || (iVar18 == 5)) {\n      iVar12 = FUN_0002c240(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34);\n      if (iVar12 != 0) {\n        iVar12 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n        iVar18 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n        if ((((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)) {\n          pcVar25 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }\n        uVar13 = dcgettext(0,pcVar25,5,iVar12);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n      }\n    }\n    else {\n      uVar13 = *(undefined4 *)param_2[1];\n      uVar14 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n    }\n    DAT_00040bc8 = 1;\n    return 0;\n  }" (if "if") (parenthesized_expression "((DAT_00040b48 != 0) && (iVar12 != 0))" (( "(") (binary_expression "(DAT_00040b48 != 0) && (iVar12 != 0)" (parenthesized_expression "(DAT_00040b48 != 0)" (( "(") (binary_expression "DAT_00040b48 != 0" (identifier "DAT_00040b48") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar12 != 0)" (( "(") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    iVar18 = ((undefined4 *)param_2[1])[1];\n    if ((iVar18 == 2) || (iVar18 == 5)) {\n      iVar12 = FUN_0002c240(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34);\n      if (iVar12 != 0) {\n        iVar12 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n        iVar18 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n        if ((((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)) {\n          pcVar25 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }\n        uVar13 = dcgettext(0,pcVar25,5,iVar12);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n      }\n    }\n    else {\n      uVar13 = *(undefined4 *)param_2[1];\n      uVar14 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n    }\n    DAT_00040bc8 = 1;\n    return 0;\n  }" ({ "{") (expression_statement "iVar18 = ((undefined4 *)param_2[1])[1];" (assignment_expression "iVar18 = ((undefined4 *)param_2[1])[1]" (identifier "iVar18") (= "=") (subscript_expression "((undefined4 *)param_2[1])[1]" (parenthesized_expression "((undefined4 *)param_2[1])" (( "(") (cast_expression "(undefined4 *)param_2[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if ((iVar18 == 2) || (iVar18 == 5)) {\n      iVar12 = FUN_0002c240(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34);\n      if (iVar12 != 0) {\n        iVar12 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n        iVar18 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n        if ((((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)) {\n          pcVar25 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }\n        uVar13 = dcgettext(0,pcVar25,5,iVar12);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n      }\n    }\n    else {\n      uVar13 = *(undefined4 *)param_2[1];\n      uVar14 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n    }" (if "if") (parenthesized_expression "((iVar18 == 2) || (iVar18 == 5))" (( "(") (binary_expression "(iVar18 == 2) || (iVar18 == 5)" (parenthesized_expression "(iVar18 == 2)" (( "(") (binary_expression "iVar18 == 2" (identifier "iVar18") (== "==") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "(iVar18 == 5)" (( "(") (binary_expression "iVar18 == 5" (identifier "iVar18") (== "==") (number_literal "5")) () ")"))) () ")")) (compound_statement "{\n      iVar12 = FUN_0002c240(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34);\n      if (iVar12 != 0) {\n        iVar12 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n        iVar18 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n        if ((((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)) {\n          pcVar25 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }\n        uVar13 = dcgettext(0,pcVar25,5,iVar12);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n      }\n    }" ({ "{") (expression_statement "iVar12 = FUN_0002c240(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34);" (assignment_expression "iVar12 = FUN_0002c240(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34)" (identifier "iVar12") (= "=") (call_expression "FUN_0002c240(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34)" (identifier "FUN_0002c240") (argument_list "(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34)" (( "(") (identifier "param_2") (, ",") (identifier "iVar12") (, ",") (pointer_expression "&local_54" (& "&") (identifier "local_54")) (, ",") (pointer_expression "&local_4c" (& "&") (identifier "local_4c")) (, ",") (pointer_expression "&local_50" (& "&") (identifier "local_50")) (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")")))) (; ";")) (if_statement "if (iVar12 != 0) {\n        iVar12 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n        iVar18 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n        if ((((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)) {\n          pcVar25 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }\n        uVar13 = dcgettext(0,pcVar25,5,iVar12);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n      }" (if "if") (parenthesized_expression "(iVar12 != 0)" (( "(") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar12 = bfd_make_section_with_flags(param_2,".stab",0x2108);\n        iVar18 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);\n        if ((((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)) {\n          pcVar25 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }\n        uVar13 = dcgettext(0,pcVar25,5,iVar12);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n      }" ({ "{") (expression_statement "iVar12 = bfd_make_section_with_flags(param_2,".stab",0x2108);" (assignment_expression "iVar12 = bfd_make_section_with_flags(param_2,".stab",0x2108)" (identifier "iVar12") (= "=") (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 "iVar18 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);" (assignment_expression "iVar18 = bfd_make_section_with_flags(param_2,".stabstr",0x2108)" (identifier "iVar18") (= "=") (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 ((((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)) {\n          pcVar25 = "can\'t create debugging section";\n        }\n        else {\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }" (if "if") (parenthesized_expression "((((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0))" (( "(") (binary_expression "(((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||\n           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)" (parenthesized_expression "(((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0))" (( "(") (binary_expression "((iVar12 == 0) || (iVar18 == 0)) ||\n            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)" (parenthesized_expression "((iVar12 == 0) || (iVar18 == 0))" (( "(") (binary_expression "(iVar12 == 0) || (iVar18 == 0)" (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)" (( "(") (comma_expression "iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0" (assignment_expression "iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48)" (identifier "iVar21") (= "=") (call_expression "bfd_set_section_size(param_2,iVar12,local_4c,local_48)" (identifier "bfd_set_section_size") (argument_list "(param_2,iVar12,local_4c,local_48)" (( "(") (identifier "param_2") (, ",") (identifier "iVar12") (, ",") (identifier "local_4c") (, ",") (identifier "local_48") () ")")))) (, ",") (binary_expression "iVar21 == 0" (identifier "iVar21") (== "==") (number_literal "0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)" (( "(") (comma_expression "iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0" (assignment_expression "iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30)" (identifier "iVar21") (= "=") (call_expression "bfd_set_section_size(param_2,iVar18,local_34,local_30)" (identifier "bfd_set_section_size") (argument_list "(param_2,iVar18,local_34,local_30)" (( "(") (identifier "param_2") (, ",") (identifier "iVar18") (, ",") (identifier "local_34") (, ",") (identifier "local_30") () ")")))) (, ",") (binary_expression "iVar21 == 0" (identifier "iVar21") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          pcVar25 = "can\'t create debugging section";\n        }" ({ "{") (expression_statement "pcVar25 = "can\'t create debugging section";" (assignment_expression "pcVar25 = "can\'t create debugging section"" (identifier "pcVar25") (= "=") (string_literal ""can\'t create debugging section"" (" """) (string_content "can") (escape_sequence "\'") (string_content "t create debugging section") (" """))) (; ";")) (} "}")) (else_clause "else {\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }" (else "else") (compound_statement "{\n          *(undefined4 *)(iVar12 + 0x58) = 2;\n          *(undefined4 *)(iVar18 + 0x58) = 0;\n          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);\n          if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;\n          pcVar25 = "can\'t set debugging section contents";\n          iVar12 = iVar18;\n        }" ({ "{") (expression_statement "*(undefined4 *)(iVar12 + 0x58) = 2;" (assignment_expression "*(undefined4 *)(iVar12 + 0x58) = 2" (pointer_expression "*(undefined4 *)(iVar12 + 0x58)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x58)" (( "(") (binary_expression "iVar12 + 0x58" (identifier "iVar12") (+ "+") (number_literal "0x58")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "*(undefined4 *)(iVar18 + 0x58) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x58) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x58)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x58)" (( "(") (binary_expression "iVar18 + 0x58" (identifier "iVar18") (+ "+") (number_literal "0x58")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);" (assignment_expression "iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21)" (identifier "iVar12") (= "=") (call_expression "bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21)" (identifier "bfd_set_section_contents") (argument_list "(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21)" (( "(") (identifier "param_2") (, ",") (identifier "iVar12") (, ",") (identifier "local_54") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "local_4c") (, ",") (identifier "local_48") (, ",") (identifier "iVar21") () ")")))) (; ";")) (if_statement "if ((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)) goto LAB_00019e4d;" (if "if") (parenthesized_expression "((iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0))" (( "(") (binary_expression "(iVar12 != 0) &&\n             (iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)" (parenthesized_expression "(iVar12 != 0)" (( "(") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0)" (( "(") (comma_expression "iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),\n             iVar12 != 0" (assignment_expression "iVar12 = bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX)" (identifier "iVar12") (= "=") (call_expression "bfd_set_section_contents\n                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX)" (identifier "bfd_set_section_contents") (argument_list "(param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX)" (( "(") (identifier "param_2") (, ",") (identifier "iVar18") (, ",") (identifier "local_50") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "local_34") (, ",") (identifier "local_30") (, ",") (identifier "extraout_ECX") () ")")))) (, ",") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_00019e4d;" (goto "goto") (statement_identifier "LAB_00019e4d") (; ";"))) (expression_statement "pcVar25 = "can\'t set debugging section contents";" (assignment_expression "pcVar25 = "can\'t set debugging section contents"" (identifier "pcVar25") (= "=") (string_literal ""can\'t set debugging section contents"" (" """) (string_content "can") (escape_sequence "\'") (string_content "t set debugging section contents") (" """))) (; ";")) (expression_statement "iVar12 = iVar18;" (assignment_expression "iVar12 = iVar18" (identifier "iVar12") (= "=") (identifier "iVar18")) (; ";")) (} "}")))) (expression_statement "uVar13 = dcgettext(0,pcVar25,5,iVar12);" (assignment_expression "uVar13 = dcgettext(0,pcVar25,5,iVar12)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,pcVar25,5,iVar12)" (identifier "dcgettext") (argument_list "(0,pcVar25,5,iVar12)" (( "(") (number_literal "0") (, ",") (identifier "pcVar25") (, ",") (number_literal "5") (, ",") (identifier "iVar12") () ")")))) (; ";")) (expression_statement "FUN_0002d3a0(0,param_2,0,uVar13);" (call_expression "FUN_0002d3a0(0,param_2,0,uVar13)" (identifier "FUN_0002d3a0") (argument_list "(0,param_2,0,uVar13)" (( "(") (number_literal "0") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "uVar13") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      uVar13 = *(undefined4 *)param_2[1];\n      uVar14 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n    }" (else "else") (compound_statement "{\n      uVar13 = *(undefined4 *)param_2[1];\n      uVar14 = dcgettext(0,"don\'t know how to write debugging information for %s",5);\n      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);\n    }" ({ "{") (expression_statement "uVar13 = *(undefined4 *)param_2[1];" (assignment_expression "uVar13 = *(undefined4 *)param_2[1]" (identifier "uVar13") (= "=") (pointer_expression "*(undefined4 *)param_2[1]" (* "*") (cast_expression "(undefined4 *)param_2[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (expression_statement "uVar14 = dcgettext(0,"don\'t know how to write debugging information for %s",5);" (assignment_expression "uVar14 = dcgettext(0,"don\'t know how to write debugging information for %s",5)" (identifier "uVar14") (= "=") (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_0002d3a0(0,param_2,0,uVar14,uVar13);" (call_expression "FUN_0002d3a0(0,param_2,0,uVar14,uVar13)" (identifier "FUN_0002d3a0") (argument_list "(0,param_2,0,uVar14,uVar13)" (( "(") (number_literal "0") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "uVar14") (, ",") (identifier "uVar13") () ")"))) (; ";")) (} "}")))) (expression_statement "DAT_00040bc8 = 1;" (assignment_expression "DAT_00040bc8 = 1" (identifier "DAT_00040bc8") (= "=") (number_literal "1")) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (labeled_statement "LAB_00019e4d:\n  bfd_set_symtab(param_2,DAT_00040bd8,local_8c);" (statement_identifier "LAB_00019e4d") (: ":") (expression_statement "bfd_set_symtab(param_2,DAT_00040bd8,local_8c);" (call_expression "bfd_set_symtab(param_2,DAT_00040bd8,local_8c)" (identifier "bfd_set_symtab") (argument_list "(param_2,DAT_00040bd8,local_8c)" (( "(") (identifier "param_2") (, ",") (identifier "DAT_00040bd8") (, ",") (identifier "local_8c") () ")"))) (; ";"))) (expression_statement "bfd_map_over_sections(param_1,FUN_00018500,param_2);" (call_expression "bfd_map_over_sections(param_1,FUN_00018500,param_2)" (identifier "bfd_map_over_sections") (argument_list "(param_1,FUN_00018500,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "FUN_00018500") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "bfd_map_over_sections(param_1,FUN_00018070,param_2);" (call_expression "bfd_map_over_sections(param_1,FUN_00018070,param_2)" (identifier "bfd_map_over_sections") (argument_list "(param_1,FUN_00018070,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "FUN_00018070") (, ",") (identifier "param_2") () ")"))) (; ";")) (for_statement "for (puVar35 = DAT_00040b58; psVar43 = param_2, puVar42 = DAT_00040b54,\n      puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)*puVar35) {\n    iVar12 = bfd_set_section_contents(param_2,puVar35[5],puVar35[4],0,0,puVar35[3],0);\n    if (iVar12 == 0) {\nLAB_00019d5e:\n      FUN_0002d3a0(0,param_2,puVar35[5],0);\n      return 0;\n    }\n  }" (for "for") (( "(") (assignment_expression "puVar35 = DAT_00040b58" (identifier "puVar35") (= "=") (identifier "DAT_00040b58")) (; ";") (comma_expression "psVar43 = param_2, puVar42 = DAT_00040b54,\n      puVar35 != (undefined4 *)0x0" (assignment_expression "psVar43 = param_2" (identifier "psVar43") (= "=") (identifier "param_2")) (, ",") (comma_expression "puVar42 = DAT_00040b54,\n      puVar35 != (undefined4 *)0x0" (assignment_expression "puVar42 = DAT_00040b54" (identifier "puVar42") (= "=") (identifier "DAT_00040b54")) (, ",") (binary_expression "puVar35 != (undefined4 *)0x0" (identifier "puVar35") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))))) (; ";") (assignment_expression "puVar35 = (undefined4 *)*puVar35" (identifier "puVar35") (= "=") (cast_expression "(undefined4 *)*puVar35" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar35" (* "*") (identifier "puVar35")))) () ")") (compound_statement "{\n    iVar12 = bfd_set_section_contents(param_2,puVar35[5],puVar35[4],0,0,puVar35[3],0);\n    if (iVar12 == 0) {\nLAB_00019d5e:\n      FUN_0002d3a0(0,param_2,puVar35[5],0);\n      return 0;\n    }\n  }" ({ "{") (expression_statement "iVar12 = bfd_set_section_contents(param_2,puVar35[5],puVar35[4],0,0,puVar35[3],0);" (assignment_expression "iVar12 = bfd_set_section_contents(param_2,puVar35[5],puVar35[4],0,0,puVar35[3],0)" (identifier "iVar12") (= "=") (call_expression "bfd_set_section_contents(param_2,puVar35[5],puVar35[4],0,0,puVar35[3],0)" (identifier "bfd_set_section_contents") (argument_list "(param_2,puVar35[5],puVar35[4],0,0,puVar35[3],0)" (( "(") (identifier "param_2") (, ",") (subscript_expression "puVar35[5]" (identifier "puVar35") ([ "[") (number_literal "5") (] "]")) (, ",") (subscript_expression "puVar35[4]" (identifier "puVar35") ([ "[") (number_literal "4") (] "]")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (subscript_expression "puVar35[3]" (identifier "puVar35") ([ "[") (number_literal "3") (] "]")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar12 == 0) {\nLAB_00019d5e:\n      FUN_0002d3a0(0,param_2,puVar35[5],0);\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00019d5e:\n      FUN_0002d3a0(0,param_2,puVar35[5],0);\n      return 0;\n    }" ({ "{") (labeled_statement "LAB_00019d5e:\n      FUN_0002d3a0(0,param_2,puVar35[5],0);" (statement_identifier "LAB_00019d5e") (: ":") (expression_statement "FUN_0002d3a0(0,param_2,puVar35[5],0);" (call_expression "FUN_0002d3a0(0,param_2,puVar35[5],0)" (identifier "FUN_0002d3a0") (argument_list "(0,param_2,puVar35[5],0)" (( "(") (number_literal "0") (, ",") (identifier "param_2") (, ",") (subscript_expression "puVar35[5]" (identifier "puVar35") ([ "[") (number_literal "5") (] "]")) (, ",") (number_literal "0") () ")"))) (; ";"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))) (while_statement "while( true ) {\n    if (puVar42 == (undefined4 *)0x0) {\n      uVar39 = 0;\n      if (DAT_00040bc4 != 0) {\n        uVar39 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n        if (((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))) {\n          if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }\n        }\n        else {\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        psVar43 = param_2;\n      }\n      if ((DAT_00040b4c != 0) &&\n         (iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0)) {\n        uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,param_2,0,uVar13,iVar12);\n        return 0;\n      }\n      if (DAT_00040b78 != 0 || DAT_00040b70 != 0) {\n        uVar39 = 0x2000;\n        if (local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc) {\n          uVar39 = local_b8;\n        }\n        piVar19 = (int *)xmalloc(uVar39);\n        iVar12 = (uint)DAT_00040b74 * 0x1010101;\n        if (uVar39 < 4) {\n          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }\n        }\n        else {\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }\n        iVar12 = param_2[0x1a];\n        if (iVar12 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);\n        }\n      }\n      iVar12 = (**(code **)(param_2[1] + 0xa8))(param_1,param_2);\n      if (iVar12 == 0) {\n        uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n        return 0;\n      }\n      if ((DAT_00040b64 != 0) &&\n         (iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0)) {\n        uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)\n        ;\n        FUN_0002c910(uVar13,iVar12);\n        if (*(int *)(param_2[1] + 4) != 5) {\n          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          FUN_0002c910(uVar13);\n          return 1;\n        }\n        uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)\n        ;\n        FUN_0002c910(uVar13);\n        *(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64;\n      }\n      return 1;\n    }\n    psVar43 = *(size_t **)(puVar42[5] + 0x54);\n    iVar12 = bfd_set_section_contents(param_2,psVar43,puVar42[4],0,0,puVar42[3],0);\n    local_6c = param_2;\n    if (iVar12 == 0) break;\n    puVar42 = (undefined4 *)*puVar42;\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    if (puVar42 == (undefined4 *)0x0) {\n      uVar39 = 0;\n      if (DAT_00040bc4 != 0) {\n        uVar39 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n        if (((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))) {\n          if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }\n        }\n        else {\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        psVar43 = param_2;\n      }\n      if ((DAT_00040b4c != 0) &&\n         (iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0)) {\n        uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,param_2,0,uVar13,iVar12);\n        return 0;\n      }\n      if (DAT_00040b78 != 0 || DAT_00040b70 != 0) {\n        uVar39 = 0x2000;\n        if (local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc) {\n          uVar39 = local_b8;\n        }\n        piVar19 = (int *)xmalloc(uVar39);\n        iVar12 = (uint)DAT_00040b74 * 0x1010101;\n        if (uVar39 < 4) {\n          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }\n        }\n        else {\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }\n        iVar12 = param_2[0x1a];\n        if (iVar12 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);\n        }\n      }\n      iVar12 = (**(code **)(param_2[1] + 0xa8))(param_1,param_2);\n      if (iVar12 == 0) {\n        uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n        return 0;\n      }\n      if ((DAT_00040b64 != 0) &&\n         (iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0)) {\n        uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)\n        ;\n        FUN_0002c910(uVar13,iVar12);\n        if (*(int *)(param_2[1] + 4) != 5) {\n          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          FUN_0002c910(uVar13);\n          return 1;\n        }\n        uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)\n        ;\n        FUN_0002c910(uVar13);\n        *(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64;\n      }\n      return 1;\n    }\n    psVar43 = *(size_t **)(puVar42[5] + 0x54);\n    iVar12 = bfd_set_section_contents(param_2,psVar43,puVar42[4],0,0,puVar42[3],0);\n    local_6c = param_2;\n    if (iVar12 == 0) break;\n    puVar42 = (undefined4 *)*puVar42;\n  }" ({ "{") (if_statement "if (puVar42 == (undefined4 *)0x0) {\n      uVar39 = 0;\n      if (DAT_00040bc4 != 0) {\n        uVar39 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n        if (((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))) {\n          if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }\n        }\n        else {\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        psVar43 = param_2;\n      }\n      if ((DAT_00040b4c != 0) &&\n         (iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0)) {\n        uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,param_2,0,uVar13,iVar12);\n        return 0;\n      }\n      if (DAT_00040b78 != 0 || DAT_00040b70 != 0) {\n        uVar39 = 0x2000;\n        if (local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc) {\n          uVar39 = local_b8;\n        }\n        piVar19 = (int *)xmalloc(uVar39);\n        iVar12 = (uint)DAT_00040b74 * 0x1010101;\n        if (uVar39 < 4) {\n          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }\n        }\n        else {\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }\n        iVar12 = param_2[0x1a];\n        if (iVar12 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);\n        }\n      }\n      iVar12 = (**(code **)(param_2[1] + 0xa8))(param_1,param_2);\n      if (iVar12 == 0) {\n        uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n        return 0;\n      }\n      if ((DAT_00040b64 != 0) &&\n         (iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0)) {\n        uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)\n        ;\n        FUN_0002c910(uVar13,iVar12);\n        if (*(int *)(param_2[1] + 4) != 5) {\n          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          FUN_0002c910(uVar13);\n          return 1;\n        }\n        uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)\n        ;\n        FUN_0002c910(uVar13);\n        *(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64;\n      }\n      return 1;\n    }" (if "if") (parenthesized_expression "(puVar42 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar42 == (undefined4 *)0x0" (identifier "puVar42") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      uVar39 = 0;\n      if (DAT_00040bc4 != 0) {\n        uVar39 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n        if (((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))) {\n          if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }\n        }\n        else {\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        psVar43 = param_2;\n      }\n      if ((DAT_00040b4c != 0) &&\n         (iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0)) {\n        uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,param_2,0,uVar13,iVar12);\n        return 0;\n      }\n      if (DAT_00040b78 != 0 || DAT_00040b70 != 0) {\n        uVar39 = 0x2000;\n        if (local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc) {\n          uVar39 = local_b8;\n        }\n        piVar19 = (int *)xmalloc(uVar39);\n        iVar12 = (uint)DAT_00040b74 * 0x1010101;\n        if (uVar39 < 4) {\n          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }\n        }\n        else {\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }\n        iVar12 = param_2[0x1a];\n        if (iVar12 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);\n        }\n      }\n      iVar12 = (**(code **)(param_2[1] + 0xa8))(param_1,param_2);\n      if (iVar12 == 0) {\n        uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n        return 0;\n      }\n      if ((DAT_00040b64 != 0) &&\n         (iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0)) {\n        uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)\n        ;\n        FUN_0002c910(uVar13,iVar12);\n        if (*(int *)(param_2[1] + 4) != 5) {\n          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          FUN_0002c910(uVar13);\n          return 1;\n        }\n        uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)\n        ;\n        FUN_0002c910(uVar13);\n        *(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64;\n      }\n      return 1;\n    }" ({ "{") (expression_statement "uVar39 = 0;" (assignment_expression "uVar39 = 0" (identifier "uVar39") (= "=") (number_literal "0")) (; ";")) (if_statement "if (DAT_00040bc4 != 0) {\n        uVar39 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n        if (((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))) {\n          if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }\n        }\n        else {\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        psVar43 = param_2;\n      }" (if "if") (parenthesized_expression "(DAT_00040bc4 != 0)" (( "(") (binary_expression "DAT_00040bc4 != 0" (identifier "DAT_00040bc4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar39 = bfd_get_section_by_name(param_2,".gnu.build.attributes");\n        if (((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))) {\n          if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }\n        }\n        else {\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }\n        free(DAT_00040bc0);\n        DAT_00040bc0 = (void *)0x0;\n        DAT_00040bc4 = 0;\n        psVar43 = param_2;\n      }" ({ "{") (expression_statement "uVar39 = bfd_get_section_by_name(param_2,".gnu.build.attributes");" (assignment_expression "uVar39 = bfd_get_section_by_name(param_2,".gnu.build.attributes")" (identifier "uVar39") (= "=") (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 (((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))) {\n          if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }\n        }\n        else {\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }" (if "if") (parenthesized_expression "(((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0))))" (( "(") (binary_expression "((uVar39 == 0) || (DAT_00040bc4 == 0)) ||\n           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))" (parenthesized_expression "((uVar39 == 0) || (DAT_00040bc4 == 0))" (( "(") (binary_expression "(uVar39 == 0) || (DAT_00040bc4 == 0)" (parenthesized_expression "(uVar39 == 0)" (( "(") (binary_expression "uVar39 == 0" (identifier "uVar39") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(DAT_00040bc4 == 0)" (( "(") (binary_expression "DAT_00040bc4 == 0" (identifier "DAT_00040bc4") (== "==") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))" (( "(") (parenthesized_expression "(*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0))" (( "(") (binary_expression "*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)" (binary_expression "*(int *)(param_2[1] + 4) != 5" (pointer_expression "*(int *)(param_2[1] + 4)" (* "*") (cast_expression "(int *)(param_2[1] + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[1] + 4)" (( "(") (binary_expression "param_2[1] + 4" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "5")) (|| "||") (parenthesized_expression "(iVar12 = FUN_000176d0(), iVar12 == 0)" (( "(") (comma_expression "iVar12 = FUN_000176d0(), iVar12 == 0" (assignment_expression "iVar12 = FUN_000176d0()" (identifier "iVar12") (= "=") (call_expression "FUN_000176d0()" (identifier "FUN_000176d0") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }\n        }" ({ "{") (if_statement "if (DAT_00040be4 == 0) {\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }" (if "if") (parenthesized_expression "(DAT_00040be4 == 0)" (( "(") (binary_expression "DAT_00040be4 == 0" (identifier "DAT_00040be4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n          }" ({ "{") (expression_statement "uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);" (assignment_expression "uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,"could not find any mergeable note sections",5,0)" (identifier "dcgettext") (argument_list "(0,"could not find any mergeable note sections",5,0)" (( "(") (number_literal "0") (, ",") (string_literal ""could not find any mergeable note sections"" (" """) (string_content "could not find any mergeable note sections") (" """)) (, ",") (number_literal "5") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "FUN_0002d3a0(0,param_2,uVar39,uVar13);" (call_expression "FUN_0002d3a0(0,param_2,uVar39,uVar13)" (identifier "FUN_0002d3a0") (argument_list "(0,param_2,uVar39,uVar13)" (( "(") (number_literal "0") (, ",") (identifier "param_2") (, ",") (identifier "uVar39") (, ",") (identifier "uVar13") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }" (else "else") (compound_statement "{\n          iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);\n          if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }\n        }" ({ "{") (expression_statement "iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);" (assignment_expression "iVar12 = bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12)" (identifier "iVar12") (= "=") (call_expression "bfd_set_section_contents\n                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12)" (identifier "bfd_set_section_contents") (argument_list "(param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12)" (( "(") (identifier "param_2") (, ",") (identifier "uVar39") (, ",") (identifier "DAT_00040bc0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "DAT_00040bb8") (, ",") (identifier "DAT_00040bbc") (, ",") (identifier "iVar12") () ")")))) (; ";")) (if_statement "if (iVar12 == 0) {\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);\n            FUN_0002d3a0(0,param_2,uVar39,uVar13);\n            return 0;\n          }" ({ "{") (expression_statement "uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);" (assignment_expression "uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,"error: failed to copy merged notes into output",5,0)" (identifier "dcgettext") (argument_list "(0,"error: failed to copy merged notes into output",5,0)" (( "(") (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") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "FUN_0002d3a0(0,param_2,uVar39,uVar13);" (call_expression "FUN_0002d3a0(0,param_2,uVar39,uVar13)" (identifier "FUN_0002d3a0") (argument_list "(0,param_2,uVar39,uVar13)" (( "(") (number_literal "0") (, ",") (identifier "param_2") (, ",") (identifier "uVar39") (, ",") (identifier "uVar13") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")))) (expression_statement "free(DAT_00040bc0);" (call_expression "free(DAT_00040bc0)" (identifier "free") (argument_list "(DAT_00040bc0)" (( "(") (identifier "DAT_00040bc0") () ")"))) (; ";")) (expression_statement "DAT_00040bc0 = (void *)0x0;" (assignment_expression "DAT_00040bc0 = (void *)0x0" (identifier "DAT_00040bc0") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "DAT_00040bc4 = 0;" (assignment_expression "DAT_00040bc4 = 0" (identifier "DAT_00040bc4") (= "=") (number_literal "0")) (; ";")) (expression_statement "psVar43 = param_2;" (assignment_expression "psVar43 = param_2" (identifier "psVar43") (= "=") (identifier "param_2")) (; ";")) (} "}"))) (if_statement "if ((DAT_00040b4c != 0) &&\n         (iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0)) {\n        uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,param_2,0,uVar13,iVar12);\n        return 0;\n      }" (if "if") (parenthesized_expression "((DAT_00040b4c != 0) &&\n         (iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0))" (( "(") (binary_expression "(DAT_00040b4c != 0) &&\n         (iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0)" (parenthesized_expression "(DAT_00040b4c != 0)" (( "(") (binary_expression "DAT_00040b4c != 0" (identifier "DAT_00040b4c") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0)" (( "(") (comma_expression "iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),\n         iVar12 = DAT_00040b4c, iVar31 == 0" (assignment_expression "iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c)" (identifier "iVar31") (= "=") (call_expression "bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c)" (identifier "bfd_fill_in_gnu_debuglink_section") (argument_list "(param_2,iVar31,DAT_00040b4c)" (( "(") (identifier "param_2") (, ",") (identifier "iVar31") (, ",") (identifier "DAT_00040b4c") () ")")))) (, ",") (comma_expression "iVar12 = DAT_00040b4c, iVar31 == 0" (assignment_expression "iVar12 = DAT_00040b4c" (identifier "iVar12") (= "=") (identifier "DAT_00040b4c")) (, ",") (binary_expression "iVar31 == 0" (identifier "iVar31") (== "==") (number_literal "0")))) () ")"))) () ")")) (compound_statement "{\n        uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0);\n        FUN_0002d3a0(0,param_2,0,uVar13,iVar12);\n        return 0;\n      }" ({ "{") (expression_statement "uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0);" (assignment_expression "uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,"cannot fill debug link section `%s\'",5,0)" (identifier "dcgettext") (argument_list "(0,"cannot fill debug link section `%s\'",5,0)" (( "(") (number_literal "0") (, ",") (string_literal ""cannot fill debug link section `%s\'"" (" """) (string_content "cannot fill debug link section `%s") (escape_sequence "\'") (" """)) (, ",") (number_literal "5") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "FUN_0002d3a0(0,param_2,0,uVar13,iVar12);" (call_expression "FUN_0002d3a0(0,param_2,0,uVar13,iVar12)" (identifier "FUN_0002d3a0") (argument_list "(0,param_2,0,uVar13,iVar12)" (( "(") (number_literal "0") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "uVar13") (, ",") (identifier "iVar12") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (DAT_00040b78 != 0 || DAT_00040b70 != 0) {\n        uVar39 = 0x2000;\n        if (local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc) {\n          uVar39 = local_b8;\n        }\n        piVar19 = (int *)xmalloc(uVar39);\n        iVar12 = (uint)DAT_00040b74 * 0x1010101;\n        if (uVar39 < 4) {\n          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }\n        }\n        else {\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }\n        iVar12 = param_2[0x1a];\n        if (iVar12 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);\n        }\n      }" (if "if") (parenthesized_expression "(DAT_00040b78 != 0 || DAT_00040b70 != 0)" (( "(") (binary_expression "DAT_00040b78 != 0 || DAT_00040b70 != 0" (binary_expression "DAT_00040b78 != 0" (identifier "DAT_00040b78") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "DAT_00040b70 != 0" (identifier "DAT_00040b70") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n        uVar39 = 0x2000;\n        if (local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc) {\n          uVar39 = local_b8;\n        }\n        piVar19 = (int *)xmalloc(uVar39);\n        iVar12 = (uint)DAT_00040b74 * 0x1010101;\n        if (uVar39 < 4) {\n          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }\n        }\n        else {\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }\n        iVar12 = param_2[0x1a];\n        if (iVar12 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);\n        }\n      }" ({ "{") (expression_statement "uVar39 = 0x2000;" (assignment_expression "uVar39 = 0x2000" (identifier "uVar39") (= "=") (number_literal "0x2000")) (; ";")) (if_statement "if (local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc) {\n          uVar39 = local_b8;\n        }" (if "if") (parenthesized_expression "(local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc)" (( "(") (binary_expression "local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc" (binary_expression "local_bc == 0" (identifier "local_bc") (== "==") (number_literal "0")) (&& "&&") (binary_expression "(uint)(0x2000 < local_b8) <= -local_bc" (call_expression "(uint)(0x2000 < local_b8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0x2000 < local_b8)" (( "(") (binary_expression "0x2000 < local_b8" (number_literal "0x2000") (< "<") (identifier "local_b8")) () ")"))) (<= "<=") (unary_expression "-local_bc" (- "-") (identifier "local_bc")))) () ")")) (compound_statement "{\n          uVar39 = local_b8;\n        }" ({ "{") (expression_statement "uVar39 = local_b8;" (assignment_expression "uVar39 = local_b8" (identifier "uVar39") (= "=") (identifier "local_b8")) (; ";")) (} "}"))) (expression_statement "piVar19 = (int *)xmalloc(uVar39);" (assignment_expression "piVar19 = (int *)xmalloc(uVar39)" (identifier "piVar19") (= "=") (cast_expression "(int *)xmalloc(uVar39)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(uVar39)" (identifier "xmalloc") (argument_list "(uVar39)" (( "(") (identifier "uVar39") () ")"))))) (; ";")) (expression_statement "iVar12 = (uint)DAT_00040b74 * 0x1010101;" (assignment_expression "iVar12 = (uint)DAT_00040b74 * 0x1010101" (identifier "iVar12") (= "=") (binary_expression "(uint)DAT_00040b74 * 0x1010101" (cast_expression "(uint)DAT_00040b74" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "DAT_00040b74")) (* "*") (number_literal "0x1010101"))) (; ";")) (if_statement "if (uVar39 < 4) {\n          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }\n        }\n        else {\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }" (if "if") (parenthesized_expression "(uVar39 < 4)" (( "(") (binary_expression "uVar39 < 4" (identifier "uVar39") (< "<") (number_literal "4")) () ")")) (compound_statement "{\n          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }\n        }" ({ "{") (if_statement "if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }" (if "if") (parenthesized_expression "((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0))" (( "(") (binary_expression "(uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)" (parenthesized_expression "(uVar39 != 0)" (( "(") (binary_expression "uVar39 != 0" (identifier "uVar39") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)" (( "(") (comma_expression "*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0" (assignment_expression "*(char *)piVar19 = (char)iVar12" (pointer_expression "*(char *)piVar19" (* "*") (cast_expression "(char *)piVar19" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar19"))) (= "=") (cast_expression "(char)iVar12" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "iVar12"))) (, ",") (binary_expression "(uVar39 & 2) != 0" (parenthesized_expression "(uVar39 & 2)" (( "(") (binary_expression "uVar39 & 2" (identifier "uVar39") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;\n          }" ({ "{") (expression_statement "*(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;" (assignment_expression "*(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12" (pointer_expression "*(short *)((undefined1 *)((int)piVar19 + -2) + uVar39)" (* "*") (cast_expression "(short *)((undefined1 *)((int)piVar19 + -2) + uVar39)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((undefined1 *)((int)piVar19 + -2) + uVar39)" (( "(") (binary_expression "(undefined1 *)((int)piVar19 + -2) + uVar39" (cast_expression "(undefined1 *)((int)piVar19 + -2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar19 + -2)" (( "(") (binary_expression "(int)piVar19 + -2" (cast_expression "(int)piVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar19")) (+ "+") (number_literal "-2")) () ")"))) (+ "+") (identifier "uVar39")) () ")")))) (= "=") (cast_expression "(short)iVar12" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "iVar12"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }" (else "else") (compound_statement "{\n          *piVar19 = iVar12;\n          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;\n          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);\n          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }\n        }" ({ "{") (expression_statement "*piVar19 = iVar12;" (assignment_expression "*piVar19 = iVar12" (pointer_expression "*piVar19" (* "*") (identifier "piVar19")) (= "=") (identifier "iVar12")) (; ";")) (expression_statement "*(int *)((int)(piVar19 + -1) + uVar39) = iVar12;" (assignment_expression "*(int *)((int)(piVar19 + -1) + uVar39) = iVar12" (pointer_expression "*(int *)((int)(piVar19 + -1) + uVar39)" (* "*") (cast_expression "(int *)((int)(piVar19 + -1) + uVar39)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)(piVar19 + -1) + uVar39)" (( "(") (binary_expression "(int)(piVar19 + -1) + uVar39" (cast_expression "(int)(piVar19 + -1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(piVar19 + -1)" (( "(") (binary_expression "piVar19 + -1" (identifier "piVar19") (+ "+") (number_literal "-1")) () ")"))) (+ "+") (identifier "uVar39")) () ")")))) (= "=") (identifier "iVar12")) (; ";")) (expression_statement "psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);" (assignment_expression "psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc)" (identifier "psVar43") (= "=") (cast_expression "(size_t *)((uint)(piVar19 + 1) & 0xfffffffc)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)(piVar19 + 1) & 0xfffffffc)" (( "(") (binary_expression "(uint)(piVar19 + 1) & 0xfffffffc" (call_expression "(uint)(piVar19 + 1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(piVar19 + 1)" (( "(") (binary_expression "piVar19 + 1" (identifier "piVar19") (+ "+") (number_literal "1")) () ")"))) (& "&") (number_literal "0xfffffffc")) () ")")))) (; ";")) (for_statement "for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2; uVar17 != 0; uVar17 = uVar17 - 1) {\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }" (for "for") (( "(") (assignment_expression "uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2" (identifier "uVar17") (= "=") (binary_expression "(uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>\n                        2" (call_expression "(uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc)))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc)))" (( "(") (binary_expression "(int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))" (cast_expression "(int)piVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar19")) (+ "+") (parenthesized_expression "(uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))" (( "(") (binary_expression "uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc)" (identifier "uVar39") (- "-") (cast_expression "(int)((uint)(piVar19 + 1) & 0xfffffffc)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((uint)(piVar19 + 1) & 0xfffffffc)" (( "(") (binary_expression "(uint)(piVar19 + 1) & 0xfffffffc" (call_expression "(uint)(piVar19 + 1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(piVar19 + 1)" (( "(") (binary_expression "piVar19 + 1" (identifier "piVar19") (+ "+") (number_literal "1")) () ")"))) (& "&") (number_literal "0xfffffffc")) () ")")))) () ")"))) () ")"))) (>> ">>") (number_literal "2"))) (; ";") (binary_expression "uVar17 != 0" (identifier "uVar17") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "uVar17 = uVar17 - 1" (identifier "uVar17") (= "=") (binary_expression "uVar17 - 1" (identifier "uVar17") (- "-") (number_literal "1"))) () ")") (compound_statement "{\n            *psVar43 = iVar12;\n            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);\n          }" ({ "{") (expression_statement "*psVar43 = iVar12;" (assignment_expression "*psVar43 = iVar12" (pointer_expression "*psVar43" (* "*") (identifier "psVar43")) (= "=") (identifier "iVar12")) (; ";")) (expression_statement "psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);" (assignment_expression "psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1)" (identifier "psVar43") (= "=") (cast_expression "(size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int *)psVar43 + (uint)bVar48 * -2 + 1)" (( "(") (binary_expression "(int *)psVar43 + (uint)bVar48 * -2 + 1" (binary_expression "(int *)psVar43 + (uint)bVar48 * -2" (cast_expression "(int *)psVar43" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "psVar43")) (+ "+") (binary_expression "(uint)bVar48 * -2" (cast_expression "(uint)bVar48" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar48")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar12 = param_2[0x1a];" (assignment_expression "iVar12 = param_2[0x1a]" (identifier "iVar12") (= "=") (subscript_expression "param_2[0x1a]" (identifier "param_2") ([ "[") (number_literal "0x1a") (] "]"))) (; ";")) (if_statement "if (iVar12 != 0) {\n          local_64 = (int *)0x0;\n          do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);\n        }" (if "if") (parenthesized_expression "(iVar12 != 0)" (( "(") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          local_64 = (int *)0x0;\n          do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);\n        }" ({ "{") (expression_statement "local_64 = (int *)0x0;" (assignment_expression "local_64 = (int *)0x0" (identifier "local_64") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          } while ((int *)iVar12 != local_64);" (do "do") (compound_statement "{\n            piVar1 = local_64;\n            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);\n            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);\n            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }\n            local_64 = (int *)((int)piVar1 + 1);\n          }" ({ "{") (expression_statement "piVar1 = local_64;" (assignment_expression "piVar1 = local_64" (identifier "piVar1") (= "=") (identifier "local_64")) (; ";")) (expression_statement "psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);" (assignment_expression "psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4)" (identifier "psVar43") (= "=") (pointer_expression "*(size_t **)((int)local_b4 + (int)local_64 * 8 + 4)" (* "*") (cast_expression "(size_t **)((int)local_b4 + (int)local_64 * 8 + 4)" (( "(") (type_descriptor "size_t **" (primitive_type "size_t") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)local_b4 + (int)local_64 * 8 + 4)" (( "(") (binary_expression "(int)local_b4 + (int)local_64 * 8 + 4" (binary_expression "(int)local_b4 + (int)local_64 * 8" (cast_expression "(int)local_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b4")) (+ "+") (binary_expression "(int)local_64 * 8" (cast_expression "(int)local_64" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_64")) (* "*") (number_literal "8"))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);" (assignment_expression "uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8)" (identifier "uVar39") (= "=") (pointer_expression "*(uint *)((int)local_b4 + (int)local_64 * 8)" (* "*") (cast_expression "(uint *)((int)local_b4 + (int)local_64 * 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_b4 + (int)local_64 * 8)" (( "(") (binary_expression "(int)local_b4 + (int)local_64 * 8" (cast_expression "(int)local_b4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_b4")) (+ "+") (binary_expression "(int)local_64 * 8" (cast_expression "(int)local_64" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_64")) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (psVar43 != (size_t *)0x0 || uVar39 != 0) {\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }" (if "if") (parenthesized_expression "(psVar43 != (size_t *)0x0 || uVar39 != 0)" (( "(") (binary_expression "psVar43 != (size_t *)0x0 || uVar39 != 0" (binary_expression "psVar43 != (size_t *)0x0" (identifier "psVar43") (!= "!=") (cast_expression "(size_t *)0x0" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (|| "||") (binary_expression "uVar39 != 0" (identifier "uVar39") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n              piVar4 = (int *)(local_a8 + (int)local_64);\n              local_64 = (int *)local_a8[(int)local_64];\n              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);\n              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);\n              while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }\n            }" ({ "{") (expression_statement "piVar4 = (int *)(local_a8 + (int)local_64);" (assignment_expression "piVar4 = (int *)(local_a8 + (int)local_64)" (identifier "piVar4") (= "=") (cast_expression "(int *)(local_a8 + (int)local_64)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_a8 + (int)local_64)" (( "(") (binary_expression "local_a8 + (int)local_64" (identifier "local_a8") (+ "+") (cast_expression "(int)local_64" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_64"))) () ")")))) (; ";")) (expression_statement "local_64 = (int *)local_a8[(int)local_64];" (assignment_expression "local_64 = (int *)local_a8[(int)local_64]" (identifier "local_64") (= "=") (cast_expression "(int *)local_a8[(int)local_64]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_a8[(int)local_64]" (identifier "local_a8") ([ "[") (cast_expression "(int)local_64" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_64")) (] "]")))) (; ";")) (expression_statement "local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);" (assignment_expression "local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39)" (identifier "local_6c") (= "=") (cast_expression "(size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(uint *)((int)local_64 + 0x2c) - uVar39)" (( "(") (binary_expression "*(uint *)((int)local_64 + 0x2c) - uVar39" (pointer_expression "*(uint *)((int)local_64 + 0x2c)" (* "*") (cast_expression "(uint *)((int)local_64 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_64 + 0x2c)" (( "(") (binary_expression "(int)local_64 + 0x2c" (cast_expression "(int)local_64" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_64")) (+ "+") (number_literal "0x2c")) () ")")))) (- "-") (identifier "uVar39")) () ")")))) (; ";")) (expression_statement "local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);" (assignment_expression "local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39)" (identifier "local_68") (= "=") (binary_expression "(*(int *)((int)local_64 + 0x30) - (int)psVar43) -\n                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39)" (parenthesized_expression "(*(int *)((int)local_64 + 0x30) - (int)psVar43)" (( "(") (binary_expression "*(int *)((int)local_64 + 0x30) - (int)psVar43" (pointer_expression "*(int *)((int)local_64 + 0x30)" (* "*") (cast_expression "(int *)((int)local_64 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_64 + 0x30)" (( "(") (binary_expression "(int)local_64 + 0x30" (cast_expression "(int)local_64" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_64")) (+ "+") (number_literal "0x30")) () ")")))) (- "-") (cast_expression "(int)psVar43" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "psVar43"))) () ")")) (- "-") (call_expression "(uint)(*(uint *)((int)local_64 + 0x2c) < uVar39)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(uint *)((int)local_64 + 0x2c) < uVar39)" (( "(") (binary_expression "*(uint *)((int)local_64 + 0x2c) < uVar39" (pointer_expression "*(uint *)((int)local_64 + 0x2c)" (* "*") (cast_expression "(uint *)((int)local_64 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_64 + 0x2c)" (( "(") (binary_expression "(int)local_64 + 0x2c" (cast_expression "(int)local_64" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_64")) (+ "+") (number_literal "0x2c")) () ")")))) (< "<") (identifier "uVar39")) () ")"))))) (; ";")) (while_statement "while( true ) {\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                piVar24 = (int *)psVar43;\n                uVar17 = uVar39;\n                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }\n                iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);\n                if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }\n                bVar46 = uVar39 < uVar17;\n                uVar39 = uVar39 - uVar17;\n                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));\n                bVar46 = CARRY4((uint)local_6c,uVar17);\n                local_6c = (size_t *)((int)local_6c + uVar17);\n                local_68 = (int)piVar24 + (uint)bVar46 + local_68;\n                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;\n                local_64 = (int *)local_a8[(int)piVar1];\n              }" ({ "{") (expression_statement "piVar24 = (int *)psVar43;" (assignment_expression "piVar24 = (int *)psVar43" (identifier "piVar24") (= "=") (cast_expression "(int *)psVar43" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "psVar43"))) (; ";")) (expression_statement "uVar17 = uVar39;" (assignment_expression "uVar17 = uVar39" (identifier "uVar17") (= "=") (identifier "uVar39")) (; ";")) (if_statement "if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }" (if "if") (parenthesized_expression "(psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39))" (( "(") (binary_expression "psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)" (binary_expression "psVar43 != (size_t *)0x0" (identifier "psVar43") (!= "!=") (cast_expression "(size_t *)0x0" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (|| "||") (binary_expression "(uint)-(int)psVar43 < (uint)(0x2000 < uVar39)" (binary_expression "(uint)-(int)psVar43" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (- "-") (cast_expression "(int)psVar43" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "psVar43"))) (< "<") (call_expression "(uint)(0x2000 < uVar39)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0x2000 < uVar39)" (( "(") (binary_expression "0x2000 < uVar39" (number_literal "0x2000") (< "<") (identifier "uVar39")) () ")"))))) () ")")) (compound_statement "{\n                  uVar17 = 0x2000;\n                  piVar24 = (int *)0x0;\n                }" ({ "{") (expression_statement "uVar17 = 0x2000;" (assignment_expression "uVar17 = 0x2000" (identifier "uVar17") (= "=") (number_literal "0x2000")) (; ";")) (expression_statement "piVar24 = (int *)0x0;" (assignment_expression "piVar24 = (int *)0x0" (identifier "piVar24") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (expression_statement "iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);" (assignment_expression "iVar31 = bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24)" (identifier "iVar31") (= "=") (call_expression "bfd_set_section_contents\n                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24)" (identifier "bfd_set_section_contents") (argument_list "(param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24)" (( "(") (identifier "param_2") (, ",") (identifier "local_64") (, ",") (identifier "piVar19") (, ",") (identifier "local_6c") (, ",") (identifier "local_68") (, ",") (identifier "uVar17") (, ",") (identifier "piVar24") () ")")))) (; ";")) (if_statement "if (iVar31 == 0) {\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }" (if "if") (parenthesized_expression "(iVar31 == 0)" (( "(") (binary_expression "iVar31 == 0" (identifier "iVar31") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  FUN_0002d3a0(0,param_2,*piVar4,0);\n                  return 0;\n                }" ({ "{") (expression_statement "FUN_0002d3a0(0,param_2,*piVar4,0);" (call_expression "FUN_0002d3a0(0,param_2,*piVar4,0)" (identifier "FUN_0002d3a0") (argument_list "(0,param_2,*piVar4,0)" (( "(") (number_literal "0") (, ",") (identifier "param_2") (, ",") (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "bVar46 = uVar39 < uVar17;" (assignment_expression "bVar46 = uVar39 < uVar17" (identifier "bVar46") (= "=") (binary_expression "uVar39 < uVar17" (identifier "uVar39") (< "<") (identifier "uVar17"))) (; ";")) (expression_statement "uVar39 = uVar39 - uVar17;" (assignment_expression "uVar39 = uVar39 - uVar17" (identifier "uVar39") (= "=") (binary_expression "uVar39 - uVar17" (identifier "uVar39") (- "-") (identifier "uVar17"))) (; ";")) (expression_statement "psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));" (assignment_expression "psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24))" (identifier "psVar43") (= "=") (cast_expression "(size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24))" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)psVar43 + (-(uint)bVar46 - (int)piVar24))" (( "(") (binary_expression "(int)psVar43 + (-(uint)bVar46 - (int)piVar24)" (cast_expression "(int)psVar43" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "psVar43")) (+ "+") (parenthesized_expression "(-(uint)bVar46 - (int)piVar24)" (( "(") (binary_expression "-(uint)bVar46 - (int)piVar24" (unary_expression "-(uint)bVar46" (- "-") (cast_expression "(uint)bVar46" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar46"))) (- "-") (cast_expression "(int)piVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar24"))) () ")"))) () ")")))) (; ";")) (expression_statement "bVar46 = CARRY4((uint)local_6c,uVar17);" (assignment_expression "bVar46 = CARRY4((uint)local_6c,uVar17)" (identifier "bVar46") (= "=") (call_expression "CARRY4((uint)local_6c,uVar17)" (identifier "CARRY4") (argument_list "((uint)local_6c,uVar17)" (( "(") (cast_expression "(uint)local_6c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_6c")) (, ",") (identifier "uVar17") () ")")))) (; ";")) (expression_statement "local_6c = (size_t *)((int)local_6c + uVar17);" (assignment_expression "local_6c = (size_t *)((int)local_6c + uVar17)" (identifier "local_6c") (= "=") (cast_expression "(size_t *)((int)local_6c + uVar17)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_6c + uVar17)" (( "(") (binary_expression "(int)local_6c + uVar17" (cast_expression "(int)local_6c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_6c")) (+ "+") (identifier "uVar17")) () ")")))) (; ";")) (expression_statement "local_68 = (int)piVar24 + (uint)bVar46 + local_68;" (assignment_expression "local_68 = (int)piVar24 + (uint)bVar46 + local_68" (identifier "local_68") (= "=") (binary_expression "(int)piVar24 + (uint)bVar46 + local_68" (binary_expression "(int)piVar24 + (uint)bVar46" (cast_expression "(int)piVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar24")) (+ "+") (cast_expression "(uint)bVar46" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar46"))) (+ "+") (identifier "local_68"))) (; ";")) (if_statement "if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;" (if "if") (parenthesized_expression "(psVar43 == (size_t *)0x0 && uVar39 == 0)" (( "(") (binary_expression "psVar43 == (size_t *)0x0 && uVar39 == 0" (binary_expression "psVar43 == (size_t *)0x0" (identifier "psVar43") (== "==") (cast_expression "(size_t *)0x0" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (&& "&&") (binary_expression "uVar39 == 0" (identifier "uVar39") (== "==") (number_literal "0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "local_64 = (int *)local_a8[(int)piVar1];" (assignment_expression "local_64 = (int *)local_a8[(int)piVar1]" (identifier "local_64") (= "=") (cast_expression "(int *)local_a8[(int)piVar1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_a8[(int)piVar1]" (identifier "local_a8") ([ "[") (cast_expression "(int)piVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar1")) (] "]")))) (; ";")) (} "}"))) (} "}"))) (expression_statement "local_64 = (int *)((int)piVar1 + 1);" (assignment_expression "local_64 = (int *)((int)piVar1 + 1)" (identifier "local_64") (= "=") (cast_expression "(int *)((int)piVar1 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar1 + 1)" (( "(") (binary_expression "(int)piVar1 + 1" (cast_expression "(int)piVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar1")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int *)iVar12 != local_64)" (( "(") (binary_expression "(int *)iVar12 != local_64" (cast_expression "(int *)iVar12" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "iVar12")) (!= "!=") (identifier "local_64")) () ")")) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar12 = (**(code **)(param_2[1] + 0xa8))(param_1,param_2);" (assignment_expression "iVar12 = (**(code **)(param_2[1] + 0xa8))(param_1,param_2)" (identifier "iVar12") (= "=") (call_expression "(**(code **)(param_2[1] + 0xa8))(param_1,param_2)" (parenthesized_expression "(**(code **)(param_2[1] + 0xa8))" (( "(") (pointer_expression "**(code **)(param_2[1] + 0xa8)" (* "*") (pointer_expression "*(code **)(param_2[1] + 0xa8)" (* "*") (cast_expression "(code **)(param_2[1] + 0xa8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2[1] + 0xa8)" (( "(") (binary_expression "param_2[1] + 0xa8" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0xa8")) () ")"))))) () ")")) (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar12 == 0) {\n        uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n        return 0;\n      }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43);\n        FUN_0002d3a0(0,param_2,0,uVar13);\n        return 0;\n      }" ({ "{") (expression_statement "uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43);" (assignment_expression "uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,"error copying private BFD data",5,psVar43)" (identifier "dcgettext") (argument_list "(0,"error copying private BFD data",5,psVar43)" (( "(") (number_literal "0") (, ",") (string_literal ""error copying private BFD data"" (" """) (string_content "error copying private BFD data") (" """)) (, ",") (number_literal "5") (, ",") (identifier "psVar43") () ")")))) (; ";")) (expression_statement "FUN_0002d3a0(0,param_2,0,uVar13);" (call_expression "FUN_0002d3a0(0,param_2,0,uVar13)" (identifier "FUN_0002d3a0") (argument_list "(0,param_2,0,uVar13)" (( "(") (number_literal "0") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "uVar13") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if ((DAT_00040b64 != 0) &&\n         (iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0)) {\n        uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)\n        ;\n        FUN_0002c910(uVar13,iVar12);\n        if (*(int *)(param_2[1] + 4) != 5) {\n          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          FUN_0002c910(uVar13);\n          return 1;\n        }\n        uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)\n        ;\n        FUN_0002c910(uVar13);\n        *(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64;\n      }" (if "if") (parenthesized_expression "((DAT_00040b64 != 0) &&\n         (iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0))" (( "(") (binary_expression "(DAT_00040b64 != 0) &&\n         (iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0)" (parenthesized_expression "(DAT_00040b64 != 0)" (( "(") (binary_expression "DAT_00040b64 != 0" (identifier "DAT_00040b64") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0)" (( "(") (comma_expression "iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,\n         iVar31 == 0" (assignment_expression "iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39)" (identifier "iVar31") (= "=") (call_expression "bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39)" (identifier "bfd_alt_mach_code") (argument_list "(param_2,DAT_00040b64,uVar39,uVar39)" (( "(") (identifier "param_2") (, ",") (identifier "DAT_00040b64") (, ",") (identifier "uVar39") (, ",") (identifier "uVar39") () ")")))) (, ",") (comma_expression "iVar12 = DAT_00040b64,\n         iVar31 == 0" (assignment_expression "iVar12 = DAT_00040b64" (identifier "iVar12") (= "=") (identifier "DAT_00040b64")) (, ",") (binary_expression "iVar31 == 0" (identifier "iVar31") (== "==") (number_literal "0")))) () ")"))) () ")")) (compound_statement "{\n        uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)\n        ;\n        FUN_0002c910(uVar13,iVar12);\n        if (*(int *)(param_2[1] + 4) != 5) {\n          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          FUN_0002c910(uVar13);\n          return 1;\n        }\n        uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)\n        ;\n        FUN_0002c910(uVar13);\n        *(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64;\n      }" ({ "{") (expression_statement "uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)\n        ;" (assignment_expression "uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)" (identifier "dcgettext") (argument_list "(0,"this target does not support %lu alternative machine codes",5,psVar43)" (( "(") (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") (, ",") (identifier "psVar43") () ")")))) (; ";")) (expression_statement "FUN_0002c910(uVar13,iVar12);" (call_expression "FUN_0002c910(uVar13,iVar12)" (identifier "FUN_0002c910") (argument_list "(uVar13,iVar12)" (( "(") (identifier "uVar13") (, ",") (identifier "iVar12") () ")"))) (; ";")) (if_statement "if (*(int *)(param_2[1] + 4) != 5) {\n          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          FUN_0002c910(uVar13);\n          return 1;\n        }" (if "if") (parenthesized_expression "(*(int *)(param_2[1] + 4) != 5)" (( "(") (binary_expression "*(int *)(param_2[1] + 4) != 5" (pointer_expression "*(int *)(param_2[1] + 4)" (* "*") (cast_expression "(int *)(param_2[1] + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[1] + 4)" (( "(") (binary_expression "param_2[1] + 4" (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "5")) () ")")) (compound_statement "{\n          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);\n          FUN_0002c910(uVar13);\n          return 1;\n        }" ({ "{") (expression_statement "uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);" (assignment_expression "uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00)" (identifier "dcgettext") (argument_list "(0,"ignoring the alternative value",5,extraout_ECX_00)" (( "(") (number_literal "0") (, ",") (string_literal ""ignoring the alternative value"" (" """) (string_content "ignoring the alternative value") (" """)) (, ",") (number_literal "5") (, ",") (identifier "extraout_ECX_00") () ")")))) (; ";")) (expression_statement "FUN_0002c910(uVar13);" (call_expression "FUN_0002c910(uVar13)" (identifier "FUN_0002c910") (argument_list "(uVar13)" (( "(") (identifier "uVar13") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)\n        ;" (assignment_expression "uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)" (identifier "uVar13") (= "=") (call_expression "dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)" (identifier "dcgettext") (argument_list "(0,"treating that number as an absolute e_machine value instead",5,iVar12)" (( "(") (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") (, ",") (identifier "iVar12") () ")")))) (; ";")) (expression_statement "FUN_0002c910(uVar13);" (call_expression "FUN_0002c910(uVar13)" (identifier "FUN_0002c910") (argument_list "(uVar13)" (( "(") (identifier "uVar13") () ")"))) (; ";")) (expression_statement "*(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64;" (assignment_expression "*(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64" (pointer_expression "*(short *)(param_2[0x28] + 0x32)" (* "*") (cast_expression "(short *)(param_2[0x28] + 0x32)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[0x28] + 0x32)" (( "(") (binary_expression "param_2[0x28] + 0x32" (subscript_expression "param_2[0x28]" (identifier "param_2") ([ "[") (number_literal "0x28") (] "]")) (+ "+") (number_literal "0x32")) () ")")))) (= "=") (cast_expression "(short)DAT_00040b64" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "DAT_00040b64"))) (; ";")) (} "}"))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "psVar43 = *(size_t **)(puVar42[5] + 0x54);" (assignment_expression "psVar43 = *(size_t **)(puVar42[5] + 0x54)" (identifier "psVar43") (= "=") (pointer_expression "*(size_t **)(puVar42[5] + 0x54)" (* "*") (cast_expression "(size_t **)(puVar42[5] + 0x54)" (( "(") (type_descriptor "size_t **" (primitive_type "size_t") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar42[5] + 0x54)" (( "(") (binary_expression "puVar42[5] + 0x54" (subscript_expression "puVar42[5]" (identifier "puVar42") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (expression_statement "iVar12 = bfd_set_section_contents(param_2,psVar43,puVar42[4],0,0,puVar42[3],0);" (assignment_expression "iVar12 = bfd_set_section_contents(param_2,psVar43,puVar42[4],0,0,puVar42[3],0)" (identifier "iVar12") (= "=") (call_expression "bfd_set_section_contents(param_2,psVar43,puVar42[4],0,0,puVar42[3],0)" (identifier "bfd_set_section_contents") (argument_list "(param_2,psVar43,puVar42[4],0,0,puVar42[3],0)" (( "(") (identifier "param_2") (, ",") (identifier "psVar43") (, ",") (subscript_expression "puVar42[4]" (identifier "puVar42") ([ "[") (number_literal "4") (] "]")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (subscript_expression "puVar42[3]" (identifier "puVar42") ([ "[") (number_literal "3") (] "]")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "local_6c = param_2;" (assignment_expression "local_6c = param_2" (identifier "local_6c") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (iVar12 == 0) break;" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "puVar42 = (undefined4 *)*puVar42;" (assignment_expression "puVar42 = (undefined4 *)*puVar42" (identifier "puVar42") (= "=") (cast_expression "(undefined4 *)*puVar42" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar42" (* "*") (identifier "puVar42")))) (; ";")) (} "}"))) (labeled_statement "LAB_00019fa0:\n  FUN_0002d3a0(0,local_6c,psVar43,0);" (statement_identifier "LAB_00019fa0") (: ":") (expression_statement "FUN_0002d3a0(0,local_6c,psVar43,0);" (call_expression "FUN_0002d3a0(0,local_6c,psVar43,0)" (identifier "FUN_0002d3a0") (argument_list "(0,local_6c,psVar43,0)" (( "(") (number_literal "0") (, ",") (identifier "local_6c") (, ",") (identifier "psVar43") (, ",") (number_literal "0") () ")"))) (; ";"))) (return_statement "return iVar12;" (return "return") (identifier "iVar12") (; ";")) (labeled_statement "LAB_0001b1a6:\n  if ((undefined1 *)((int)pvVar32 + sVar54) <= puVar45) goto LAB_0001b1aa;" (statement_identifier "LAB_0001b1a6") (: ":") (if_statement "if ((undefined1 *)((int)pvVar32 + sVar54) <= puVar45) goto LAB_0001b1aa;" (if "if") (parenthesized_expression "((undefined1 *)((int)pvVar32 + sVar54) <= puVar45)" (( "(") (binary_expression "(undefined1 *)((int)pvVar32 + sVar54) <= puVar45" (cast_expression "(undefined1 *)((int)pvVar32 + sVar54)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar32 + sVar54)" (( "(") (binary_expression "(int)pvVar32 + sVar54" (cast_expression "(int)pvVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar32")) (+ "+") (identifier "sVar54")) () ")"))) (<= "<=") (identifier "puVar45")) () ")")) (goto_statement "goto LAB_0001b1aa;" (goto "goto") (statement_identifier "LAB_0001b1aa") (; ";")))) (expression_statement "*puVar45 = (char)uVar17;" (assignment_expression "*puVar45 = (char)uVar17" (pointer_expression "*puVar45" (* "*") (identifier "puVar45")) (= "=") (cast_expression "(char)uVar17" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar17"))) (; ";")) (if_statement "if (uVar17 == 0) goto LAB_0001b1aa;" (if "if") (parenthesized_expression "(uVar17 == 0)" (( "(") (binary_expression "uVar17 == 0" (identifier "uVar17") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001b1aa;" (goto "goto") (statement_identifier "LAB_0001b1aa") (; ";"))) (expression_statement "uVar17 = uVar17 >> 8;" (assignment_expression "uVar17 = uVar17 >> 8" (identifier "uVar17") (= "=") (binary_expression "uVar17 >> 8" (identifier "uVar17") (>> ">>") (number_literal "8"))) (; ";")) (expression_statement "puVar45 = puVar45 + 1;" (assignment_expression "puVar45 = puVar45 + 1" (identifier "puVar45") (= "=") (binary_expression "puVar45 + 1" (identifier "puVar45") (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_0001b1a6;" (goto "goto") (statement_identifier "LAB_0001b1a6") (; ";")) (labeled_statement "LAB_0001b1aa:\n  bVar46 = true;" (statement_identifier "LAB_0001b1aa") (: ":") (expression_statement "bVar46 = true;" (assignment_expression "bVar46 = true" (identifier "bVar46") (= "=") (true "true")) (; ";"))) (expression_statement "psVar9[0xe] = 0;" (assignment_expression "psVar9[0xe] = 0" (subscript_expression "psVar9[0xe]" (identifier "psVar9") ([ "[") (number_literal "0xe") (] "]")) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0001afd1;" (goto "goto") (statement_identifier "LAB_0001afd1") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

type_1 __regparm3 function_1(type_2 *ibfd,type_2 *obfd,type_3 *var_30)

{
  type_4 *pbVar1;
  void *__dest;
  type_5 **var_162;
  type_5 **ppaVar3;
  int *piVar4;
  type_6 var_149;
  type_7 var_77;
  char var_86;
  type_8 var_1;
  type_8 var_2;
  type_9 *ppVar10;
  type_10 *var_116;
  type_10 *var_114;
  type_11 *pbVar13;
  type_12 *var_90;
  type_13 *p_Var15;
  type_14 var_34;
  type_15 *var_60;
  type_16 *var_148;
  type_17 uVar19;
  type_17 uVar20;
  type_18 *paVar21;
  int var_7;
  type_19 bVar23;
  type_20 uVar24;
  type_1 var_32;
  char *var_99;
  char *var_64;
  long var_49;
  type_21 *var_55;
  type_18 *var_58;
  type_22 *var_104;
  char *var_76;
  type_23 uVar32;
  type_23 uVar33;
  type_5 **var_47;
  type_12 *var_100;
  type_5 *paVar36;
  size_t var_102;
  size_t var_107;
  type_6 *var_147;
  type_5 *paVar40;
  type_23 *var_171;
  type_10 *var_113;
  int var_88;
  int *var_173;
  char *var_94;
  type_2 *var_161;
  char *var_75;
  type_24 var_73;
  void *pvVar49;
  type_18 *sec_1;
  type_12 *var_89;
  type_23 extraout_ECX;
  type_18 *sec_1_00;
  type_23 extraout_ECX_00;
  char *extraout_ECX_01;
  char *extraout_ECX_02;
  type_18 *var_93;
  int var_21;
  type_18 *var_63;
  void *pvVar54;
  type_24 var_123;
  type_25 *ptr;
  type_6 *var_72;
  type_15 *var_53;
  type_7 *var_36;
  type_24 *var_39;
  type_24 var_91;
  type_10 *var_117;
  type_10 *var_115;
  type_24 var_20;
  type_24 var_122;
  type_7 *var_37;
  type_26 *piVar66;
  type_24 var_92;
  type_18 *var_84;
  bool var_38;
  bool bVar70;
  type_7 bVar71;
  type_4 var_74;
  type_27 var_79;
  type_27 var_80;
  void *var_154;
  type_12 *in_stack_ffffff24;
  type_18 *var_96;
  char *var_97;
  char *var_111;
  void *var_164;
  type_24 var_124;
  type_18 *var_125;
  void *local_b4;
  type_18 *var_81;
  int var_78;
  int var_51;
  type_5 **var_82;
  char *var_71;
  type_18 *var_70;
  type_18 *var_85;
  type_12 *var_83;
  int var_172;
  int *var_43;
  type_6 *syms;
  type_6 *strings;
  char file_alignment [20];
  type_6 *contents;
  type_23 local_30;
  type_23 uStack_14;
  
  bVar71 = 0;
  uStack_14 = 0x1892b;
  var_1 = ibfd->xvec->byteorder;
  var_2 = obfd->xvec->byteorder;
  if ((var_1 != var_2 && var_1 != var_3) && (var_2 != var_3)) {
    var_64 = (char *)var_4(0,"Unable to change endianness of input file(s)",5);
    var_5(var_64);
    return 0;
  }
  var_7 = var_6(obfd,ibfd->field_0x28 & 7);
  if (var_7 == 0) {
    var_8((char *)0x0,obfd,(type_18 *)0x0,(char *)0x0);
    return 0;
  }
  if (ibfd->sections == (type_12 *)0x0) {
    var_99 = var_9(ibfd);
    var_64 = "error: the input file \'%s\' has no sections";
    goto LAB_00018f38;
  }
  if (ibfd->xvec->flavour != var_10) {
    if ((var_11 != var_12) && ((var_11 & var_12) != var_13)) {
      var_99 = var_9(ibfd);
      var_64 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";
LAB_00018f38:
      var_64 = (char *)var_4(0,var_64,5);
      var_5(var_64,var_99);
      return 0;
    }
    if (var_14 != var_15) {
      var_99 = var_9(ibfd);
      var_64 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";
      goto LAB_00018f38;
    }
  }
  if (var_16 != 0) {
    var_64 = ibfd->xvec->name;
    var_99 = obfd->xvec->name;
    var_94 = obfd->filename;
    var_75 = var_9(ibfd);
    var_76 = (char *)var_4(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);
    var_17(var_76,var_75,var_64,var_94,var_99);
  }
  var_7 = 0;
  var_21 = 0;
  if (var_18 == 0) {
    var_20 = (type_24)set_start;
    var_21 = set_start._4_4_;
    if (var_19 == 0) {
      var_20 = (type_24)ibfd->start_address;
      var_21 = *(int *)((int)&ibfd->start_address + 4);
    }
    var_7 = var_20 + (type_24)change_start;
    var_21 = var_21 + change_start._4_4_ + (type_24)var_22(var_20,(type_24)change_start);
  }
  if ((obfd->field_0x28 & 7) != 3) {
    var_20 = ~bfd_flags_to_clear & obfd->xvec->object_flags &
             (*(type_24 *)&ibfd->field_0x28 >> 5 & 0xfffff | var_23);
    if (var_24 == var_25) {
      var_20 = var_20 & 0xfffffffe;
    }
    var_7 = var_26(obfd,var_7,var_21);
    if ((var_7 == 0) || (var_7 = var_27(obfd,var_20), var_7 == 0)) goto LAB_00018b70;
  }
  bVar23 = var_28(ibfd);
  uVar24 = var_29(ibfd);
  if (var_30 != (type_3 *)0x0) {
    var_7 = var_31(ibfd);
    if ((var_7 == 0) || (var_7 = var_31(ibfd), *(int *)(var_7 + 0xc) == 0)) {
      bVar23 = var_30->arch;
      uVar24 = var_30->mach;
    }
    else {
      var_64 = var_9(ibfd);
      var_99 = (char *)var_4(0,"Input file `%s\' ignores binary architecture parameter.",5);
      var_5(var_99,var_64);
    }
  }
  var_32 = (*obfd->xvec->_bfd_set_arch_mach)(obfd,bVar23,uVar24);
  if (var_32 == 0) {
    if ((ibfd->field_0x2b & 4) != 0) {
LAB_00018b20:
      var_7 = var_28(ibfd);
      if (var_7 == 0) {
        var_99 = var_9(ibfd);
        var_64 = "Unable to recognise the format of the input file `%s\'";
      }
      else {
        uVar32 = var_29(ibfd);
        uVar33 = var_28(ibfd);
        var_99 = (char *)var_33(uVar33,uVar32);
        var_64 = "Output file cannot represent architecture `%s\'";
      }
      var_64 = (char *)var_4(0,var_64,5);
      var_5(var_64,var_99);
      return 0;
    }
    var_7 = var_28(ibfd);
    var_21 = var_28(obfd);
    if (var_7 != var_21) goto LAB_00018b20;
  }
  var_7 = var_6(obfd,ibfd->field_0x28 & 7);
  if (var_7 == 0) {
LAB_00018b70:
    var_8((char *)0x0,ibfd,(type_18 *)0x0,(char *)0x0);
    return 0;
  }
  var_34 = obfd->xvec->flavour;
  var_38 = var_34 < var_35;
  bVar70 = var_34 == var_35;
  if (bVar70) {
    var_7 = 4;
    var_36 = (type_7 *)obfd->xvec->name;
    var_37 = &DAT_0002f16a;
    do {
      if (var_7 == 0) break;
      var_7 = var_7 + -1;
      var_38 = *var_36 < *var_37;
      bVar70 = *var_36 == *var_37;
      var_36 = var_36 + (type_24)bVar71 * -2 + 1;
      var_37 = var_37 + (type_24)bVar71 * -2 + 1;
    } while (bVar70);
    if ((!var_38 && !bVar70) == var_38) {
      ppVar10 = (obfd->tdata).pe_obj_data;
      var_34 = ibfd->xvec->flavour;
      var_38 = var_34 < var_35;
      bVar70 = var_34 == var_35;
      if (bVar70) {
        var_7 = 4;
        var_36 = (type_7 *)ibfd->xvec->name;
        var_37 = &DAT_0002f16a;
        do {
          if (var_7 == 0) break;
          var_7 = var_7 + -1;
          var_38 = *var_36 < *var_37;
          bVar70 = *var_36 == *var_37;
          var_36 = var_36 + (type_24)bVar71 * -2 + 1;
          var_37 = var_37 + (type_24)bVar71 * -2 + 1;
        } while (bVar70);
        if ((!var_38 && !bVar70) == var_38) {
          var_39 = &(((ibfd->tdata).elf_obj_data)->symtab_hdr).sh_link;
          piVar66 = &ppVar10->pe_opthdr;
          for (var_7 = 0x52; var_7 != 0; var_7 = var_7 + -1) {
            uVar19 = *(type_17 *)((int)var_39 + 2);
            uVar20 = *(type_17 *)((int)var_39 + 3);
            piVar66->Magic = *(type_28 *)var_39;
            piVar66->MajorLinkerVersion = uVar19;
            piVar66->MinorLinkerVersion = uVar20;
            var_39 = var_39 + (type_24)bVar71 * -2 + 1;
            piVar66 = (type_26 *)((int)piVar66 + (type_24)bVar71 * -8 + 4);
          }
        }
      }
      var_20 = pe_file_alignment._4_4_;
      if ((pe_file_alignment._4_4_ & (type_24)pe_file_alignment) == 0xffffffff) {
        pe_file_alignment._0_4_ = 0x200;
        pe_file_alignment._4_4_ = 0;
      }
      else {
        *(type_24 *)&(ppVar10->pe_opthdr).FileAlignment = (type_24)pe_file_alignment;
        *(type_24 *)((int)&(ppVar10->pe_opthdr).FileAlignment + 4) = var_20;
      }
      var_20 = pe_heap_commit._4_4_;
      if ((pe_heap_commit._4_4_ & (type_24)pe_heap_commit) != 0xffffffff) {
        *(type_24 *)&(ppVar10->pe_opthdr).SizeOfHeapCommit = (type_24)pe_heap_commit;
        *(type_24 *)((int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4) = var_20;
      }
      var_20 = pe_heap_reserve._4_4_;
      if ((pe_heap_reserve._4_4_ & (type_24)pe_heap_reserve) != 0xffffffff) {
        *(type_24 *)&(ppVar10->pe_opthdr).SizeOfHeapCommit = (type_24)pe_heap_reserve;
        *(type_24 *)((int)&(ppVar10->pe_opthdr).SizeOfHeapCommit + 4) = var_20;
      }
      var_20 = pe_image_base._4_4_;
      if ((pe_image_base._4_4_ & (type_24)pe_image_base) != 0xffffffff) {
        *(type_24 *)&(ppVar10->pe_opthdr).ImageBase = (type_24)pe_image_base;
        *(type_24 *)((int)&(ppVar10->pe_opthdr).ImageBase + 4) = var_20;
      }
      var_20 = pe_section_alignment._4_4_;
      var_43 = (int *)(type_24)pe_section_alignment;
      if (((type_24)pe_section_alignment & pe_section_alignment._4_4_) == 0xffffffff) {
        pe_section_alignment._0_4_ = 0x1000;
        var_20 = 0;
        pe_section_alignment._4_4_ = 0;
        var_43 = (int *)0x1000;
      }
      else {
        *(type_24 *)&(ppVar10->pe_opthdr).SectionAlignment = (type_24)pe_section_alignment;
        *(type_24 *)((int)&(ppVar10->pe_opthdr).SectionAlignment + 4) = var_20;
      }
      var_73 = pe_stack_commit._4_4_;
      if ((pe_stack_commit._4_4_ & (type_24)pe_stack_commit) != 0xffffffff) {
        *(type_24 *)&(ppVar10->pe_opthdr).SizeOfStackCommit = (type_24)pe_stack_commit;
        *(type_24 *)((int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4) = var_73;
      }
      var_73 = pe_stack_reserve._4_4_;
      if ((pe_stack_reserve._4_4_ & (type_24)pe_stack_reserve) != 0xffffffff) {
        *(type_24 *)&(ppVar10->pe_opthdr).SizeOfStackCommit = (type_24)pe_stack_reserve;
        *(type_24 *)((int)&(ppVar10->pe_opthdr).SizeOfStackCommit + 4) = var_73;
      }
      if (var_40 != -1) {
        (ppVar10->pe_opthdr).Subsystem = var_40;
      }
      if (var_41 != -1) {
        (ppVar10->pe_opthdr).MajorSubsystemVersion = var_41;
      }
      if (var_42 != -1) {
        (ppVar10->pe_opthdr).MinorSubsystemVersion = var_42;
      }
      if (var_20 < pe_file_alignment._4_4_ ||
          var_20 - pe_file_alignment._4_4_ < (type_24)(var_43 < (type_24)pe_file_alignment)) {
        var_44(file_alignment,"%016llx",(type_24)pe_file_alignment,pe_file_alignment._4_4_);
        var_44((char *)&contents,"%016llx",(type_24)pe_section_alignment,pe_section_alignment._4_4_);
        var_64 = (char *)var_4(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5)
        ;
        var_5(var_64,file_alignment,&contents);
      }
    }
  }
  var_47 = var_45;
  if (var_45 != (type_5 **)0x0) {
    var_46(var_45);
  }
  if (var_47 != var_48) {
    var_46(var_48);
  }
  var_45 = (type_5 **)0x0;
  var_48 = (type_5 **)0x0;
  var_49 = (*ibfd->xvec->_bfd_get_symtab_upper_bound)(ibfd);
  if (var_49 < 0) goto LAB_00018b70;
  var_48 = (type_5 **)var_50(var_49);
  var_45 = var_48;
  var_51 = (*ibfd->xvec->_bfd_canonicalize_symtab)(ibfd,var_48);
  if (var_51 < 0) goto LAB_00018b70;
  if (var_51 == 0) {
    var_46(var_45);
    var_45 = (type_5 **)0x0;
    var_48 = (type_5 **)0x0;
  }
  var_52(ibfd,setup_section,obfd);
  var_53 = add_sections;
  if ((var_18 == 0) &&
     (var_32 = (*obfd->xvec->_bfd_copy_private_header_data)(ibfd,obfd), var_53 = add_sections,
     var_32 == 0)) {
    status = 1;
    var_64 = (char *)var_4(0,"error in private header data",5);
    var_8((char *)0x0,ibfd,(type_18 *)0x0,var_64);
    var_53 = add_sections;
  }
  for (; var_60 = update_sections, var_53 != (type_15 *)0x0; var_53 = var_53->next) {
    var_20 = 0x128;
    var_55 = var_54(var_53->name,0,0x40);
    if (var_55 != (type_21 *)0x0) {
      var_20 = var_55->flags | 0x100;
    }
    var_7 = var_56(obfd,var_53->name);
    if (var_7 != 0) {
      var_99 = var_53->name;
      var_64 = "can\'t add section \'%s\'";
LAB_00019591:
      var_64 = (char *)var_4(0,var_64,5);
      var_8((char *)0x0,obfd,(type_18 *)0x0,var_64,var_99);
      return 0;
    }
    var_58 = (type_18 *)var_57(obfd,var_53->name,var_20 | 0x100000);
    var_53->section = var_58;
    if (var_58 == (type_18 *)0x0) {
      var_99 = var_53->name;
      var_64 = "can\'t create section `%s\'";
      goto LAB_00019591;
    }
    var_7 = var_59(obfd,var_58,var_53->size,0);
    if (var_7 == 0) goto LAB_00019d5e;
    var_55 = var_54(var_53->name,0,0xc);
    if (var_55 != (type_21 *)0x0) {
      var_58 = var_53->section;
      uVar32 = *(type_23 *)((int)&var_55->vma_val + 4);
      uVar33 = (type_23)var_55->vma_val;
      var_58->field_0x18 = var_58->field_0x18 | 1;
      *(type_23 *)&var_58->lma = uVar33;
      *(type_23 *)((int)&var_58->lma + 4) = uVar32;
      *(type_23 *)&var_58->vma = uVar33;
      *(type_23 *)((int)&var_58->vma + 4) = uVar32;
    }
    var_55 = var_54(var_53->name,0,0x30);
    if (var_55 != (type_21 *)0x0) {
      var_58 = var_53->section;
      var_74 = var_55->lma_val;
      *(type_23 *)((int)&var_58->lma + 4) = *(type_23 *)((int)&var_55->lma_val + 4);
      *(int *)&var_58->lma = (int)var_74;
    }
  }
  for (; var_83 = (type_12 *)obfd, var_60 != (type_15 *)0x0; var_60 = var_60->next) {
    var_58 = (type_18 *)var_56(ibfd,var_60->name);
    var_60->section = var_58;
    if (var_58 == (type_18 *)0x0) {
      var_99 = var_60->name;
      var_64 = "error: %s not found, can\'t be updated";
      goto LAB_00018f38;
    }
    var_100 = var_58->output_section;
    var_32 = var_59(obfd,var_100,var_60->size,0);
    if (var_32 == 0) goto LAB_00019fa0;
  }
  if ((((var_61 != 0) &&
       (var_58 = (type_18 *)var_56(ibfd,".gnu.build.attributes"),
       var_58 != (type_18 *)0x0)) && (var_61 != 0)) &&
     ((ibfd->xvec->flavour == var_10 &&
      (var_32 = var_62((type_2 *)var_58,(type_18 *)&var_58->used_by_bfd,sec_1),
      var_32 != 0)))) {
    var_63 = *(type_18 **)((int)&var_58->size + 4);
    var_64 = *(char **)&var_58->size;
    if (var_63 == (type_18 *)0x0 && var_64 == (char *)0x0) {
      var_64 = (char *)var_4(0,"warning: note section is empty",5,var_64);
      var_8((char *)0x0,ibfd,var_58,var_64);
      var_61 = 0;
    }
    else {
      var_7 = var_65(ibfd,var_58,&merged_notes,var_64);
      var_147 = merged_notes;
      if (var_7 == 0) {
        var_64 = (char *)var_4(0,"warning: could not load note section",5,0);
        var_8((char *)0x0,ibfd,var_58,var_64);
        var_46(merged_notes);
        merged_notes = (type_6 *)0x0;
        var_61 = 0;
      }
      else {
        var_7 = var_66(ibfd,var_58,var_58,var_58);
        var_99 = extraout_ECX_01;
        var_161 = ibfd;
        if (0 < var_7) {
          var_161 = (type_2 *)var_50(var_7);
          var_7 = var_67(ibfd,var_58,var_161,var_45);
          var_46(var_161);
          var_99 = extraout_ECX_02;
          if (var_7 == 0) goto LAB_0001ab09;
          var_85 = (type_18 *)0x0;
          goto LAB_0001ae41;
        }
LAB_0001ab09:
        var_154 = (void *)0x30;
        var_94 = var_99;
        uVar32 = var_68(var_64,var_63,0xc,0,var_161,0x30,var_99,var_99);
        var_85 = (type_18 *)var_69(uVar32);
        var_124 = 0;
        var_111 = (char *)0x0;
        var_125 = (type_18 *)0x0;
        var_164 = (void *)0x0;
        var_82 = (type_5 **)0x0;
        var_81 = (type_18 *)0x0;
        var_78 = 0;
        var_72 = var_147;
        var_84 = var_85;
        var_71 = var_64;
        var_70 = var_63;
        while (var_70 != (type_18 *)0x0 || (type_24)-(int)var_70 < (type_24)((char *)0xb < var_71))
        {
          var_74 = (*ibfd->xvec->bfd_getx32)(var_72);
          var_75 = (char *)((int)var_74 + 3U & 0xfffffffc);
          var_84->name = var_75;
          var_74 = (*ibfd->xvec->bfd_getx32)(var_72 + 4);
          var_20 = (int)var_74 + 3U & 0xfffffffc;
          var_84->id = var_20;
          var_74 = (*ibfd->xvec->bfd_getx32)(var_72 + 8);
          var_73 = (type_24)var_74;
          var_84->index = var_73;
          if (1 < var_73 - 0x100) {
            var_64 = (char *)var_4(0,"corrupt GNU build attribute note: wrong note type",5,
                                        (int)(var_74 >> 0x20));
            goto LAB_0001ae12;
          }
          var_76 = var_75 + var_20 + 0xc;
          var_7 = (int)var_70 - (int)(type_24)(var_71 < var_76);
          if (var_70 < (type_18 *)(type_24)(var_71 < var_76)) {
            var_64 = (char *)var_4(0,"corrupt GNU build attribute note: note too big",5,var_7)
            ;
            goto LAB_0001ae12;
          }
          if (var_75 < (char *)0x2) {
            var_64 = (char *)var_4(0,"corrupt GNU build attribute note: name too small",5,
                                        var_7);
            goto LAB_0001ae12;
          }
          var_84->next = (type_12 *)(var_72 + 0xc);
          var_100 = (type_12 *)(var_72 + (int)(var_75 + 0xc));
          var_38 = var_71 < var_76;
          var_71 = var_71 + -(int)var_76;
          var_70 = (type_18 *)((int)var_70 - (type_24)var_38);
          var_84->prev = var_100;
          var_77 = var_72[0xc];
          var_91 = (type_24)var_77;
          if (var_77 == 0x24) {
            if ((var_72[0xd] == '\x01') && (var_72[0xe] == '1')) {
              var_78 = var_78 + 1;
            }
          }
          else if (((((char *)0x4 < var_75) && (var_77 == 0x47)) && (var_72[0xd] == 'A')) &&
                  ((var_72[0xe] == '$' && (var_72[0xf] == '\x01')))) {
            var_77 = var_72[0x10];
            var_91 = (type_24)var_77;
            if (var_77 == 0x32) {
              var_81 = (type_18 *)((int)var_81 + 1);
            }
            else {
              if (var_77 != 0x33) {
                var_64 = (char *)var_4(0,
                                            "corrupt GNU build attribute note: unsupported version",
                                            5,var_91);
                goto LAB_0001ae12;
              }
              var_82 = (type_5 **)((int)var_82 + 1);
            }
          }
          if (var_20 == 4) {
            var_79 = (*ibfd->xvec->bfd_getx32)(var_100);
LAB_0001ade8:
            var_80 = 0xffffffffffffffff;
          }
          else if (var_20 < 5) {
            if (var_20 != 0) {
LAB_0001ae8d:
              var_64 = (char *)var_4(0,"corrupt GNU build attribute note: bad description size"
                                          ,5,var_91);
              goto LAB_0001ae12;
            }
            var_80 = 0;
            var_79 = 0;
          }
          else if (var_20 == 8) {
            pbVar13 = ibfd->xvec;
            if ((pbVar13->flavour == var_10) &&
               (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {
              var_79 = (*pbVar13->bfd_getx64)(var_100);
              goto LAB_0001ade8;
            }
            var_79 = (*pbVar13->bfd_getx32)(var_100);
            var_80 = (*ibfd->xvec->bfd_getx32)(&var_100->id);
          }
          else {
            var_91 = var_20;
            if (var_20 != 0x10) goto LAB_0001ae8d;
            var_79 = (*ibfd->xvec->bfd_getx64)(var_100);
            var_80 = (*ibfd->xvec->bfd_getx64)(&var_100->index);
          }
          if (var_73 == 0x100) {
            var_93 = (type_18 *)(int)var_79;
            if (var_79 == 0) {
              var_93 = var_125;
            }
            var_20 = (int)var_80;
            if (var_80 == 0) {
              var_20 = var_124;
            }
            *(type_23 *)((int)&var_84->vma + 4) = 0;
            *(type_18 **)&var_84->vma = var_93;
            *(type_24 *)&var_84->lma = var_20;
            *(type_23 *)((int)&var_84->lma + 4) = 0;
            var_124 = var_20;
            var_125 = var_93;
          }
          else {
            pvVar49 = (void *)(int)var_79;
            if (var_79 == 0) {
              pvVar49 = var_164;
            }
            var_75 = (char *)(int)var_80;
            if (var_80 == 0) {
              var_75 = var_111;
            }
            *(type_23 *)((int)&var_84->vma + 4) = 0;
            *(void **)&var_84->vma = pvVar49;
            *(char **)&var_84->lma = var_75;
            *(type_23 *)((int)&var_84->lma + 4) = 0;
            var_111 = var_75;
            var_164 = pvVar49;
          }
          if (*(char *)((int)&var_84->next->name + (int)(var_84->name + -1)) != '\0') {
            var_64 = (char *)var_4(0,
                                        "corrupt GNU build attribute note: name not NUL terminated",
                                        5,var_84->name);
            goto LAB_0001ae12;
          }
          var_84 = (type_18 *)((int)&var_84->size + 4);
          var_72 = var_72 + (int)var_76;
        }
        if (var_70 == (type_18 *)0x0 && var_71 == (char *)0x0) {
          if (var_78 == 0 && (var_81 == (type_18 *)0x0 && var_82 == (type_5 **)0x0)) {
            var_64 = (char *)var_4(0,
                                        "bad GNU build attribute notes: no known versions detected",
                                        5,-(int)var_70 - (type_24)((char *)0xb < var_71));
            goto LAB_0001ae12;
          }
          if (((var_78 != 0) && (var_81 != (type_18 *)0x0 || var_82 != (type_5 **)0x0)) ||
             ((var_81 != (type_18 *)0x0 && (var_82 != (type_5 **)0x0)))) {
            var_64 = (char *)var_4(0,
                                        "bad GNU build attribute notes: multiple different versions"
                                        ,5,var_84);
            goto LAB_0001ae12;
          }
          if ((var_78 == 1 || var_81 == (type_18 *)0x1) || (var_82 == (type_5 **)0x1))
          goto LAB_0001ae41;
          var_20 = -(type_24)(var_78 == 0) & 2;
          var_7 = var_20 + 1;
          if (*(char *)((int)&var_85->next->name + var_7) != '\x01') {
            var_64 = (char *)var_4(0,
                                        "bad GNU build attribute notes: first note not version note"
                                        ,5,var_7);
            goto LAB_0001ae12;
          }
          var_38 = false;
          var_21 = var_20 + 2;
          var_100 = var_85;
LAB_0001afd1:
          var_93 = var_100;
          var_83 = (type_12 *)((int)&var_93->size + 4);
          var_100 = var_83;
          if (var_83 < var_84) {
            if (*(int *)((int)&var_93->rawsize + 4) == 0x100) {
              var_81 = (type_18 *)0x0;
              pvVar49 = *(void **)&var_93->compressed_size;
              var_83 = var_93;
              while (var_89 = var_83, var_85 <= var_83) {
                var_90 = var_83->next;
                var_86 = *(char *)((int)&var_90->name + var_7);
                paVar21 = var_81;
                if ((((var_81 != (type_18 *)0x0) || (var_83->id == 0)) ||
                    (paVar21 = var_83, var_83->index != 0x101)) &&
                   ((var_81 = paVar21, *(char *)((int)pvVar49 + var_7) == var_86 &&
                    (var_83->index == 0x100)))) {
                  var_75 = var_100->name;
                  if (var_86 != '\x04') {
                    var_76 = var_83->name;
                    if ((var_76 == var_75) &&
                       (var_88 = var_87(var_90,pvVar49,(size_t)var_76), var_154 = pvVar49,
                       var_99 = var_76, var_94 = var_75, var_88 == 0)) {
                      var_20 = *(type_24 *)((int)&var_83->lma + 4);
                      var_89 = *(type_12 **)&var_83->lma;
                      if (var_20 != 0 || var_89 != (type_12 *)0x0) {
                        var_90 = var_93->output_section;
                        var_73 = var_93->alignment_power;
                        if ((var_73 != 0 || var_90 != (type_12 *)0x0) &&
                           ((-var_20 - 1 < (type_24)((type_12 *)0xfffffff0 < var_89) ||
                            (var_91 = var_20 + ((type_12 *)0xfffffff0 < var_89),
                            var_39 = (type_24 *)((int)&var_93->output_offset + 4),
                            *var_39 <= var_91 &&
                            (type_24)(((type_24)((int)&var_89->next + 3U) & 0xfffffff0) <
                                  (type_24)var_93->output_offset) <= var_91 - *var_39)))) {
                          *(type_23 *)((int)&var_93->rawsize + 4) = 0;
                          if (var_20 < var_73 || var_20 - var_73 < (type_24)(var_89 < var_90)) {
                            *(type_12 **)&var_83->lma = var_90;
                            *(type_24 *)((int)&var_83->lma + 4) = var_73;
                          }
                          var_38 = true;
                          if (var_82 != (type_5 **)0x0) {
                            *(type_23 *)&var_83->size = 1;
                          }
                          break;
                        }
                      }
                    }
                    if (var_82 == (type_5 **)0x0) {
                      if ((((int)var_93->rawsize == 0) && (var_81 != (type_18 *)0x0)) &&
                         (var_81->index == 0)) {
                        var_81->index = 0x100;
                      }
                    }
                    else {
                      var_93->relocation = (type_10 *)0x1;
                      *(type_23 *)((int)&var_93->rawsize + 4) = 0x101;
                      *(type_23 *)&var_83->size = 1;
                      var_83->index = 0x101;
                    }
                    break;
                  }
                  var_20 = 0;
                  for (var_88 = 0; (int)var_75 - var_21 != var_88; var_88 = var_88 + 1) {
                    var_20 = var_20 | (type_24)*(type_7 *)((int)pvVar49 + var_88 + var_21) <<
                                      ((char)var_88 * '\b' & 0x1fU);
                  }
                  var_83 = (type_12 *)0x0;
                  var_75 = var_89->name;
                  var_76 = (char *)((int)&var_90->name + var_21);
                  for (var_73 = 0; (int)var_75 - var_21 != var_73; var_73 = var_73 + 1) {
                    var_83 = (type_12 *)
                               ((type_24)var_83 |
                               (type_24)(type_7)var_76[var_73] << ((char)var_73 * '\b' & 0x1fU));
                  }
                  var_92 = 0;
                  var_20 = (int)var_83 + var_20;
                  for (var_91 = var_20; var_91 != 0; var_91 = var_91 >> 8) {
                    var_92 = var_92 + 1;
                  }
                  var_96 = var_89;
                  if (var_92 < var_73) {
                    goto LAB_0001b1a6;
                  }
                }
                var_83 = (type_12 *)&var_89[-1].entsize;
              }
            }
            goto LAB_0001afd1;
          }
          if (!var_38) goto LAB_0001ae41;
          pvVar49 = (void *)var_50(var_64,var_154,var_99,var_94);
          var_97 = var_71;
          var_154 = pvVar49;
          var_96 = var_70;
          var_81 = (type_18 *)var_147;
          for (var_93 = var_85; var_93 < var_84;
              var_93 = (type_18 *)((int)&var_93->size + 4)) {
            var_94 = var_93->name;
            var_20 = var_93->index;
            var_99 = var_94 + var_93->id + 0xc;
            pvVar54 = var_154;
            if (var_20 != 0) {
              if ((int)var_93->size == 0) {
                var_95(var_154,var_81,(size_t)var_99);
                pvVar54 = (void *)((int)var_154 + (int)var_99);
              }
              else {
                pbVar1 = &var_93->vma;
                var_74 = *pbVar1;
                var_79 = *pbVar1;
                p_Var15 = ibfd->xvec->bfd_putx32;
                __dest = (void *)((int)var_154 + 0xc);
                pvVar54 = (void *)((int)__dest + (int)var_94);
                if (((*(type_18 **)((int)&var_93->vma + 4) == var_70) &&
                    (*(char **)pbVar1 == var_71)) &&
                   ((*(type_18 **)((int)&var_93->lma + 4) == var_96 &&
                    (*(char **)&var_93->lma == var_97)))) {
                  (*p_Var15)(var_98(var_94),var_154);
                  (*ibfd->xvec->bfd_putx32)(0,(void *)((int)var_154 + 4));
                  (*ibfd->xvec->bfd_putx32)((type_29)var_20,(void *)((int)var_154 + 8));
                  var_95(__dest,var_93->next,(size_t)var_94);
                }
                else {
                  (*p_Var15)(var_98(var_94),var_154);
                  var_73 = 8;
                  if ((ibfd->xvec->flavour == var_10) &&
                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {
                    var_73 = 0x10;
                  }
                  (*ibfd->xvec->bfd_putx32)((type_29)var_73,(void *)((int)var_154 + 4));
                  (*ibfd->xvec->bfd_putx32)((type_29)var_20,(void *)((int)var_154 + 8));
                  var_95(__dest,var_93->next,(size_t)var_94);
                  pbVar13 = ibfd->xvec;
                  if ((pbVar13->flavour == var_10) &&
                     (((ibfd->tdata).elf_obj_data)->elf_header[0].e_ident[4] == '\x02')) {
                    (*pbVar13->bfd_putx64)(var_79,pvVar54);
                    (*ibfd->xvec->bfd_putx64)(var_93->lma,(void *)((int)pvVar54 + 8));
                    pvVar54 = (void *)((int)pvVar54 + 0x10);
                  }
                  else {
                    (*pbVar13->bfd_putx32)(var_74,pvVar54);
                    (*ibfd->xvec->bfd_putx32)(var_93->lma,(void *)((int)pvVar54 + 4));
                    pvVar54 = (void *)((int)pvVar54 + 8);
                  }
                }
              }
              var_71 = *(char **)&var_93->vma;
              var_70 = *(type_18 **)((int)&var_93->vma + 4);
              var_97 = *(char **)&var_93->lma;
              var_96 = *(type_18 **)((int)&var_93->lma + 4);
            }
            var_81 = (type_18 *)((int)var_81 + (int)var_99);
            var_154 = pvVar54;
          }
          var_99 = (char *)((int)var_154 - (int)pvVar49);
          var_84 = (type_18 *)((int)var_99 >> 0x1f);
          in_stack_ffffff24 = (type_12 *)obfd;
          var_95(var_147,pvVar49,(size_t)var_99);
          var_46(pvVar49);
          var_46(var_85);
          var_83 = (type_12 *)obfd;
          merged_size._0_4_ = var_99;
          merged_size._4_4_ = var_84;
          if ((var_63 != var_84) || (var_64 != var_99)) {
            var_100 = var_58->output_section;
            if ((var_100 != (type_12 *)0x0) &&
               (var_100 = (type_12 *)var_59(obfd,var_100,var_99,var_84),
               var_100 != (type_12 *)0x0)) goto LAB_00018e0e;
            var_64 = (char *)var_4(0,"warning: failed to set merged notes size",5,var_100);
            var_8((char *)0x0,obfd,var_58,var_64);
          }
        }
        else {
          var_64 = (char *)var_4(0,"corrupt GNU build attribute notes: excess data at end",5,
                                      var_71);
LAB_0001ae12:
          if (var_64 != (char *)0x0) {
            var_101(0x11);
            var_8((char *)0x0,ibfd,var_58,var_64);
            status = 1;
          }
LAB_0001ae41:
          var_46(var_85);
          var_83 = (type_12 *)obfd;
        }
        var_46(merged_notes);
        merged_notes = (type_6 *)0x0;
        var_61 = 0;
        merged_size._0_4_ = (char *)0x0;
        merged_size._4_4_ = (type_18 *)0x0;
      }
    }
  }
LAB_00018e0e:
  obfd = (type_2 *)var_83;
  var_111 = var_169;
  for (var_53 = dump_sections; var_169 = var_111, var_53 != (type_15 *)0x0;
      var_53 = var_53->next) {
    var_58 = (type_18 *)var_56(ibfd,*(char **)((int)var_53 + 4));
    if (var_58 == (type_18 *)0x0) {
      var_64 = *(char **)((int)var_53 + 4);
      var_99 = (char *)var_4(0,"can\'t dump section \'%s\' - it does not exist",5);
      var_8((char *)0x0,ibfd,(type_18 *)0x0,var_99,var_64);
    }
    else {
      if ((var_58->flags & 0x100) == 0) {
        var_64 = "can\'t dump section - it has no contents";
      }
      else {
        var_102 = (size_t)var_58->size;
        var_7 = *(int *)((int)&var_58->size + 4);
        if (var_7 != 0 || var_102 != 0) {
          var_104 = var_103(*(char **)((int)var_53 + 8),"w");
          if (var_104 == (type_22 *)0x0) {
            var_64 = (char *)var_4(0,"could not open section dump file",5);
            var_8(*(char **)((int)var_53 + 8),(type_2 *)0x0,(type_18 *)0x0,var_64);
          }
          else {
            var_21 = var_105(ibfd,var_58,&contents);
            if (var_21 == 0) {
              var_64 = (char *)var_4(0,"could not retrieve section contents",5);
              var_8((char *)0x0,ibfd,var_58,var_64);
            }
            else {
              var_107 = var_106(contents,1,var_102,var_104);
              if (var_7 != 0 || var_102 != var_107) {
                var_173 = var_108();
                var_99 = var_109(*var_173);
                var_64 = *(char **)((int)var_53 + 8);
                var_94 = (char *)var_4(0,"error writing section contents to %s (error: %s)",5);
                var_5(var_94,var_64,var_99);
                var_46(contents);
                return 0;
              }
            }
            var_110(var_104);
            var_46(contents);
          }
          goto LAB_00018eb1;
        }
        var_64 = "can\'t dump section - it is empty";
      }
      var_64 = (char *)var_4(0,var_64,5);
      var_8((char *)0x0,ibfd,var_58,var_64);
    }
LAB_00018eb1:
    var_111 = var_169;
  }
  if (var_111 != (char *)0x0) {
    var_7 = var_56(var_83,".gnu_debuglink");
    if (var_7 == 0) {
      var_111 = (char *)var_112(var_83,var_169);
      var_64 = var_169;
      if (var_111 == (char *)0x0) {
        var_99 = (char *)var_4(0,"cannot create debug link section `%s\'",5,0);
        var_8((char *)0x0,(type_2 *)var_83,(type_18 *)0x0,var_99,var_64);
        return 0;
      }
      if (*(int *)(var_83->id + 4) == 2) {
        var_113 = (type_10 *)var_83->orelocation;
        var_115 = (type_10 *)0x0;
        if (var_113 == (type_10 *)0x0) {
LAB_0001aa69:
          var_20 = 0x1000;
          var_7 = 0;
        }
        else {
          do {
            var_114 = *(type_10 **)((int)&var_113[1].address + 4);
            var_117 = var_115;
            if (((var_114 != (type_10 *)0x0 ||
                  *(type_10 **)&var_113[1].address != (type_10 *)0x0) &&
                (var_117 = var_113, var_115 != (type_10 *)0x0)) &&
               (var_116 = *(type_10 **)((int)&var_115[1].address + 4), var_117 = var_115,
               var_116 < var_114 ||
               (type_24)((int)var_116 - (int)var_114) <
               (type_24)(*(type_10 **)&var_115[1].address <
                     *(type_10 **)&var_113[1].address))) {
              var_117 = var_113;
            }
            var_113 = *(type_10 **)&var_113->addend;
            var_115 = var_117;
          } while (var_113 != (type_10 *)0x0);
          if (var_117 == (type_10 *)0x0) goto LAB_0001aa69;
          var_20 = (int)&(var_117[1].howto)->type + (int)*(type_10 **)&var_117[1].address;
          var_7 = (int)&((type_10 *)var_117[2].sym_ptr_ptr)->sym_ptr_ptr +
                   (int)&(*(type_10 **)((int)&var_117[1].address + 4))->sym_ptr_ptr +
                   (type_24)var_22((type_24)var_117[1].howto,
                                (type_24)*(type_10 **)&var_117[1].address);
          if (-var_7 - 1U < (type_24)(0xfffff000 < var_20)) {
            var_20 = 0xffffffff;
            var_7 = -1;
          }
          else {
            var_7 = var_7 + (type_24)(0xfffff000 < var_20);
            var_20 = var_20 + 0xfff & 0xfffff000;
          }
        }
        *(type_24 *)(var_111 + 0x24) = var_20;
        *(int *)(var_111 + 0x28) = var_7;
        *(type_24 *)(var_111 + 0x1c) = var_20;
        *(int *)(var_111 + 0x20) = var_7;
        var_111[0x18] = var_111[0x18] | 1;
      }
    }
    else {
      var_64 = var_83->name;
      var_99 = (char *)var_4(0,"%s: debuglink section already exists",5);
      var_5(var_99,var_64);
      var_169 = (char *)0x0;
      var_111 = (char *)0x0;
    }
  }
  var_102 = (size_t)var_83->filepos;
  if ((var_102 == 0) || (var_118 == 0 && var_119 == 0)) {
    var_125 = (type_18 *)0x0;
    var_124 = 0;
    local_b4 = (void *)0x0;
    var_81 = (type_18 *)0x0;
    var_20 = var_124;
    var_58 = var_125;
  }
  else {
    var_81 = (type_18 *)var_50(var_102 * 4);
    contents = (type_6 *)var_81;
    var_52(var_83,get_sections,&contents);
    var_120(var_81,var_102,4,compare_section_lma);
    var_107 = var_102 * 8;
    local_b4 = (void *)var_50(var_107);
    var_121(local_b4,0,var_107);
    if ((var_118 == 0) || (var_102 == 1)) {
      var_125 = (type_18 *)0x0;
      var_124 = 0;
    }
    else {
      var_125 = (type_18 *)0x0;
      var_124 = 0;
      var_83 = (type_12 *)0x0;
      var_43 = (int *)var_81;
      do {
        var_83 = (type_12 *)((int)var_83 + 1);
        var_7 = *var_43;
        var_20 = var_124;
        var_58 = var_125;
        if ((*(type_24 *)(var_7 + 0x14) & 0x102) == 0x102) {
          var_73 = *(type_24 *)(var_7 + 0x2c);
          var_91 = *(type_24 *)(var_43[1] + 0x28);
          var_92 = *(type_24 *)(var_43[1] + 0x24);
          var_123 = var_73 + *(type_24 *)(var_7 + 0x24);
          var_122 = *(int *)(var_7 + 0x30) + *(int *)(var_7 + 0x28) +
                   (type_24)var_22(var_73,*(type_24 *)(var_7 + 0x24));
          if (var_122 < var_91 || var_122 - var_91 < (type_24)(var_123 < var_92)) {
            var_58 = (type_18 *)(var_92 - var_123);
            var_20 = (var_91 - var_122) - (type_24)(var_92 < var_123);
            var_7 = var_59
                               (obfd,var_7,(int)&var_58->name + var_73,
                                *(int *)(var_7 + 0x30) + var_20 +
                                (type_24)var_22(var_73,(type_24)var_58));
            if (var_7 == 0) {
              var_64 = (char *)var_4(0,"Can\'t fill gap after section",5,0);
              var_8((char *)0x0,obfd,(type_18 *)*var_43,var_64);
              status = 1;
              break;
            }
            *(type_18 **)((int)local_b4 + (int)var_83 * 8 + -8) = var_58;
            *(type_24 *)((int)local_b4 + (int)var_83 * 8 + -4) = var_20;
            if (var_20 <= var_124 && (type_24)(var_125 < var_58) <= var_124 - var_20) {
              var_20 = var_124;
              var_58 = var_125;
            }
          }
        }
        var_125 = var_58;
        var_124 = var_20;
        var_43 = var_43 + 1;
      } while ((type_12 *)(var_102 - 1) != var_83);
    }
    var_20 = var_124;
    var_58 = var_125;
    if (var_119 != 0) {
      var_7 = *(int *)((int)var_81 + (var_102 - 1) * 4);
      var_73 = *(type_24 *)(var_7 + 0x24);
      var_91 = var_73 + *(type_24 *)(var_7 + 0x2c);
      var_92 = *(int *)(var_7 + 0x28) + *(int *)(var_7 + 0x30) +
               (type_24)var_22(var_73,*(type_24 *)(var_7 + 0x2c));
      if (var_92 < pad_to._4_4_ || var_92 - pad_to._4_4_ < (type_24)(var_91 < (type_24)pad_to)) {
        var_7 = var_59
                           (obfd,var_7,(type_24)pad_to - var_73,
                            (pad_to._4_4_ - *(int *)(var_7 + 0x28)) - (type_24)((type_24)pad_to < var_73)
                           );
        if (var_7 == 0) {
          var_64 = (char *)var_4(0,"can\'t add padding",5,var_91);
          var_8
                    ((char *)0x0,obfd,*(type_18 **)((int)var_81 + (var_102 - 1) * 4),var_64);
          status = 1;
        }
        else {
          var_58 = (type_18 *)((type_24)pad_to - var_91);
          var_20 = (pad_to._4_4_ - var_92) - (type_24)((type_24)pad_to < var_91);
          *(type_18 **)((int)local_b4 + (var_107 - 8)) = var_58;
          *(type_24 *)((int)local_b4 + (var_107 - 4)) = var_20;
          if (var_20 <= var_124 && (type_24)(var_125 < var_58) <= var_124 - var_20) {
            var_20 = var_124;
            var_58 = var_125;
          }
        }
      }
    }
  }
  var_125 = var_58;
  var_124 = var_20;
  var_164 = (void *)0x0;
  if (var_126 != 0) {
    var_164 = var_127(ibfd,var_45,var_51,0);
  }
  if (var_24 - var_128 < 6) {
LAB_0001962a:
    if (var_24 != var_25) goto LAB_0001962f;
  }
  else {
    if (var_129 == 0 && var_130 == var_131) {
      var_7 = var_132(strip_specific_htab);
      if ((((((var_7 == 0) && (var_7 = var_132(keep_specific_htab), var_7 == 0)) &&
            (var_7 = var_132(localize_specific_htab), var_7 == 0)) &&
           ((var_7 = var_132(globalize_specific_htab), var_7 == 0 &&
            (var_7 = var_132(keepglobal_specific_htab), var_7 == 0)))) &&
          (var_7 = var_132(weaken_specific_htab), var_7 == 0)) &&
         (((var_7 = var_132(redefine_specific_htab), var_133 == (char *)0x0 &&
           (var_134 == (type_16 *)0x0)) &&
          (((((((var_135 == 0 && var_136 == 0) && var_126 == 0) &&
              var_137 == 0) && var_138 == 0) && var_139 == 0) &&
           var_140 == 0) && var_7 == 0)))) goto LAB_00019e4d;
      goto LAB_0001962a;
    }
LAB_0001962f:
    var_101(0);
    var_52(ibfd,mark_symbols_used_in_relocations,var_45);
    var_7 = var_141();
    if (var_7 != 0) {
      status = 1;
      return 0;
    }
  }
  var_47 = (type_5 **)var_50((var_140 + var_51) * 4 + 4);
  var_82 = var_45;
  var_20 = *(type_24 *)&ibfd->field_0x28;
  var_48 = var_47;
  if (var_51 != 0) {
    var_162 = var_45 + var_51;
    var_51 = 0;
    var_100 = (type_12 *)(var_142 + 0xc0);
    do {
      var_7 = var_140;
      paVar40 = *var_82;
      var_73 = paVar40->flags;
      var_147 = (type_6 *)paVar40->name;
      var_89 = paVar40->section;
      if (((var_143 != (type_25 *)0x0) && (0 < var_140)) &&
         (var_64 = var_143->othersym, var_64 != (char *)0x0)) {
        var_83 = (type_12 *)0x0;
        ptr = var_143;
        while (var_21 = var_144(var_64,(char *)var_147), var_21 != 0) {
          var_83 = (type_12 *)((int)var_83 + 1);
          ptr = ptr->next;
          if ((var_83 == (type_12 *)var_7) ||
             (var_64 = ptr->othersym, var_64 == (char *)0x0)) goto LAB_000197a8;
        }
        var_46(var_64);
        ptr->othersym = "";
        ppaVar3 = var_47 + var_51;
        var_51 = var_51 + 1;
        paVar36 = var_145(ptr,obfd);
        *ppaVar3 = paVar36;
      }
LAB_000197a8:
      var_7 = var_132(redefine_specific_htab);
      var_72 = var_147;
      if ((var_7 != 0) || (var_134 != (type_16 *)0x0)) {
        local_30 = 0;
        contents = var_147;
        var_7 = var_146(redefine_specific_htab,&contents);
        if (((var_7 == 0) || (var_72 = *(type_6 **)(var_7 + 4), var_147 == var_72)) &&
           (var_148 = var_134, (var_73 & 0x100) != 0)) {
          for (; var_72 = var_147, var_148 != (type_16 *)0x0; var_148 = var_148->next) {
            var_7 = var_144(var_148->old_name,(char *)var_147);
            if (var_7 == 0) {
              var_72 = (type_6 *)var_148->new_name;
              break;
            }
          }
        }
        paVar40->name = (char *)var_72;
      }
      var_64 = var_133;
      var_149 = ibfd->xvec->symbol_leading_char;
      if (*var_72 == var_149) {
        if (var_137 == 0) {
          if ((var_138 != 0) &&
             ((((var_73 & 0x82) != 0 || (var_89 == var_100)) ||
              ((paVar40->section->flags & 0x1000) != 0)))) {
            var_72 = var_72 + 1;
            paVar40->name = (char *)var_72;
          }
LAB_0001982b:
          if (var_64 != (char *)0x0) {
            var_102 = var_150(var_64);
            var_107 = var_150((char *)var_72);
            var_147 = (type_6 *)var_50(var_102 + 2 + var_107);
            var_83 = (type_12 *)var_147;
            goto LAB_00019858;
          }
        }
        else {
          var_149 = *(type_6 *)(((type_12 *)obfd)->id + 0x18);
          if (var_149 == '\0') {
            var_72 = var_72 + 1;
            paVar40->name = (char *)var_72;
            goto LAB_0001982b;
          }
          if (var_133 != (char *)0x0) {
            var_72 = var_72 + 1;
            paVar40->name = (char *)var_72;
            goto LAB_00019ab1;
          }
          *var_72 = var_149;
          paVar40->name = (char *)var_72;
        }
      }
      else {
        if (((var_137 == 0) || (*(char *)(((type_12 *)obfd)->id + 0x18) == '\0')) ||
           (var_149 != '\0')) goto LAB_0001982b;
LAB_00019ab1:
        var_102 = var_150(var_64);
        var_107 = var_150((char *)var_72);
        var_147 = (type_6 *)var_50(var_102 + 2 + var_107);
        var_83 = (type_12 *)(var_147 + 1);
        *var_147 = *(type_6 *)(((type_12 *)obfd)->id + 0x18);
LAB_00019858:
        var_64 = var_133;
        if (var_133 != (char *)0x0) {
          var_151((char *)var_83,var_133);
          var_102 = var_150(var_64);
          var_83 = (type_12 *)((int)var_83 + var_102);
        }
        var_151((char *)var_83,(char *)var_72);
        paVar40->name = (char *)var_147;
        var_72 = var_147;
      }
      if (var_24 == var_25) goto LAB_00019928;
      if ((var_73 & 0x20) == 0) {
        if (((var_73 & 0x100) == 0) || (((*paVar40->section->symbol_ptr_ptr)->flags & 0x20) == 0)) {
          if ((((var_20 >> 5 & 0x42) == 0) &&
              (((var_73 & 0x82) != 0 || ((paVar40->section->flags & 0x1000) != 0)))) ||
             (var_7 = var_152(paVar40), var_7 == 0x49)) {
LAB_00019b80:
            var_32 = var_153((char *)var_72,strip_specific_htab);
            if (var_32 == 0) goto LAB_00019910;
          }
          else if ((((var_73 & 0x82) == 0) &&
                   (var_89 != (type_12 *)(var_142 + 0xc0))) &&
                  ((paVar40->section->flags & 0x1000) == 0)) {
            if ((var_73 & 4) == 0) {
              if (((ibfd->xvec->flavour != var_35) ||
                  (var_154 = paVar40->section->used_by_bfd, var_154 == (void *)0x0)) ||
                 (*(int *)((int)var_154 + 0x2c) == 0)) {
                if ((var_24 == var_155) || (var_130 == var_156))
                goto LAB_00019928;
                if (var_130 == var_157) {
                  var_7 = var_158(ibfd,paVar40,0,0);
                  goto joined_r0x0001a753;
                }
              }
              goto LAB_00019b80;
            }
            var_7 = var_126;
            if (1 < var_24 - var_128) {
joined_r0x0001a753:
              if (var_7 == 0) goto LAB_00019b80;
            }
          }
          else if (var_24 != var_155) goto LAB_00019b80;
        }
        else {
          var_32 = var_153((char *)var_72,strip_specific_htab);
          if (var_32 != 0) {
            var_64 = (char *)var_4(0,
                                        "not stripping symbol `%s\' because it is named in a relocation"
                                        ,5,var_32);
            var_5(var_64,var_72);
            status = 1;
          }
LAB_00019910:
          var_32 = var_153((char *)var_72,strip_unneeded_htab);
          if (var_32 == 0) goto LAB_0001994f;
        }
LAB_00019928:
        if (((var_159 != 0) && ((var_73 & 0x4000) != 0)) ||
           (var_32 = var_153((char *)var_72,keep_specific_htab), var_32 != 0))
        goto LAB_0001994f;
      }
      else {
        var_32 = var_153((char *)var_72,strip_specific_htab);
        if (var_32 != 0) {
          var_64 = (char *)var_4(0,
                                      "not stripping symbol `%s\' because it is named in a relocation"
                                      ,5);
          var_5(var_64,var_72);
          status = 1;
        }
LAB_0001994f:
        var_32 = var_160((type_2 *)in_stack_ffffff24,var_96);
        if (var_32 == 0) {
          if (((var_73 & 2) != 0) &&
             ((var_139 != 0 ||
              (var_32 = var_153((char *)var_72,weaken_specific_htab), var_32 != 0)))) {
            paVar40->flags = paVar40->flags & 0xfffffffd | 0x80;
          }
          if (var_89 != (type_12 *)(var_142 + 0xc0)) {
            if (((var_73 & 0x82) != 0) &&
               (((var_32 = var_153((char *)var_72,localize_specific_htab), var_32 != 0
                 || ((var_7 = var_132(keepglobal_specific_htab), var_7 != 0 &&
                     (var_32 = var_153((char *)var_72,keepglobal_specific_htab),
                     var_32 == 0)))) ||
                ((var_129 != 0 &&
                 ((((var_161 = paVar40->the_bfd, var_161 != (type_2 *)0x0 &&
                    (var_161->xvec->flavour == var_10)) &&
                   ((var_161->tdata).aout_data != (type_30 *)0x0)) &&
                  ((*(type_7 *)((int)&paVar40[1].section + 1) & 3) - 1 < 2)))))))) {
              paVar40->flags = paVar40->flags & 0xffffff7d | 1;
            }
            if (((var_73 & 1) != 0) &&
               (var_32 = var_153((char *)var_72,globalize_specific_htab), var_32 != 0))
            {
              paVar40->flags = paVar40->flags & 0xfffffffe | 2;
            }
          }
          var_47[var_51] = paVar40;
          var_51 = var_51 + 1;
        }
      }
      var_82 = var_82 + 1;
    } while (var_162 != var_82);
  }
  var_83 = (type_12 *)var_143;
  if ((var_143 != (type_25 *)0x0) && (0 < var_140)) {
    var_7 = 0;
    do {
      var_64 = (char *)var_83->flags;
      if (var_64 == (char *)0x0) {
        paVar40 = var_145((type_25 *)var_83,obfd);
        var_47[var_51] = paVar40;
        var_51 = var_51 + 1;
      }
      else if (*var_64 != '\0') {
        var_99 = (char *)var_4(0,"\'before=%s\' not found",5,var_51);
                    /* WARNING: Subroutine does not return */
        var_163(var_99,var_64);
      }
      var_7 = var_7 + 1;
      var_83 = (type_12 *)var_83->name;
    } while (var_7 < var_140);
  }
  var_47[var_51] = (type_5 *)0x0;
  if ((var_126 != 0) && (var_164 != (void *)0x0)) {
    var_7 = ((type_23 *)((type_12 *)obfd)->id)[1];
    if ((var_7 == 2) || (var_7 == 5)) {
      var_32 = var_165
                         (obfd,var_164,&syms,(type_31 *)file_alignment,&strings,
                          (type_31 *)&contents);
      if (var_32 != 0) {
        var_7 = var_57(obfd,".stab",0x2108);
        var_21 = var_57(obfd,".stabstr",0x2108);
        if ((((var_7 == 0) || (var_21 == 0)) ||
            (var_88 = var_59(obfd,var_7,file_alignment._0_4_,file_alignment._4_4_),
            var_88 == 0)) ||
           (var_88 = var_59(obfd,var_21,contents,local_30), var_88 == 0)) {
          var_64 = "can\'t create debugging section";
        }
        else {
          *(type_23 *)(var_7 + 0x58) = 2;
          *(type_23 *)(var_21 + 0x58) = 0;
          var_7 = var_166
                             (obfd,var_7,syms,0,0,file_alignment._0_4_,file_alignment._4_4_,var_88)
          ;
          if ((var_7 != 0) &&
             (var_7 = var_166
                                 (obfd,var_21,strings,0,0,contents,local_30,extraout_ECX),
             var_7 != 0)) goto LAB_00019e4d;
          var_64 = "can\'t set debugging section contents";
          var_7 = var_21;
        }
        var_64 = (char *)var_4(0,var_64,5,var_7);
        var_8((char *)0x0,obfd,(type_18 *)0x0,var_64);
      }
    }
    else {
      uVar32 = *(type_23 *)((type_12 *)obfd)->id;
      var_64 = (char *)var_4(0,"don\'t know how to write debugging information for %s",5);
      var_8((char *)0x0,obfd,(type_18 *)0x0,var_64,uVar32);
    }
    status = 1;
    return 0;
  }
LAB_00019e4d:
  var_167(obfd,var_48,var_51);
  var_52(ibfd,copy_relocations_in_section,obfd);
  var_52(ibfd,copy_section,obfd);
  for (var_53 = add_sections; var_100 = (type_12 *)obfd, var_60 = update_sections,
      var_53 != (type_15 *)0x0; var_53 = var_53->next) {
    var_7 = var_166(obfd,var_53->section,var_53->contents,0,0,var_53->size,0);
    if (var_7 == 0) {
LAB_00019d5e:
      var_8((char *)0x0,obfd,var_53->section,(char *)0x0);
      return 0;
    }
  }
  while( true ) {
    if (var_60 == (type_15 *)0x0) {
      var_58 = (type_18 *)0x0;
      if (var_61 != 0) {
        var_58 = (type_18 *)var_56(obfd,".gnu.build.attributes");
        if (((var_58 == (type_18 *)0x0) || (var_61 == 0)) ||
           ((*(int *)(((type_12 *)obfd)->id + 4) != 5 ||
            (var_32 = var_62
                                ((type_2 *)var_58,(type_18 *)&var_58->used_by_bfd,sec_1_00),
            var_32 == 0)))) {
          if (var_168 == 0) {
            var_64 = (char *)var_4(0,"could not find any mergeable note sections",5,0);
            var_8((char *)0x0,obfd,var_58,var_64);
          }
        }
        else {
          var_7 = var_166
                             (obfd,var_58,merged_notes,0,0,(char *)merged_size,merged_size._4_4_,
                              var_32);
          if (var_7 == 0) {
            var_64 = (char *)var_4(0,"error: failed to copy merged notes into output",5,0);
            var_8((char *)0x0,obfd,var_58,var_64);
            return 0;
          }
        }
        var_46(merged_notes);
        merged_notes = (type_6 *)0x0;
        var_61 = 0;
        var_100 = (type_12 *)obfd;
      }
      if ((var_169 != (char *)0x0) &&
         (var_7 = var_170(obfd,var_111,var_169),
         var_64 = var_169, var_7 == 0)) {
        var_99 = (char *)var_4(0,"cannot fill debug link section `%s\'",5,0);
        var_8((char *)0x0,obfd,(type_18 *)0x0,var_99,var_64);
        return 0;
      }
      if (var_118 != 0 || var_119 != 0) {
        var_58 = (type_18 *)0x2000;
        if (var_124 == 0 && (type_24)((type_18 *)0x2000 < var_125) <= -var_124) {
          var_58 = var_125;
        }
        var_171 = (type_23 *)var_50(var_58);
        var_64 = (char *)((type_24)gap_fill * 0x1010101);
        if (var_58 < (type_18 *)0x4) {
          if ((var_58 != (type_18 *)0x0) &&
             (*(char *)var_171 = (char)var_64, ((type_24)var_58 & 2) != 0)) {
            *(short *)((int)var_171 + -2 + (int)var_58) = (short)var_64;
          }
        }
        else {
          *var_171 = var_64;
          *(char **)((int)(var_171 + -1) + (int)var_58) = var_64;
          var_100 = (type_12 *)((type_24)(var_171 + 1) & 0xfffffffc);
          for (var_20 = (type_24)(((int)var_171 - (int)((type_24)(var_171 + 1) & 0xfffffffc)) +
                              (int)var_58) >> 2; var_20 != 0; var_20 = var_20 - 1) {
            var_100->name = var_64;
            var_100 = (type_12 *)((int)var_100 + (type_24)bVar71 * -8 + 4);
          }
        }
        var_7 = (int)((type_12 *)obfd)->filepos;
        if (var_7 != 0) {
          var_43 = (int *)0x0;
          do {
            var_173 = var_43;
            var_100 = *(type_12 **)((int)local_b4 + (int)var_43 * 8 + 4);
            var_58 = *(type_18 **)((int)local_b4 + (int)var_43 * 8);
            if (var_100 != (type_12 *)0x0 || var_58 != (type_18 *)0x0) {
              piVar4 = (int *)((int)var_81 + var_43 * 4);
              var_43 = *(int **)((int)var_81 + var_43 * 4);
              var_83 = (type_12 *)((int)*(type_18 **)((int)var_43 + 0x2c) - (int)var_58);
              var_172 = (*(int *)((int)var_43 + 0x30) - (int)var_100) -
                         (type_24)(*(type_18 **)((int)var_43 + 0x2c) < var_58);
              while( true ) {
                var_89 = var_100;
                var_63 = var_58;
                if (var_100 != (type_12 *)0x0 ||
                    (type_24)-(int)var_100 < (type_24)((type_18 *)0x2000 < var_58)) {
                  var_63 = (type_18 *)0x2000;
                  var_89 = (type_12 *)0x0;
                }
                var_21 = var_166
                                   (obfd,var_43,var_171,var_83,var_172,var_63,var_89);
                if (var_21 == 0) {
                  var_8((char *)0x0,obfd,(type_18 *)*piVar4,(char *)0x0);
                  return 0;
                }
                var_38 = var_58 < var_63;
                var_58 = (type_18 *)((int)var_58 - (int)var_63);
                var_100 = (type_12 *)((int)var_100 + (-(type_24)var_38 - (int)var_89));
                var_38 = var_22((type_24)var_83,(type_24)var_63);
                var_83 = (type_12 *)((int)&var_63->name + (int)var_83);
                var_172 = (int)&var_89->name + (type_24)var_38 + var_172;
                if (var_100 == (type_12 *)0x0 && var_58 == (type_18 *)0x0) break;
                var_43 = *(int **)((int)var_81 + var_173 * 4);
              }
            }
            var_43 = (int *)((int)var_173 + 1);
          } while ((int *)var_7 != var_43);
        }
      }
      var_7 = (**(type_32 **)(((type_12 *)obfd)->id + 0xa8))(ibfd,obfd);
      if (var_7 == 0) {
        var_64 = (char *)var_4(0,"error copying private BFD data",5,var_100);
        var_8((char *)0x0,obfd,(type_18 *)0x0,var_64);
        return 0;
      }
      if ((var_174 != 0) &&
         (var_7 = var_175(obfd,var_174,var_58,var_58),
         uVar24 = var_174, var_7 == 0)) {
        var_64 = (char *)var_4(0,"this target does not support %lu alternative machine codes",5
                                    ,var_100);
        var_5(var_64,uVar24);
        if (*(int *)(((type_12 *)obfd)->id + 4) != 5) {
          var_64 = (char *)var_4(0,"ignoring the alternative value",5,extraout_ECX_00);
          var_5(var_64);
          return 1;
        }
        var_64 = (char *)var_4(0,"treating that number as an absolute e_machine value instead",
                                    5,uVar24);
        var_5(var_64);
        *(short *)(((type_12 *)obfd)->target_index + 0x32) = (short)var_174;
      }
      return 1;
    }
    var_100 = var_60->section->output_section;
    var_32 = var_166(obfd,var_100,var_60->contents,0,0,var_60->size,0);
    var_83 = (type_12 *)obfd;
    if (var_32 == 0) break;
    var_60 = var_60->next;
  }
LAB_00019fa0:
  var_8((char *)0x0,(type_2 *)var_83,var_100,(char *)0x0);
  return var_32;
LAB_0001b1a6:
  if ((char *)((int)&var_90->name + (int)var_75) <= var_76) goto LAB_0001b1aa;
  *var_76 = (char)var_20;
  if (var_20 == 0) goto LAB_0001b1aa;
  var_20 = var_20 >> 8;
  var_76 = var_76 + 1;
  goto LAB_0001b1a6;
LAB_0001b1aa:
  var_38 = true;
  *(type_23 *)((int)&var_93->rawsize + 4) = 0;
  goto LAB_0001afd1;
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */

int __regparm3 MASKED(void *param_1,size_t *param_2,int param_3)

{
  int *piVar1;
  char cVar2;
  byte bVar3;
  int *piVar4;
  undefined *puVar5;
  void *pvVar6;
  size_t sVar7;
  code *pcVar8;
  size_t *psVar9;
  size_t *psVar10;
  size_t *psVar11;
  int iVar12;
  undefined4 uVar13;
  undefined4 uVar14;
  FILE *__s;
  undefined4 uVar15;
  undefined4 uVar16;
  uint uVar17;
  int iVar18;
  int *piVar19;
  undefined *puVar20;
  int iVar21;
  size_t sVar22;
  size_t sVar23;
  int *piVar24;
  char *pcVar25;
  void *pvVar26;
  uint uVar27;
  size_t sVar28;
  size_t sVar29;
  undefined4 extraout_ECX;
  undefined4 extraout_ECX_00;
  size_t extraout_ECX_01;
  size_t extraout_ECX_02;
  size_t sVar30;
  int iVar31;
  void *pvVar32;
  uint uVar33;
  int *piVar34;
  undefined4 *puVar35;
  byte *pbVar36;
  uint uVar37;
  size_t *psVar38;
  uint uVar39;
  uint uVar40;
  byte *pbVar41;
  undefined4 *puVar42;
  size_t *psVar43;
  uint uVar44;
  undefined1 *puVar45;
  bool bVar46;
  bool bVar47;
  byte bVar48;
  undefined8 uVar49;
  longlong lVar50;
  longlong lVar51;
  void *pvVar52;
  size_t sVar53;
  void *__dest;
  size_t sVar54;
  size_t sVar55;
  uint local_bc;
  uint local_b8;
  void *local_b4;
  size_t *local_a8;
  int local_a4;
  int local_8c;
  int *local_84;
  uint local_7c;
  uint local_78;
  size_t *local_74;
  size_t *local_6c;
  int local_68;
  int *local_64;
  undefined4 local_54;
  undefined4 local_50;
  undefined4 local_4c;
  undefined4 local_48;
  int *local_34;
  undefined4 local_30;
  undefined4 uStack_14;
  
  bVar48 = 0;
  uStack_14 = 0x1892b;
  iVar12 = *(int *)(*(int *)((int)param_1 + 4) + 8);
  if ((iVar12 != *(int *)(((int *)param_2)[1] + 8) && iVar12 != 2) &&
     (*(int *)(((int *)param_2)[1] + 8) != 2)) {
    uVar13 = dcgettext(0,"Unable to change endianness of input file(s)",5);
    FUN_0002c910(uVar13);
    return 0;
  }
  iVar12 = bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7);
  if (iVar12 == 0) {
    FUN_0002d3a0(0,param_2,0,0);
    return 0;
  }
  if (*(int *)((int)param_1 + 0x60) == 0) {
    uVar13 = FUN_0002d2a0(param_1);
    pcVar25 = "error: the input file \'%s\' has no sections";
    goto LAB_00018f38;
  }
  if ((*(undefined4 **)((int)param_1 + 4))[1] != 5) {
    if ((DAT_00040b44 != 1) && ((DAT_00040b44 & 1) != 0)) {
      uVar13 = FUN_0002d2a0(param_1);
      pcVar25 = "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s\'";
LAB_00018f38:
      uVar14 = dcgettext(0,pcVar25,5);
      FUN_0002c910(uVar14,uVar13);
      return 0;
    }
    if (DAT_00040b40 != 0) {
      uVar13 = FUN_0002d2a0(param_1);
      pcVar25 = "--elf-stt-common=[yes|no] is unsupported on `%s\'";
      goto LAB_00018f38;
    }
  }
  if (DAT_00040bd0 != 0) {
    uVar13 = **(undefined4 **)((int)param_1 + 4);
    uVar14 = *(undefined4 *)((int *)param_2)[1];
    iVar12 = *param_2;
    uVar15 = FUN_0002d2a0(param_1);
    pcVar25 = (char *)dcgettext(0,"copy from `%s\' [%s] to `%s\' [%s]\n",5);
    printf(pcVar25,uVar15,uVar13,iVar12,uVar14);
  }
  iVar12 = 0;
  iVar31 = 0;
  if (DAT_00040aec == 0) {
    uVar39 = DAT_00040b88;
    iVar31 = DAT_00040b8c;
    if (DAT_00040b90 == 0) {
      uVar39 = *(uint *)((int)param_1 + 0x70);
      iVar31 = *(int *)((int)param_1 + 0x74);
    }
    iVar12 = uVar39 + DAT_00040b98;
    iVar31 = iVar31 + DAT_00040b9c + (uint)CARRY4(uVar39,DAT_00040b98);
  }
  if ((*(byte *)((int *)param_2 + 10) & 7) != 3) {
    uVar39 = ~DAT_00040b5c & *(uint *)(((int *)param_2)[1] + 0x10) &
             (*(uint *)((int)param_1 + 0x28) >> 5 & 0xfffff | DAT_00040b60);
    if (DAT_00040bb0 == 7) {
      uVar39 = uVar39 & 0xfffffffe;
    }
    iVar12 = bfd_set_start_address(param_2,iVar12,iVar31);
    if ((iVar12 == 0) || (iVar12 = bfd_set_file_flags(param_2,uVar39), iVar12 == 0))
    goto LAB_00018b70;
  }
  uVar13 = bfd_get_arch(param_1);
  uVar14 = bfd_get_mach(param_1);
  if (param_3 != 0) {
    iVar12 = bfd_get_arch_info(param_1);
    if ((iVar12 == 0) || (iVar12 = bfd_get_arch_info(param_1), *(int *)(iVar12 + 0xc) == 0)) {
      uVar13 = *(undefined4 *)(param_3 + 0xc);
      uVar14 = *(undefined4 *)(param_3 + 0x10);
    }
    else {
      uVar15 = FUN_0002d2a0(param_1);
      uVar16 = dcgettext(0,"Input file `%s\' ignores binary architecture parameter.",5);
      FUN_0002c910(uVar16,uVar15);
    }
  }
  iVar12 = (**(code **)(((int *)param_2)[1] + 0x154))(param_2,uVar13,uVar14);
  if (iVar12 == 0) {
    if ((*(byte *)((int)param_1 + 0x2b) & 4) != 0) {
LAB_00018b20:
      iVar12 = bfd_get_arch(param_1);
      if (iVar12 == 0) {
        uVar13 = FUN_0002d2a0(param_1);
        pcVar25 = "Unable to recognise the format of the input file `%s\'";
      }
      else {
        uVar13 = bfd_get_mach(param_1);
        uVar14 = bfd_get_arch(param_1);
        uVar13 = bfd_printable_arch_mach(uVar14,uVar13);
        pcVar25 = "Output file cannot represent architecture `%s\'";
      }
      uVar14 = dcgettext(0,pcVar25,5);
      FUN_0002c910(uVar14,uVar13);
      return 0;
    }
    iVar12 = bfd_get_arch(param_1);
    iVar31 = bfd_get_arch(param_2);
    if (iVar12 != iVar31) goto LAB_00018b20;
  }
  iVar12 = bfd_set_format(param_2,*(byte *)((int)param_1 + 0x28) & 7);
  if (iVar12 == 0) {
LAB_00018b70:
    FUN_0002d3a0(0,param_1,0,0);
    return 0;
  }
  uVar39 = ((undefined4 *)((int *)param_2)[1])[1];
  bVar46 = uVar39 < 2;
  bVar47 = uVar39 == 2;
  if (bVar47) {
    iVar12 = 4;
    pbVar36 = *(byte **)((int *)param_2)[1];
    pbVar41 = &DAT_0002f16a;
    do {
      if (iVar12 == 0) break;
      iVar12 = iVar12 + -1;
      bVar46 = *pbVar36 < *pbVar41;
      bVar47 = *pbVar36 == *pbVar41;
      pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;
      pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;
    } while (bVar47);
    if ((!bVar46 && !bVar47) == bVar46) {
      iVar12 = ((int *)param_2)[0x28];
      uVar39 = (*(undefined4 **)((int)param_1 + 4))[1];
      bVar46 = uVar39 < 2;
      bVar47 = uVar39 == 2;
      if (bVar47) {
        iVar31 = 4;
        pbVar36 = (byte *)**(undefined4 **)((int)param_1 + 4);
        pbVar41 = &DAT_0002f16a;
        do {
          if (iVar31 == 0) break;
          iVar31 = iVar31 + -1;
          bVar46 = *pbVar36 < *pbVar41;
          bVar47 = *pbVar36 == *pbVar41;
          pbVar36 = pbVar36 + (uint)bVar48 * -2 + 1;
          pbVar41 = pbVar41 + (uint)bVar48 * -2 + 1;
        } while (bVar47);
        if ((!bVar46 && !bVar47) == bVar46) {
          puVar35 = (undefined4 *)(*(int *)((int)param_1 + 0xa0) + 0x7c);
          puVar42 = (undefined4 *)(iVar12 + 0x7c);
          for (iVar31 = 0x52; iVar31 != 0; iVar31 = iVar31 + -1) {
            *puVar42 = *puVar35;
            puVar35 = puVar35 + (uint)bVar48 * -2 + 1;
            puVar42 = puVar42 + (uint)bVar48 * -2 + 1;
          }
        }
      }
      uVar39 = DAT_000402b4;
      if ((DAT_000402b4 & DAT_000402b0) == 0xffffffff) {
        DAT_000402b0 = 0x200;
        DAT_000402b4 = 0;
      }
      else {
        *(uint *)(iVar12 + 0xb4) = DAT_000402b0;
        *(uint *)(iVar12 + 0xb8) = uVar39;
      }
      uVar39 = DAT_000402ac;
      if ((DAT_000402ac & DAT_000402a8) != 0xffffffff) {
        *(uint *)(iVar12 + 0xf4) = DAT_000402a8;
        *(uint *)(iVar12 + 0xf8) = uVar39;
      }
      uVar39 = DAT_000402a4;
      if ((DAT_000402a4 & DAT_000402a0) != 0xffffffff) {
        *(uint *)(iVar12 + 0xf4) = DAT_000402a0;
        *(uint *)(iVar12 + 0xf8) = uVar39;
      }
      uVar39 = DAT_0004029c;
      if ((DAT_0004029c & DAT_00040298) != 0xffffffff) {
        *(uint *)(iVar12 + 0xa4) = DAT_00040298;
        *(uint *)(iVar12 + 0xa8) = uVar39;
      }
      uVar39 = DAT_00040294;
      local_64 = (int *)DAT_00040290;
      if ((DAT_00040290 & DAT_00040294) == 0xffffffff) {
        DAT_00040290 = 0x1000;
        uVar39 = 0;
        DAT_00040294 = 0;
        local_64 = (int *)0x1000;
      }
      else {
        *(uint *)(iVar12 + 0xac) = DAT_00040290;
        *(uint *)(iVar12 + 0xb0) = uVar39;
      }
      uVar17 = DAT_0004028c;
      if ((DAT_0004028c & DAT_00040288) != 0xffffffff) {
        *(uint *)(iVar12 + 0xe4) = DAT_00040288;
        *(uint *)(iVar12 + 0xe8) = uVar17;
      }
      uVar17 = DAT_00040284;
      if ((DAT_00040284 & DAT_00040280) != 0xffffffff) {
        *(uint *)(iVar12 + 0xe4) = DAT_00040280;
        *(uint *)(iVar12 + 0xe8) = uVar17;
      }
      if (DAT_0004027c != -1) {
        *(short *)(iVar12 + 0xd8) = DAT_0004027c;
      }
      if (DAT_0004027a != -1) {
        *(short *)(iVar12 + 0xc4) = DAT_0004027a;
      }
      if (DAT_00040278 != -1) {
        *(short *)(iVar12 + 0xc6) = DAT_00040278;
      }
      if (uVar39 < DAT_000402b4 || uVar39 - DAT_000402b4 < (uint)(local_64 < DAT_000402b0)) {
        sprintf((char *)&local_4c,"%016llx",DAT_000402b0,DAT_000402b4);
        sprintf((char *)&local_34,"%016llx",DAT_00040290,DAT_00040294);
        uVar13 = dcgettext(0,"warning: file alignment (0x%s) > section alignment (0x%s)",5);
        FUN_0002c910(uVar13,&local_4c,&local_34);
      }
    }
  }
  piVar19 = DAT_00040bdc;
  if (DAT_00040bdc != (int *)0x0) {
    free(DAT_00040bdc);
  }
  if (piVar19 != DAT_00040bd8) {
    free(DAT_00040bd8);
  }
  DAT_00040bdc = (int *)0x0;
  DAT_00040bd8 = (int *)0x0;
  iVar12 = (**(code **)(*(int *)((int)param_1 + 4) + 0x104))(param_1);
  if (iVar12 < 0) goto LAB_00018b70;
  DAT_00040bd8 = (int *)xmalloc(iVar12);
  DAT_00040bdc = DAT_00040bd8;
  local_8c = (**(code **)(*(int *)((int)param_1 + 4) + 0x108))(param_1,DAT_00040bd8);
  if (local_8c < 0) goto LAB_00018b70;
  if (local_8c == 0) {
    free(DAT_00040bdc);
    DAT_00040bdc = (int *)0x0;
    DAT_00040bd8 = (int *)0x0;
  }
  bfd_map_over_sections(param_1,FUN_00017af0,param_2);
  puVar35 = DAT_00040b58;
  if ((DAT_00040aec == 0) &&
     (iVar12 = (**(code **)(((int *)param_2)[1] + 0xbc))(param_1,param_2), puVar35 = DAT_00040b58,
     iVar12 == 0)) {
    DAT_00040bc8 = 1;
    uVar13 = dcgettext(0,"error in private header data",5);
    FUN_0002d3a0(0,param_1,0,uVar13);
    puVar35 = DAT_00040b58;
  }
  for (; puVar42 = DAT_00040b54, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)*puVar35) {
    uVar39 = 0x128;
    iVar12 = FUN_00016a30();
    if (iVar12 != 0) {
      uVar39 = *(uint *)(iVar12 + 0x20) | 0x100;
    }
    iVar12 = bfd_get_section_by_name(param_2,puVar35[1]);
    if (iVar12 != 0) {
      uVar13 = puVar35[1];
      pcVar25 = "can\'t add section \'%s\'";
LAB_00019591:
      uVar14 = dcgettext(0,pcVar25,5);
      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);
      return 0;
    }
    iVar12 = bfd_make_section_with_flags(param_2,puVar35[1],uVar39 | 0x100000);
    puVar35[5] = iVar12;
    if (iVar12 == 0) {
      uVar13 = puVar35[1];
      pcVar25 = "can\'t create section `%s\'";
      goto LAB_00019591;
    }
    iVar12 = bfd_set_section_size(param_2,iVar12,puVar35[3],0);
    if (iVar12 == 0) goto LAB_00019d5e;
    iVar12 = FUN_00016a30();
    if (iVar12 != 0) {
      iVar31 = puVar35[5];
      uVar13 = *(undefined4 *)(iVar12 + 0x14);
      uVar14 = *(undefined4 *)(iVar12 + 0x10);
      *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;
      *(undefined4 *)(iVar31 + 0x24) = uVar14;
      *(undefined4 *)(iVar31 + 0x28) = uVar13;
      *(undefined4 *)(iVar31 + 0x1c) = uVar14;
      *(undefined4 *)(iVar31 + 0x20) = uVar13;
    }
    iVar12 = FUN_00016a30();
    if (iVar12 != 0) {
      iVar31 = puVar35[5];
      uVar13 = *(undefined4 *)(iVar12 + 0x18);
      *(undefined4 *)(iVar31 + 0x28) = *(undefined4 *)(iVar12 + 0x1c);
      *(undefined4 *)(iVar31 + 0x24) = uVar13;
    }
  }
  for (; local_6c = param_2, puVar42 != (undefined4 *)0x0; puVar42 = (undefined4 *)*puVar42) {
    iVar12 = bfd_get_section_by_name(param_1,puVar42[1]);
    puVar42[5] = iVar12;
    if (iVar12 == 0) {
      uVar13 = puVar42[1];
      pcVar25 = "error: %s not found, can\'t be updated";
      goto LAB_00018f38;
    }
    psVar43 = *(size_t **)(iVar12 + 0x54);
    iVar12 = bfd_set_section_size(param_2,psVar43,puVar42[3],0);
    if (iVar12 == 0) goto LAB_00019fa0;
  }
  if ((((DAT_00040bc4 != 0) &&
       (iVar12 = bfd_get_section_by_name(param_1,".gnu.build.attributes"), iVar12 != 0)) &&
      (DAT_00040bc4 != 0)) &&
     ((*(int *)(*(int *)((int)param_1 + 4) + 4) == 5 && (iVar31 = FUN_000176d0(), iVar31 != 0)))) {
    uVar39 = *(uint *)(iVar12 + 0x30);
    sVar22 = *(size_t *)(iVar12 + 0x2c);
    if (uVar39 == 0 && sVar22 == 0) {
      uVar13 = dcgettext(0,"warning: note section is empty",5,sVar22);
      FUN_0002d3a0(0,param_1,iVar12,uVar13);
      DAT_00040bc4 = 0;
    }
    else {
      iVar31 = bfd_get_full_section_contents(param_1,iVar12,&DAT_00040bc0,sVar22);
      pvVar6 = DAT_00040bc0;
      if (iVar31 == 0) {
        uVar13 = dcgettext(0,"warning: could not load note section",5,0);
        FUN_0002d3a0(0,param_1,iVar12,uVar13);
        free(DAT_00040bc0);
        DAT_00040bc0 = (void *)0x0;
        DAT_00040bc4 = 0;
      }
      else {
        iVar31 = bfd_get_reloc_upper_bound(param_1,iVar12,iVar12,iVar12);
        sVar23 = extraout_ECX_01;
        pvVar26 = param_1;
        if (0 < iVar31) {
          pvVar26 = (void *)xmalloc(iVar31);
          iVar31 = bfd_canonicalize_reloc(param_1,iVar12,pvVar26,DAT_00040bdc);
          free(pvVar26);
          sVar23 = extraout_ECX_02;
          if (iVar31 == 0) goto LAB_0001ab09;
          local_74 = (size_t *)0x0;
          goto LAB_0001ae41;
        }
LAB_0001ab09:
        pvVar52 = (void *)0x30;
        sVar53 = sVar23;
        uVar13 = FUN_0002e730(sVar22,uVar39,0xc,0,pvVar26,0x30,sVar23,sVar23);
        local_74 = (size_t *)xcalloc(uVar13);
        local_bc = 0;
        sVar54 = 0;
        local_b8 = 0;
        sVar55 = 0;
        local_84 = (int *)0x0;
        local_a8 = (size_t *)0x0;
        local_a4 = 0;
        pvVar26 = pvVar6;
        psVar43 = local_74;
        local_7c = sVar22;
        local_78 = uVar39;
        while (local_78 != 0 || -local_78 < (uint)(0xb < local_7c)) {
          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(pvVar26);
          uVar17 = iVar31 + 3U & 0xfffffffc;
          *psVar43 = uVar17;
          iVar31 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 4);
          uVar27 = iVar31 + 3U & 0xfffffffc;
          psVar43[1] = uVar27;
          uVar49 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))((int)pvVar26 + 8);
          sVar30 = (size_t)uVar49;
          psVar43[2] = sVar30;
          if (1 < sVar30 - 0x100) {
            iVar31 = dcgettext(0,"corrupt GNU build attribute note: wrong note type",5,
                               (int)((ulonglong)uVar49 >> 0x20));
            goto LAB_0001ae12;
          }
          uVar37 = uVar17 + 0xc + uVar27;
          iVar31 = local_78 - (local_7c < uVar37);
          if (local_78 < (local_7c < uVar37)) {
            iVar31 = dcgettext(0,"corrupt GNU build attribute note: note too big",5,iVar31);
            goto LAB_0001ae12;
          }
          if (uVar17 < 2) {
            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name too small",5,iVar31);
            goto LAB_0001ae12;
          }
          psVar43[3] = (int)pvVar26 + 0xc;
          sVar28 = (int)pvVar26 + uVar17 + 0xc;
          bVar46 = local_7c < uVar37;
          local_7c = local_7c - uVar37;
          local_78 = local_78 - bVar46;
          psVar43[4] = sVar28;
          bVar3 = *(byte *)((int)pvVar26 + 0xc);
          uVar44 = (uint)bVar3;
          if (bVar3 == 0x24) {
            if ((*(char *)((int)pvVar26 + 0xd) == '\x01') && (*(char *)((int)pvVar26 + 0xe) == '1'))
            {
              local_a4 = local_a4 + 1;
            }
          }
          else if ((((4 < uVar17) && (bVar3 == 0x47)) && (*(char *)((int)pvVar26 + 0xd) == 'A')) &&
                  ((*(char *)((int)pvVar26 + 0xe) == '$' &&
                   (*(char *)((int)pvVar26 + 0xf) == '\x01')))) {
            bVar3 = *(byte *)((int)pvVar26 + 0x10);
            uVar44 = (uint)bVar3;
            if (bVar3 == 0x32) {
              local_a8 = (size_t *)((int)local_a8 + 1);
            }
            else {
              if (bVar3 != 0x33) {
                iVar31 = dcgettext(0,"corrupt GNU build attribute note: unsupported version",5,
                                   uVar44);
                goto LAB_0001ae12;
              }
              local_84 = (int *)((int)local_84 + 1);
            }
          }
          if (uVar27 == 4) {
            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28);
LAB_0001ade8:
            lVar51 = -1;
          }
          else if (uVar27 < 5) {
            if (uVar27 != 0) {
LAB_0001ae8d:
              iVar31 = dcgettext(0,"corrupt GNU build attribute note: bad description size",5,uVar44
                                );
              goto LAB_0001ae12;
            }
            lVar51 = 0;
            lVar50 = 0;
          }
          else if (uVar27 == 8) {
            iVar31 = *(int *)((int)param_1 + 4);
            if ((*(int *)(iVar31 + 4) == 5) &&
               (*(char *)(*(int *)((int)param_1 + 0xa0) + 4) == '\x02')) {
              lVar50 = (**(code **)(iVar31 + 0x1c))(sVar28);
              goto LAB_0001ade8;
            }
            lVar50 = (**(code **)(iVar31 + 0x28))(sVar28);
            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x28))(sVar28 + 4);
          }
          else {
            uVar44 = uVar27;
            if (uVar27 != 0x10) goto LAB_0001ae8d;
            lVar50 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28);
            lVar51 = (**(code **)(*(int *)((int)param_1 + 4) + 0x1c))(sVar28 + 8);
          }
          if (sVar30 == 0x100) {
            sVar30 = (size_t)lVar50;
            if (lVar50 == 0) {
              sVar30 = local_b8;
            }
            sVar28 = (size_t)lVar51;
            if (lVar51 == 0) {
              sVar28 = local_bc;
            }
            psVar43[8] = 0;
            psVar43[7] = sVar30;
            psVar43[9] = sVar28;
            psVar43[10] = 0;
            local_bc = sVar28;
            local_b8 = sVar30;
          }
          else {
            sVar30 = (size_t)lVar50;
            if (lVar50 == 0) {
              sVar30 = sVar55;
            }
            sVar55 = (size_t)lVar51;
            if (lVar51 == 0) {
              sVar55 = sVar54;
            }
            psVar43[8] = 0;
            psVar43[7] = sVar30;
            psVar43[9] = sVar55;
            psVar43[10] = 0;
            sVar54 = sVar55;
            sVar55 = sVar30;
          }
          if (*(char *)((psVar43[3] - 1) + *psVar43) != '\0') {
            iVar31 = dcgettext(0,"corrupt GNU build attribute note: name not NUL terminated",5,
                               *psVar43);
            goto LAB_0001ae12;
          }
          psVar43 = psVar43 + 0xc;
          pvVar26 = (void *)(uVar37 + (int)pvVar26);
        }
        if (local_78 == 0 && local_7c == 0) {
          if (local_a4 == 0 && (local_a8 == (size_t *)0x0 && local_84 == (int *)0x0)) {
            iVar31 = dcgettext(0,"bad GNU build attribute notes: no known versions detected",5,
                               -local_78 - (uint)(0xb < local_7c));
            goto LAB_0001ae12;
          }
          if (((local_a4 != 0) && (local_a8 != (size_t *)0x0 || local_84 != (int *)0x0)) ||
             ((local_a8 != (size_t *)0x0 && (local_84 != (int *)0x0)))) {
            iVar31 = dcgettext(0,"bad GNU build attribute notes: multiple different versions",5,
                               psVar43);
            goto LAB_0001ae12;
          }
          if ((local_a4 == 1 || local_a8 == (size_t *)0x1) || (local_84 == (int *)0x1))
          goto LAB_0001ae41;
          uVar17 = -(uint)(local_a4 == 0) & 2;
          iVar31 = uVar17 + 1;
          if (*(char *)(local_74[3] + iVar31) != '\x01') {
            iVar31 = dcgettext(0,"bad GNU build attribute notes: first note not version note",5,
                               iVar31);
            goto LAB_0001ae12;
          }
          bVar46 = false;
          iVar18 = uVar17 + 2;
          psVar38 = local_74;
LAB_0001afd1:
          psVar9 = psVar38;
          local_6c = psVar9 + 0xc;
          psVar38 = local_6c;
          if (local_6c < psVar43) {
            if (psVar9[0xe] == 0x100) {
              local_a8 = (size_t *)0x0;
              pvVar26 = (void *)psVar9[0xf];
              local_6c = psVar9;
              while (psVar10 = local_6c, local_74 <= local_6c) {
                pvVar32 = (void *)local_6c[3];
                psVar11 = local_a8;
                if ((((local_a8 != (size_t *)0x0) || (local_6c[1] == 0)) ||
                    (psVar11 = local_6c, local_6c[2] != 0x101)) &&
                   ((local_a8 = psVar11,
                    *(char *)((int)pvVar26 + iVar31) == *(char *)((int)pvVar32 + iVar31) &&
                    (local_6c[2] == 0x100)))) {
                  sVar54 = *psVar38;
                  if (*(char *)((int)pvVar32 + iVar31) != '\x04') {
                    sVar55 = *local_6c;
                    if ((sVar55 == sVar54) &&
                       (iVar21 = memcmp(pvVar32,pvVar26,sVar55), pvVar52 = pvVar26, sVar23 = sVar55,
                       sVar53 = sVar54, iVar21 == 0)) {
                      uVar17 = local_6c[10];
                      uVar27 = local_6c[9];
                      if (uVar17 != 0 || uVar27 != 0) {
                        uVar37 = psVar9[0x15];
                        uVar44 = psVar9[0x16];
                        if ((uVar44 != 0 || uVar37 != 0) &&
                           ((-uVar17 - 1 < (uint)(0xfffffff0 < uVar27) ||
                            (uVar33 = uVar17 + (0xfffffff0 < uVar27),
                            psVar9[0x14] <= uVar33 &&
                            (uint)((uVar27 + 0xf & 0xfffffff0) < psVar9[0x13]) <=
                            uVar33 - psVar9[0x14])))) {
                          psVar9[0xe] = 0;
                          if (uVar17 < uVar44 || uVar17 - uVar44 < (uint)(uVar27 < uVar37)) {
                            local_6c[9] = uVar37;
                            local_6c[10] = uVar44;
                          }
                          bVar46 = true;
                          if (local_84 != (int *)0x0) {
                            local_6c[0xb] = 1;
                          }
                          break;
                        }
                      }
                    }
                    if (local_84 == (int *)0x0) {
                      if (((psVar9[0xd] == 0) && (local_a8 != (size_t *)0x0)) && (local_a8[2] == 0))
                      {
                        local_a8[2] = 0x100;
                      }
                    }
                    else {
                      psVar9[0x17] = 1;
                      psVar9[0xe] = 0x101;
                      local_6c[0xb] = 1;
                      local_6c[2] = 0x101;
                    }
                    break;
                  }
                  uVar17 = 0;
                  for (iVar21 = 0; sVar54 - iVar18 != iVar21; iVar21 = iVar21 + 1) {
                    uVar17 = uVar17 | (uint)*(byte *)((int)pvVar26 + iVar21 + iVar18) <<
                                      ((char)iVar21 * '\b' & 0x1fU);
                  }
                  local_6c = (size_t *)0x0;
                  sVar54 = *psVar10;
                  for (uVar27 = 0; sVar54 - iVar18 != uVar27; uVar27 = uVar27 + 1) {
                    local_6c = (size_t *)
                               ((uint)local_6c |
                               (uint)(byte)((undefined1 *)((int)pvVar32 + iVar18))[uVar27] <<
                               ((char)uVar27 * '\b' & 0x1fU));
                  }
                  uVar44 = 0;
                  uVar17 = (int)local_6c + uVar17;
                  for (uVar37 = uVar17; uVar37 != 0; uVar37 = uVar37 >> 8) {
                    uVar44 = uVar44 + 1;
                  }
                  if (uVar44 < uVar27) {
                    puVar45 = (undefined1 *)((int)pvVar32 + iVar18);
                    goto LAB_0001b1a6;
                  }
                }
                local_6c = psVar10 + -0xc;
              }
            }
            goto LAB_0001afd1;
          }
          local_6c = param_2;
          if (!bVar46) goto LAB_0001ae41;
          pvVar52 = (void *)xmalloc(sVar22,pvVar52,sVar23,sVar53);
          pvVar26 = pvVar52;
          sVar53 = local_78;
          sVar23 = local_7c;
          local_a8 = (size_t *)pvVar6;
          for (psVar38 = local_74; psVar38 < psVar43; psVar38 = psVar38 + 0xc) {
            sVar55 = *psVar38;
            sVar30 = psVar38[2];
            sVar54 = sVar55 + psVar38[1] + 0xc;
            pvVar32 = pvVar26;
            if (sVar30 != 0) {
              if (psVar38[0xb] == 0) {
                memcpy(pvVar26,local_a8,sVar54);
                pvVar32 = (void *)((int)pvVar26 + sVar54);
              }
              else {
                sVar28 = psVar38[8];
                sVar7 = psVar38[7];
                uVar13 = 0;
                pcVar8 = *(code **)(*(int *)((int)param_1 + 4) + 0x30);
                iVar31 = (int)pvVar26 + 4;
                iVar18 = (int)pvVar26 + 8;
                __dest = (void *)((int)pvVar26 + 0xc);
                pvVar32 = (void *)((int)__dest + sVar55);
                sVar29 = sVar28;
                if (((sVar28 == local_78) && (sVar29 = local_7c, sVar7 == local_7c)) &&
                   ((sVar29 = sVar53, psVar38[10] == sVar53 &&
                    (sVar29 = sVar23, psVar38[9] == sVar23)))) {
                  (*pcVar8)(sVar55,0,pvVar26,sVar23,param_2,sVar53,sVar30,0,sVar23,__dest,iVar31,
                            iVar18);
                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(0,0,iVar31);
                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);
                  memcpy(__dest,(void *)psVar38[3],sVar55);
                }
                else {
                  (*pcVar8)(sVar55,0,pvVar26,sVar29);
                  uVar14 = 8;
                  iVar21 = *(int *)((int)param_1 + 4);
                  puVar35 = (undefined4 *)(iVar21 + 0x30);
                  if ((*(int *)(iVar21 + 4) == 5) &&
                     (iVar21 = *(int *)((int)param_1 + 0xa0), *(char *)(iVar21 + 4) == '\x02')) {
                    uVar14 = 0x10;
                  }
                  (*(code *)*puVar35)(uVar14,0,iVar31,iVar21);
                  (**(code **)(*(int *)((int)param_1 + 4) + 0x30))(sVar30,uVar13,iVar18);
                  memcpy(__dest,(void *)psVar38[3],sVar55);
                  iVar31 = *(int *)((int)param_1 + 4);
                  pvVar26 = pvVar32;
                  if ((*(int *)(iVar31 + 4) == 5) &&
                     (pvVar26 = *(void **)((int)param_1 + 0xa0),
                     *(char *)((int)pvVar26 + 4) == '\x02')) {
                    (**(code **)(iVar31 + 0x24))(sVar7,sVar28,pvVar32,param_1);
                    (**(code **)(*(int *)((int)param_1 + 4) + 0x24))
                              (psVar38[9],psVar38[10],(void *)((int)pvVar32 + 8));
                    pvVar32 = (void *)((int)pvVar32 + 0x10);
                  }
                  else {
                    (**(code **)(iVar31 + 0x30))(sVar7,sVar28,pvVar32,pvVar26);
                    (**(code **)(*(int *)((int)param_1 + 4) + 0x30))
                              (psVar38[9],psVar38[10],(int)pvVar32 + 4);
                    pvVar32 = (void *)((int)pvVar32 + 8);
                  }
                }
              }
              local_7c = psVar38[7];
              local_78 = psVar38[8];
              sVar23 = psVar38[9];
              sVar53 = psVar38[10];
            }
            local_a8 = (size_t *)((int)local_a8 + sVar54);
            pvVar26 = pvVar32;
          }
          sVar23 = (int)pvVar26 - (int)pvVar52;
          uVar17 = (int)sVar23 >> 0x1f;
          memcpy(pvVar6,pvVar52,sVar23);
          free(pvVar52);
          free(local_74);
          local_6c = param_2;
          DAT_00040bb8 = sVar23;
          DAT_00040bbc = uVar17;
          if ((uVar39 != uVar17) || (sVar22 != sVar23)) {
            iVar31 = *(int *)(iVar12 + 0x54);
            if ((iVar31 != 0) &&
               (iVar31 = bfd_set_section_size(param_2,iVar31,sVar23,uVar17), iVar31 != 0))
            goto LAB_00018e0e;
            uVar13 = dcgettext(0,"warning: failed to set merged notes size",5,iVar31);
            FUN_0002d3a0(0,param_2,iVar12,uVar13);
          }
        }
        else {
          iVar31 = dcgettext(0,"corrupt GNU build attribute notes: excess data at end",5,local_7c);
LAB_0001ae12:
          if (iVar31 != 0) {
            bfd_set_error(0x11);
            FUN_0002d3a0(0,param_1,iVar12,iVar31);
            DAT_00040bc8 = 1;
          }
LAB_0001ae41:
          free(local_74);
        }
        free(DAT_00040bc0);
        DAT_00040bc0 = (void *)0x0;
        DAT_00040bc4 = 0;
        DAT_00040bb8 = 0;
        DAT_00040bbc = 0;
      }
    }
  }
LAB_00018e0e:
  param_2 = local_6c;
  iVar31 = DAT_00040b4c;
  for (puVar35 = DAT_00040b50; DAT_00040b4c = iVar31, puVar35 != (undefined4 *)0x0;
      puVar35 = (undefined4 *)*puVar35) {
    iVar12 = bfd_get_section_by_name(param_1,puVar35[1]);
    if (iVar12 == 0) {
      uVar13 = puVar35[1];
      uVar14 = dcgettext(0,"can\'t dump section \'%s\' - it does not exist",5);
      FUN_0002d3a0(0,param_1,0,uVar14,uVar13);
    }
    else {
      if ((*(byte *)(iVar12 + 0x15) & 1) == 0) {
        pcVar25 = "can\'t dump section - it has no contents";
      }
      else {
        sVar22 = *(size_t *)(iVar12 + 0x2c);
        iVar31 = *(int *)(iVar12 + 0x30);
        if (iVar31 != 0 || sVar22 != 0) {
          __s = fopen64((char *)puVar35[2],"w");
          if (__s == (FILE *)0x0) {
            uVar13 = dcgettext(0,"could not open section dump file",5);
            FUN_0002d3a0(puVar35[2],0,0,uVar13);
          }
          else {
            iVar18 = bfd_malloc_and_get_section(param_1,iVar12,&local_34);
            if (iVar18 == 0) {
              uVar13 = dcgettext(0,"could not retrieve section contents",5);
              FUN_0002d3a0(0,param_1,iVar12,uVar13);
            }
            else {
              sVar23 = fwrite(local_34,1,sVar22,__s);
              if (iVar31 != 0 || sVar22 != sVar23) {
                piVar19 = __errno_location();
                pcVar25 = strerror(*piVar19);
                uVar13 = puVar35[2];
                uVar14 = dcgettext(0,"error writing section contents to %s (error: %s)",5);
                FUN_0002c910(uVar14,uVar13,pcVar25);
                free(local_34);
                return 0;
              }
            }
            fclose(__s);
            free(local_34);
          }
          goto LAB_00018eb1;
        }
        pcVar25 = "can\'t dump section - it is empty";
      }
      uVar13 = dcgettext(0,pcVar25,5);
      FUN_0002d3a0(0,param_1,iVar12,uVar13);
    }
LAB_00018eb1:
    iVar31 = DAT_00040b4c;
  }
  if (iVar31 != 0) {
    iVar12 = bfd_get_section_by_name(local_6c,".gnu_debuglink");
    if (iVar12 == 0) {
      iVar31 = bfd_create_gnu_debuglink_section(local_6c,DAT_00040b4c);
      iVar12 = DAT_00040b4c;
      if (iVar31 == 0) {
        uVar13 = dcgettext(0,"cannot create debug link section `%s\'",5,0);
        FUN_0002d3a0(0,local_6c,0,uVar13,iVar12);
        return 0;
      }
      if (*(int *)(local_6c[1] + 4) == 2) {
        iVar12 = local_6c[0x18];
        iVar18 = 0;
        if (iVar12 == 0) {
LAB_0001aa69:
          uVar39 = 0x1000;
          iVar12 = 0;
        }
        else {
          do {
            uVar39 = *(uint *)(iVar12 + 0x20);
            iVar21 = iVar18;
            if (((uVar39 != 0 || *(uint *)(iVar12 + 0x1c) != 0) && (iVar21 = iVar12, iVar18 != 0))
               && (iVar21 = iVar18,
                  *(uint *)(iVar18 + 0x20) < uVar39 ||
                  *(uint *)(iVar18 + 0x20) - uVar39 <
                  (uint)(*(uint *)(iVar18 + 0x1c) < *(uint *)(iVar12 + 0x1c)))) {
              iVar21 = iVar12;
            }
            iVar12 = *(int *)(iVar12 + 0xc);
            iVar18 = iVar21;
          } while (iVar12 != 0);
          if (iVar21 == 0) goto LAB_0001aa69;
          uVar39 = *(uint *)(iVar21 + 0x2c) + *(uint *)(iVar21 + 0x1c);
          iVar12 = *(int *)(iVar21 + 0x30) + *(int *)(iVar21 + 0x20) +
                   (uint)CARRY4(*(uint *)(iVar21 + 0x2c),*(uint *)(iVar21 + 0x1c));
          if (-iVar12 - 1U < (uint)(0xfffff000 < uVar39)) {
            uVar39 = 0xffffffff;
            iVar12 = -1;
          }
          else {
            iVar12 = iVar12 + (uint)(0xfffff000 < uVar39);
            uVar39 = uVar39 + 0xfff & 0xfffff000;
          }
        }
        *(uint *)(iVar31 + 0x24) = uVar39;
        *(int *)(iVar31 + 0x28) = iVar12;
        *(uint *)(iVar31 + 0x1c) = uVar39;
        *(int *)(iVar31 + 0x20) = iVar12;
        *(byte *)(iVar31 + 0x18) = *(byte *)(iVar31 + 0x18) | 1;
      }
    }
    else {
      iVar12 = *local_6c;
      uVar13 = dcgettext(0,"%s: debuglink section already exists",5);
      FUN_0002c910(uVar13,iVar12);
      DAT_00040b4c = 0;
      iVar31 = 0;
    }
  }
  sVar22 = local_6c[0x1a];
  if ((sVar22 == 0) || (DAT_00040b78 == 0 && DAT_00040b70 == 0)) {
    local_b8 = 0;
    local_bc = 0;
    local_b4 = (void *)0x0;
    local_a8 = (size_t *)0x0;
    uVar39 = local_bc;
    uVar17 = local_b8;
  }
  else {
    local_a8 = (size_t *)xmalloc(sVar22 * 4);
    local_34 = (int *)local_a8;
    bfd_map_over_sections(local_6c,FUN_00016800,&local_34);
    qsort(local_a8,sVar22,4,FUN_00016820);
    sVar23 = sVar22 * 8;
    local_b4 = (void *)xmalloc(sVar23);
    memset(local_b4,0,sVar23);
    if ((DAT_00040b78 == 0) || (sVar22 == 1)) {
      local_b8 = 0;
      local_bc = 0;
    }
    else {
      local_b8 = 0;
      local_bc = 0;
      local_6c = (size_t *)0x0;
      local_64 = (int *)local_a8;
      do {
        local_6c = (size_t *)((int)local_6c + 1);
        iVar12 = *local_64;
        uVar39 = local_bc;
        uVar17 = local_b8;
        if ((*(uint *)(iVar12 + 0x14) & 0x102) == 0x102) {
          uVar27 = *(uint *)(iVar12 + 0x2c);
          uVar37 = *(uint *)(local_64[1] + 0x28);
          uVar44 = *(uint *)(local_64[1] + 0x24);
          uVar33 = uVar27 + *(uint *)(iVar12 + 0x24);
          uVar40 = *(int *)(iVar12 + 0x30) + *(int *)(iVar12 + 0x28) +
                   (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x24));
          if (uVar40 < uVar37 || uVar40 - uVar37 < (uint)(uVar33 < uVar44)) {
            uVar17 = uVar44 - uVar33;
            uVar39 = (uVar37 - uVar40) - (uint)(uVar44 < uVar33);
            iVar12 = bfd_set_section_size
                               (param_2,iVar12,uVar27 + uVar17,
                                *(int *)(iVar12 + 0x30) + uVar39 + (uint)CARRY4(uVar27,uVar17));
            if (iVar12 == 0) {
              uVar13 = dcgettext(0,"Can\'t fill gap after section",5,0);
              FUN_0002d3a0(0,param_2,*local_64,uVar13);
              DAT_00040bc8 = 1;
              break;
            }
            *(uint *)((int)local_b4 + (int)local_6c * 8 + -8) = uVar17;
            *(uint *)((int)local_b4 + (int)local_6c * 8 + -4) = uVar39;
            if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {
              uVar39 = local_bc;
              uVar17 = local_b8;
            }
          }
        }
        local_b8 = uVar17;
        local_bc = uVar39;
        local_64 = local_64 + 1;
      } while ((size_t *)(sVar22 - 1) != local_6c);
    }
    uVar39 = local_bc;
    uVar17 = local_b8;
    if (DAT_00040b70 != 0) {
      iVar12 = ((int *)local_a8)[sVar22 - 1];
      uVar27 = *(uint *)(iVar12 + 0x24);
      uVar37 = uVar27 + *(uint *)(iVar12 + 0x2c);
      uVar44 = *(int *)(iVar12 + 0x28) + *(int *)(iVar12 + 0x30) +
               (uint)CARRY4(uVar27,*(uint *)(iVar12 + 0x2c));
      if (uVar44 < DAT_00040b6c || uVar44 - DAT_00040b6c < (uint)(uVar37 < DAT_00040b68)) {
        iVar12 = bfd_set_section_size
                           (param_2,iVar12,DAT_00040b68 - uVar27,
                            (DAT_00040b6c - *(int *)(iVar12 + 0x28)) - (uint)(DAT_00040b68 < uVar27)
                           );
        if (iVar12 == 0) {
          uVar13 = dcgettext(0,"can\'t add padding",5,uVar37);
          FUN_0002d3a0(0,param_2,((int *)local_a8)[sVar22 - 1],uVar13);
          DAT_00040bc8 = 1;
        }
        else {
          uVar17 = DAT_00040b68 - uVar37;
          uVar39 = (DAT_00040b6c - uVar44) - (uint)(DAT_00040b68 < uVar37);
          *(uint *)((int)local_b4 + (sVar23 - 8)) = uVar17;
          *(uint *)((int)local_b4 + (sVar23 - 4)) = uVar39;
          if (uVar39 <= local_bc && (uint)(local_b8 < uVar17) <= local_bc - uVar39) {
            uVar39 = local_bc;
            uVar17 = local_b8;
          }
        }
      }
    }
  }
  local_b8 = uVar17;
  local_bc = uVar39;
  iVar12 = 0;
  if (DAT_00040b48 != 0) {
    iVar12 = FUN_0001c9c0(param_1,DAT_00040bdc,local_8c,0);
  }
  if (DAT_00040bb0 - 2U < 6) {
LAB_0001962a:
    if (DAT_00040bb0 != 7) goto LAB_0001962f;
  }
  else {
    if (DAT_00040b30 == 0 && DAT_00040bac == 0) {
      iVar18 = htab_elements(DAT_00040b2c);
      if ((((((iVar18 == 0) && (iVar18 = htab_elements(DAT_00040b24), iVar18 == 0)) &&
            (iVar18 = htab_elements(DAT_00040b20), iVar18 == 0)) &&
           ((iVar18 = htab_elements(DAT_00040b1c), iVar18 == 0 &&
            (iVar18 = htab_elements(DAT_00040b18), iVar18 == 0)))) &&
          (iVar18 = htab_elements(DAT_00040b14), iVar18 == 0)) &&
         (((iVar18 = htab_elements(DAT_00040b10), DAT_00040af8 == (char *)0x0 &&
           (DAT_00040be0 == (undefined4 *)0x0)) &&
          (((((((DAT_00040ba4 == 0 && DAT_00040ba0 == 0) && DAT_00040b48 == 0) && DAT_00040b3c == 0)
             && DAT_00040b38 == 0) && DAT_00040b00 == 0) && DAT_00040b04 == 0) && iVar18 == 0))))
      goto LAB_00019e4d;
      goto LAB_0001962a;
    }
LAB_0001962f:
    bfd_set_error(0);
    bfd_map_over_sections(param_1,FUN_000187a0,DAT_00040bdc);
    iVar18 = bfd_get_error();
    if (iVar18 != 0) {
      DAT_00040bc8 = 1;
      return 0;
    }
  }
  piVar19 = (int *)xmalloc((DAT_00040b04 + local_8c) * 4 + 4);
  local_84 = DAT_00040bdc;
  uVar39 = *(uint *)((int)param_1 + 0x28);
  DAT_00040bd8 = piVar19;
  if (local_8c != 0) {
    piVar1 = DAT_00040bdc + local_8c;
    local_8c = 0;
    puVar20 = PTR__bfd_std_section_0003ffc8 + 0xc0;
    do {
      iVar18 = DAT_00040b04;
      piVar4 = (int *)*local_84;
      uVar17 = piVar4[4];
      piVar24 = (int *)piVar4[1];
      puVar5 = (undefined *)piVar4[5];
      if (((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) &&
         (pcVar25 = (char *)DAT_00040b08[5], pcVar25 != (char *)0x0)) {
        local_6c = (size_t *)0x0;
        piVar34 = DAT_00040b08;
        while (iVar21 = strcmp(pcVar25,(char *)piVar24), iVar21 != 0) {
          local_6c = (size_t *)((int)local_6c + 1);
          piVar34 = (int *)*piVar34;
          if ((local_6c == (size_t *)iVar18) ||
             (pcVar25 = (char *)piVar34[5], pcVar25 == (char *)0x0)) goto LAB_000197a8;
        }
        free(pcVar25);
        piVar34[5] = (int)"";
        piVar34 = piVar19 + local_8c;
        local_8c = local_8c + 1;
        iVar18 = FUN_00017920();
        *piVar34 = iVar18;
      }
LAB_000197a8:
      iVar18 = htab_elements(DAT_00040b10);
      piVar34 = piVar24;
      if ((iVar18 != 0) || (DAT_00040be0 != (undefined4 *)0x0)) {
        local_30 = 0;
        local_34 = piVar24;
        iVar18 = htab_find(DAT_00040b10,&local_34);
        if (((iVar18 == 0) || (piVar34 = *(int **)(iVar18 + 4), piVar24 == piVar34)) &&
           (puVar35 = DAT_00040be0, (uVar17 & 0x100) != 0)) {
          for (; piVar34 = piVar24, puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)puVar35[3]
              ) {
            iVar18 = strcmp((char *)*puVar35,(char *)piVar24);
            if (iVar18 == 0) {
              piVar34 = (int *)puVar35[1];
              break;
            }
          }
        }
        piVar4[1] = (int)piVar34;
      }
      pcVar25 = DAT_00040af8;
      cVar2 = *(char *)(*(int *)((int)param_1 + 4) + 0x18);
      if ((char)*piVar34 == cVar2) {
        if (DAT_00040b3c == 0) {
          if ((DAT_00040b38 != 0) &&
             ((((uVar17 & 0x82) != 0 || (puVar5 == puVar20)) ||
              ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) {
            piVar34 = (int *)((int)piVar34 + 1);
            piVar4[1] = (int)piVar34;
          }
LAB_0001982b:
          if (pcVar25 != (char *)0x0) {
            sVar22 = strlen(pcVar25);
            sVar23 = strlen((char *)piVar34);
            piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);
            local_6c = (size_t *)piVar24;
            goto LAB_00019858;
          }
        }
        else {
          if (*(char *)(param_2[1] + 0x18) == '\0') {
            piVar34 = (int *)((int)piVar34 + 1);
            piVar4[1] = (int)piVar34;
            goto LAB_0001982b;
          }
          if (DAT_00040af8 != (char *)0x0) {
            piVar34 = (int *)((int)piVar34 + 1);
            piVar4[1] = (int)piVar34;
            goto LAB_00019ab1;
          }
          *(char *)piVar34 = *(char *)(param_2[1] + 0x18);
          piVar4[1] = (int)piVar34;
        }
      }
      else {
        if (((DAT_00040b3c == 0) || (*(char *)(param_2[1] + 0x18) == '\0')) || (cVar2 != '\0'))
        goto LAB_0001982b;
LAB_00019ab1:
        sVar22 = strlen(pcVar25);
        sVar23 = strlen((char *)piVar34);
        piVar24 = (int *)xmalloc(sVar22 + 2 + sVar23);
        local_6c = (size_t *)((int)piVar24 + 1);
        *(char *)piVar24 = *(char *)(param_2[1] + 0x18);
LAB_00019858:
        pcVar25 = DAT_00040af8;
        if (DAT_00040af8 != (char *)0x0) {
          strcpy((char *)local_6c,DAT_00040af8);
          sVar22 = strlen(pcVar25);
          local_6c = (size_t *)((int)local_6c + sVar22);
        }
        strcpy((char *)local_6c,(char *)piVar34);
        piVar4[1] = (int)piVar24;
        piVar34 = piVar24;
      }
      if (DAT_00040bb0 == 7) goto LAB_00019928;
      if ((uVar17 & 0x20) == 0) {
        if (((uVar17 & 0x100) == 0) ||
           ((*(byte *)(**(int **)(piVar4[5] + 0xb4) + 0x10) & 0x20) == 0)) {
          if ((((uVar39 >> 5 & 0x42) == 0) &&
              (((uVar17 & 0x82) != 0 || ((*(byte *)(piVar4[5] + 0x15) & 0x10) != 0)))) ||
             (iVar18 = bfd_decode_symclass(piVar4), iVar18 == 0x49)) {
LAB_00019b80:
            iVar18 = FUN_000179c0();
            if (iVar18 == 0) goto LAB_00019910;
          }
          else if ((((uVar17 & 0x82) == 0) && (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0)) &&
                  ((*(byte *)(piVar4[5] + 0x15) & 0x10) == 0)) {
            if ((uVar17 & 4) == 0) {
              if (((*(int *)(*(int *)((int)param_1 + 4) + 4) != 2) ||
                  (iVar18 = *(int *)(piVar4[5] + 0xa4), iVar18 == 0)) ||
                 (*(int *)(iVar18 + 0x2c) == 0)) {
                if ((DAT_00040bb0 == 3) || (DAT_00040bac == 2)) goto LAB_00019928;
                if (DAT_00040bac == 1) {
                  iVar18 = bfd_is_local_label(param_1,piVar4,0,0);
                  goto joined_r0x0001a753;
                }
              }
              goto LAB_00019b80;
            }
            iVar18 = DAT_00040b48;
            if (1 < DAT_00040bb0 - 2U) {
joined_r0x0001a753:
              if (iVar18 == 0) goto LAB_00019b80;
            }
          }
          else if (DAT_00040bb0 != 3) goto LAB_00019b80;
        }
        else {
          iVar18 = FUN_000179c0();
          if (iVar18 != 0) {
            uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5,
                               iVar18);
            FUN_0002c910(uVar13,piVar34);
            DAT_00040bc8 = 1;
          }
LAB_00019910:
          iVar18 = FUN_000179c0();
          if (iVar18 == 0) goto LAB_0001994f;
        }
LAB_00019928:
        if (((DAT_00040afc != 0) && ((uVar17 & 0x4000) != 0)) ||
           (iVar18 = FUN_000179c0(), iVar18 != 0)) goto LAB_0001994f;
      }
      else {
        iVar18 = FUN_000179c0();
        if (iVar18 != 0) {
          uVar13 = dcgettext(0,"not stripping symbol `%s\' because it is named in a relocation",5);
          FUN_0002c910(uVar13,piVar34);
          DAT_00040bc8 = 1;
        }
LAB_0001994f:
        iVar18 = FUN_00017a30();
        if (iVar18 == 0) {
          if (((uVar17 & 2) != 0) && ((DAT_00040b00 != 0 || (iVar18 = FUN_000179c0(), iVar18 != 0)))
             ) {
            piVar4[4] = piVar4[4] & 0xfffffffdU | 0x80;
          }
          if (puVar5 != PTR__bfd_std_section_0003ffc8 + 0xc0) {
            if (((uVar17 & 0x82) != 0) &&
               (((iVar18 = FUN_000179c0(), iVar18 != 0 ||
                 ((iVar18 = htab_elements(DAT_00040b18), iVar18 != 0 &&
                  (iVar18 = FUN_000179c0(), iVar18 == 0)))) ||
                ((DAT_00040b30 != 0 &&
                 ((((iVar18 = *piVar4, iVar18 != 0 && (*(int *)(*(int *)(iVar18 + 4) + 4) == 5)) &&
                   (*(int *)(iVar18 + 0xa0) != 0)) && ((*(byte *)((int)piVar4 + 0x35) & 3) - 1 < 2))
                 )))))) {
              piVar4[4] = piVar4[4] & 0xffffff7dU | 1;
            }
            if (((uVar17 & 1) != 0) && (iVar18 = FUN_000179c0(), iVar18 != 0)) {
              piVar4[4] = piVar4[4] & 0xfffffffeU | 2;
            }
          }
          piVar19[local_8c] = (int)piVar4;
          local_8c = local_8c + 1;
        }
      }
      local_84 = local_84 + 1;
    } while (piVar1 != local_84);
  }
  local_6c = (size_t *)DAT_00040b08;
  if ((DAT_00040b08 != (int *)0x0) && (0 < DAT_00040b04)) {
    iVar18 = 0;
    do {
      pcVar25 = (char *)local_6c[5];
      if (pcVar25 == (char *)0x0) {
        iVar21 = FUN_00017920();
        piVar19[local_8c] = iVar21;
        local_8c = local_8c + 1;
      }
      else if (*pcVar25 != '\0') {
        uVar13 = dcgettext(0,"\'before=%s\' not found",5,local_8c);
                    /* WARNING: Subroutine does not return */
        FUN_0002c8e0(uVar13,pcVar25);
      }
      iVar18 = iVar18 + 1;
      local_6c = (size_t *)*local_6c;
    } while (iVar18 < DAT_00040b04);
  }
  piVar19[local_8c] = 0;
  if ((DAT_00040b48 != 0) && (iVar12 != 0)) {
    iVar18 = ((undefined4 *)param_2[1])[1];
    if ((iVar18 == 2) || (iVar18 == 5)) {
      iVar12 = FUN_0002c240(param_2,iVar12,&local_54,&local_4c,&local_50,&local_34);
      if (iVar12 != 0) {
        iVar12 = bfd_make_section_with_flags(param_2,".stab",0x2108);
        iVar18 = bfd_make_section_with_flags(param_2,".stabstr",0x2108);
        if ((((iVar12 == 0) || (iVar18 == 0)) ||
            (iVar21 = bfd_set_section_size(param_2,iVar12,local_4c,local_48), iVar21 == 0)) ||
           (iVar21 = bfd_set_section_size(param_2,iVar18,local_34,local_30), iVar21 == 0)) {
          pcVar25 = "can\'t create debugging section";
        }
        else {
          *(undefined4 *)(iVar12 + 0x58) = 2;
          *(undefined4 *)(iVar18 + 0x58) = 0;
          iVar12 = bfd_set_section_contents(param_2,iVar12,local_54,0,0,local_4c,local_48,iVar21);
          if ((iVar12 != 0) &&
             (iVar12 = bfd_set_section_contents
                                 (param_2,iVar18,local_50,0,0,local_34,local_30,extraout_ECX),
             iVar12 != 0)) goto LAB_00019e4d;
          pcVar25 = "can\'t set debugging section contents";
          iVar12 = iVar18;
        }
        uVar13 = dcgettext(0,pcVar25,5,iVar12);
        FUN_0002d3a0(0,param_2,0,uVar13);
      }
    }
    else {
      uVar13 = *(undefined4 *)param_2[1];
      uVar14 = dcgettext(0,"don\'t know how to write debugging information for %s",5);
      FUN_0002d3a0(0,param_2,0,uVar14,uVar13);
    }
    DAT_00040bc8 = 1;
    return 0;
  }
LAB_00019e4d:
  bfd_set_symtab(param_2,DAT_00040bd8,local_8c);
  bfd_map_over_sections(param_1,FUN_00018500,param_2);
  bfd_map_over_sections(param_1,FUN_00018070,param_2);
  for (puVar35 = DAT_00040b58; psVar43 = param_2, puVar42 = DAT_00040b54,
      puVar35 != (undefined4 *)0x0; puVar35 = (undefined4 *)*puVar35) {
    iVar12 = bfd_set_section_contents(param_2,puVar35[5],puVar35[4],0,0,puVar35[3],0);
    if (iVar12 == 0) {
LAB_00019d5e:
      FUN_0002d3a0(0,param_2,puVar35[5],0);
      return 0;
    }
  }
  while( true ) {
    if (puVar42 == (undefined4 *)0x0) {
      uVar39 = 0;
      if (DAT_00040bc4 != 0) {
        uVar39 = bfd_get_section_by_name(param_2,".gnu.build.attributes");
        if (((uVar39 == 0) || (DAT_00040bc4 == 0)) ||
           ((*(int *)(param_2[1] + 4) != 5 || (iVar12 = FUN_000176d0(), iVar12 == 0)))) {
          if (DAT_00040be4 == 0) {
            uVar13 = dcgettext(0,"could not find any mergeable note sections",5,0);
            FUN_0002d3a0(0,param_2,uVar39,uVar13);
          }
        }
        else {
          iVar12 = bfd_set_section_contents
                             (param_2,uVar39,DAT_00040bc0,0,0,DAT_00040bb8,DAT_00040bbc,iVar12);
          if (iVar12 == 0) {
            uVar13 = dcgettext(0,"error: failed to copy merged notes into output",5,0);
            FUN_0002d3a0(0,param_2,uVar39,uVar13);
            return 0;
          }
        }
        free(DAT_00040bc0);
        DAT_00040bc0 = (void *)0x0;
        DAT_00040bc4 = 0;
        psVar43 = param_2;
      }
      if ((DAT_00040b4c != 0) &&
         (iVar31 = bfd_fill_in_gnu_debuglink_section(param_2,iVar31,DAT_00040b4c),
         iVar12 = DAT_00040b4c, iVar31 == 0)) {
        uVar13 = dcgettext(0,"cannot fill debug link section `%s\'",5,0);
        FUN_0002d3a0(0,param_2,0,uVar13,iVar12);
        return 0;
      }
      if (DAT_00040b78 != 0 || DAT_00040b70 != 0) {
        uVar39 = 0x2000;
        if (local_bc == 0 && (uint)(0x2000 < local_b8) <= -local_bc) {
          uVar39 = local_b8;
        }
        piVar19 = (int *)xmalloc(uVar39);
        iVar12 = (uint)DAT_00040b74 * 0x1010101;
        if (uVar39 < 4) {
          if ((uVar39 != 0) && (*(char *)piVar19 = (char)iVar12, (uVar39 & 2) != 0)) {
            *(short *)((undefined1 *)((int)piVar19 + -2) + uVar39) = (short)iVar12;
          }
        }
        else {
          *piVar19 = iVar12;
          *(int *)((int)(piVar19 + -1) + uVar39) = iVar12;
          psVar43 = (size_t *)((uint)(piVar19 + 1) & 0xfffffffc);
          for (uVar17 = (uint)((int)piVar19 + (uVar39 - (int)((uint)(piVar19 + 1) & 0xfffffffc))) >>
                        2; uVar17 != 0; uVar17 = uVar17 - 1) {
            *psVar43 = iVar12;
            psVar43 = (size_t *)((int *)psVar43 + (uint)bVar48 * -2 + 1);
          }
        }
        iVar12 = param_2[0x1a];
        if (iVar12 != 0) {
          local_64 = (int *)0x0;
          do {
            piVar1 = local_64;
            psVar43 = *(size_t **)((int)local_b4 + (int)local_64 * 8 + 4);
            uVar39 = *(uint *)((int)local_b4 + (int)local_64 * 8);
            if (psVar43 != (size_t *)0x0 || uVar39 != 0) {
              piVar4 = (int *)(local_a8 + (int)local_64);
              local_64 = (int *)local_a8[(int)local_64];
              local_6c = (size_t *)(*(uint *)((int)local_64 + 0x2c) - uVar39);
              local_68 = (*(int *)((int)local_64 + 0x30) - (int)psVar43) -
                         (uint)(*(uint *)((int)local_64 + 0x2c) < uVar39);
              while( true ) {
                piVar24 = (int *)psVar43;
                uVar17 = uVar39;
                if (psVar43 != (size_t *)0x0 || (uint)-(int)psVar43 < (uint)(0x2000 < uVar39)) {
                  uVar17 = 0x2000;
                  piVar24 = (int *)0x0;
                }
                iVar31 = bfd_set_section_contents
                                   (param_2,local_64,piVar19,local_6c,local_68,uVar17,piVar24);
                if (iVar31 == 0) {
                  FUN_0002d3a0(0,param_2,*piVar4,0);
                  return 0;
                }
                bVar46 = uVar39 < uVar17;
                uVar39 = uVar39 - uVar17;
                psVar43 = (size_t *)((int)psVar43 + (-(uint)bVar46 - (int)piVar24));
                bVar46 = CARRY4((uint)local_6c,uVar17);
                local_6c = (size_t *)((int)local_6c + uVar17);
                local_68 = (int)piVar24 + (uint)bVar46 + local_68;
                if (psVar43 == (size_t *)0x0 && uVar39 == 0) break;
                local_64 = (int *)local_a8[(int)piVar1];
              }
            }
            local_64 = (int *)((int)piVar1 + 1);
          } while ((int *)iVar12 != local_64);
        }
      }
      iVar12 = (**(code **)(param_2[1] + 0xa8))(param_1,param_2);
      if (iVar12 == 0) {
        uVar13 = dcgettext(0,"error copying private BFD data",5,psVar43);
        FUN_0002d3a0(0,param_2,0,uVar13);
        return 0;
      }
      if ((DAT_00040b64 != 0) &&
         (iVar31 = bfd_alt_mach_code(param_2,DAT_00040b64,uVar39,uVar39), iVar12 = DAT_00040b64,
         iVar31 == 0)) {
        uVar13 = dcgettext(0,"this target does not support %lu alternative machine codes",5,psVar43)
        ;
        FUN_0002c910(uVar13,iVar12);
        if (*(int *)(param_2[1] + 4) != 5) {
          uVar13 = dcgettext(0,"ignoring the alternative value",5,extraout_ECX_00);
          FUN_0002c910(uVar13);
          return 1;
        }
        uVar13 = dcgettext(0,"treating that number as an absolute e_machine value instead",5,iVar12)
        ;
        FUN_0002c910(uVar13);
        *(short *)(param_2[0x28] + 0x32) = (short)DAT_00040b64;
      }
      return 1;
    }
    psVar43 = *(size_t **)(puVar42[5] + 0x54);
    iVar12 = bfd_set_section_contents(param_2,psVar43,puVar42[4],0,0,puVar42[3],0);
    local_6c = param_2;
    if (iVar12 == 0) break;
    puVar42 = (undefined4 *)*puVar42;
  }
LAB_00019fa0:
  FUN_0002d3a0(0,local_6c,psVar43,0);
  return iVar12;
LAB_0001b1a6:
  if ((undefined1 *)((int)pvVar32 + sVar54) <= puVar45) goto LAB_0001b1aa;
  *puVar45 = (char)uVar17;
  if (uVar17 == 0) goto LAB_0001b1aa;
  uVar17 = uVar17 >> 8;
  puVar45 = puVar45 + 1;
  goto LAB_0001b1a6;
LAB_0001b1aa:
  bVar46 = true;
  psVar9[0xe] = 0;
  goto LAB_0001afd1;
}

